diff --git a/external/rlottie/.Gifs/1.gif b/external/rlottie/.Gifs/1.gif new file mode 100755 index 000000000..a58922692 Binary files /dev/null and b/external/rlottie/.Gifs/1.gif differ diff --git a/external/rlottie/.Gifs/2.gif b/external/rlottie/.Gifs/2.gif new file mode 100755 index 000000000..3b9b46556 Binary files /dev/null and b/external/rlottie/.Gifs/2.gif differ diff --git a/external/rlottie/.Gifs/logo.png b/external/rlottie/.Gifs/logo.png new file mode 100644 index 000000000..4af869669 Binary files /dev/null and b/external/rlottie/.Gifs/logo.png differ diff --git a/external/rlottie/.Gifs/rlottie.xcf b/external/rlottie/.Gifs/rlottie.xcf new file mode 100644 index 000000000..6d53592ff Binary files /dev/null and b/external/rlottie/.Gifs/rlottie.xcf differ diff --git a/external/rlottie/.appveyor.yml b/external/rlottie/.appveyor.yml new file mode 100644 index 000000000..0b51e2990 --- /dev/null +++ b/external/rlottie/.appveyor.yml @@ -0,0 +1,23 @@ +os: Visual Studio 2017 +platform: + - x86 +environment: + matrix: + - ARCH: x86 + PYTHON: "C:\\Python35" + - ARCH: x64 + PYTHON: "C:\\Python35-x64" +skip_branch_with_pr: true +install: + - git submodule update --init --recursive + - set PATH=%cd%;%PYTHON%;%PYTHON%\Scripts;%PATH% + - pip install meson==0.50.0 ninja + - call "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat" %ARCH% +build_script: + - meson -Dwerror=false --backend=ninja --prefix=%cd% build + - where link + - ninja -C build +test_script: + - ninja -C build test +after_build: + - ninja -C build install \ No newline at end of file diff --git a/external/rlottie/.clang-format b/external/rlottie/.clang-format new file mode 100644 index 000000000..10f4c7a50 --- /dev/null +++ b/external/rlottie/.clang-format @@ -0,0 +1,90 @@ +--- +Language: Cpp +BasedOnStyle: Google +AccessModifierOffset: -4 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: true +AlignEscapedNewlinesLeft: true +AlignOperands: true +AlignTrailingComments: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Inline +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: true +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false +BreakBeforeBinaryOperators: None +BreakBeforeBraces: WebKit +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +ColumnLimit: 80 +CommentPragmas: '^ IWYU pragma:' +ConstructorInitializerAllOnOneLineOrOnePerLine: true +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: true +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] +IncludeCategories: + - Regex: '^<.*\.h>' + Priority: 1 + - Regex: '^<.*' + Priority: 2 + - Regex: '.*' + Priority: 3 +IndentCaseLabels: false +IndentWidth: 4 +IndentWrappedFunctionNames: false +KeepEmptyLinesAtTheStartOfBlocks: false +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBlockIndentWidth: 2 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: false +PenaltyBreakBeforeFirstCallParameter: 1 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Right +ReflowComments: true +SortIncludes: true +SpaceAfterCStyleCast: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Auto +TabWidth: 4 +UseTab: Never +... + diff --git a/external/rlottie/.gitignore b/external/rlottie/.gitignore new file mode 100644 index 000000000..0d9491f33 --- /dev/null +++ b/external/rlottie/.gitignore @@ -0,0 +1,13 @@ +build +*.creator* +*.config +*.files +*.includes +html +latex +*.swp +tmp +.cproject +.project +.vs +**/*.DS_Store diff --git a/external/rlottie/.travis.yml b/external/rlottie/.travis.yml new file mode 100644 index 000000000..b38074276 --- /dev/null +++ b/external/rlottie/.travis.yml @@ -0,0 +1,22 @@ +sudo: false + +os: + - linux + +language: + - cpp + +services: + - docker + +before_install: + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker pull smohantty/rlottie-ci-setup; fi + +script: + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo FROM smohantty/rlottie-ci-setup > Dockerfile; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo ADD . /root >> Dockerfile; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker build -t withgit .; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker run withgit /bin/sh -c "cd /root && TRAVIS=true meson -Dtest=true builddir && ninja -C builddir test && ninja -C builddir install"; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker run withgit /bin/sh -c "cd /root && TRAVIS=true meson -Dcache=false -Dmodule=false -Ddumptree=true builddir && ninja -C builddir install"; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker run withgit /bin/sh -c "cd /root && TRAVIS=true meson -Dthread=false builddir && ninja -C builddir install"; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker run withgit /bin/sh -c "cd /root && TRAVIS=true cmake -DLOTTIE_TEST=ON -Bbuilddir -H. && make -C builddir -j$(nproc) all test && make -C builddir install"; fi diff --git a/external/rlottie/AUTHORS b/external/rlottie/AUTHORS new file mode 100644 index 000000000..8e38feee1 --- /dev/null +++ b/external/rlottie/AUTHORS @@ -0,0 +1,12 @@ +Subhransu Mohanty +Hermet Park +Youngbok Shin +Jaeun Choi +Bryce Harrington +Junsu Choi +Yuangu +Mihai Serban +Shinwoo Kim +Vincent Torri +Nicholas Guriev +John Preston diff --git a/external/rlottie/CMakeLists.txt b/external/rlottie/CMakeLists.txt new file mode 100644 index 000000000..c111dac64 --- /dev/null +++ b/external/rlottie/CMakeLists.txt @@ -0,0 +1,198 @@ +cmake_minimum_required( VERSION 3.3 ) + +#declare project +project( rlottie VERSION 0.2 LANGUAGES C CXX ASM) + +if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE MinSizeRel) +endif() + +if (NOT DEFINED BUILD_SHARED_LIBS) + # Keep the previous behavior of the build system, consistent with Meson. + set(BUILD_SHARED_LIBS ON) +endif() + +#declare target +add_library( rlottie ) +set_target_properties( rlottie PROPERTIES DEFINE_SYMBOL RLOTTIE_BUILD ) + +#declare version of the target +set(player_version_major 0) +set(player_version_minor 2) +set(player_version ${player_version_major}.${player_version_minor}) +set_target_properties(rlottie PROPERTIES + VERSION ${player_version} + SOVERSION ${player_version_major} + ) + +#declare alias so that library can be used inside the build tree, e.g. when testing +add_library(rlottie::rlottie ALIAS rlottie) + +option(LOTTIE_MODULE "Enable LOTTIE MODULE SUPPORT" ON) +option(LOTTIE_THREAD "Enable LOTTIE THREAD SUPPORT" ON) +option(LOTTIE_CACHE "Enable LOTTIE CACHE SUPPORT" ON) +option(LOTTIE_TEST "Build LOTTIE AUTOTESTS" OFF) +option(LOTTIE_CCACHE "Enable LOTTIE ccache SUPPORT" OFF) +option(LOTTIE_ASAN "Compile with asan" OFF) + +set(LOTTIE_MODULE_PATH "${CMAKE_SHARED_LIBRARY_PREFIX}rlottie-image-loader${CMAKE_SHARED_LIBRARY_SUFFIX}" + CACHE STRING "Absolute or relative path to dynamic loader plugin.") + +configure_file(${CMAKE_CURRENT_LIST_DIR}/cmake/config.h.in config.h) + +target_include_directories(rlottie + PRIVATE + "${CMAKE_CURRENT_BINARY_DIR}" + ) + +#declare common target compilation options +target_compile_options(rlottie + PUBLIC + PRIVATE + -std=c++14 + -fno-exceptions + -fno-unwind-tables + -fno-asynchronous-unwind-tables + -fno-rtti + -Wall + -fvisibility=hidden + ) + +#MSVC does not recognize these parameters +if (NOT WIN32) + target_compile_options(rlottie + PUBLIC + PRIVATE + -Wnon-virtual-dtor + -Woverloaded-virtual + -Wno-unused-parameter + ) +endif() + +if (WIN32 AND NOT BUILD_SHARED_LIBS) + target_compile_definitions(rlottie PUBLIC -DRLOTTIE_BUILD=0) +endif() + +#declare dependancy +set( CMAKE_THREAD_PREFER_PTHREAD TRUE ) +find_package( Threads ) + +target_link_libraries(rlottie + PUBLIC + "${CMAKE_THREAD_LIBS_INIT}" + ) + +if (NOT APPLE AND NOT WIN32) + target_link_libraries(rlottie + PRIVATE + "-Wl,--version-script=${CMAKE_SOURCE_DIR}/rlottie.expmap" + ) +endif() + +if (LOTTIE_MODULE) + # for dlopen, dlsym and dlclose dependancy + target_link_libraries(rlottie PRIVATE ${CMAKE_DL_LIBS}) +endif() + +if (NOT LOTTIE_ASAN) + if(APPLE) + target_link_libraries(rlottie + PUBLIC + "-Wl, -undefined error" + ) + else() + target_link_libraries(rlottie + PUBLIC + "-Wl,--no-undefined" + ) + endif() +endif() + +if (LOTTIE_CCACHE) + find_program(CCACHE_FOUND ccache) + if (CCACHE_FOUND) + message(STATUS "Found ccache") + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) + else() + message(STATUS "Could NOT find ccache (this is NOT an error)") + endif() +endif() + +if (LOTTIE_ASAN) + target_compile_options(rlottie PUBLIC -fsanitize=address) + target_link_options(rlottie PUBLIC -fsanitize=address) +endif() + +if (NOT LIB_INSTALL_DIR) + set (LIB_INSTALL_DIR "/usr/lib") +endif (NOT LIB_INSTALL_DIR) + +#declare source and include files +add_subdirectory(inc) +add_subdirectory(src) +add_subdirectory(example) + +if (LOTTIE_TEST) + enable_testing() + add_subdirectory(test) +endif() + +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(EXEC_DIR ${PREFIX}) +SET(LIBDIR ${LIB_INSTALL_DIR}) +SET(INCDIR ${PREFIX}/include) + +CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) + + +#install header +install(FILES + inc/rlottie.h + inc/rlottie_capi.h + inc/rlottiecommon.h + DESTINATION include) + +#install lib +install( TARGETS rlottie EXPORT rlottie-targets + LIBRARY DESTINATION ${LIB_INSTALL_DIR} + ARCHIVE DESTINATION ${LIB_INSTALL_DIR} + INCLUDES DESTINATION include + ) + +#install config file. + +install( EXPORT rlottie-targets + FILE rlottieTargets.cmake + NAMESPACE rlottie:: + DESTINATION ${LIB_INSTALL_DIR}/cmake/rlottie + ) + + +#Create a ConfigVersion.cmake file +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/rlottieConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/cmake/rlottieConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/rlottieConfig.cmake + INSTALL_DESTINATION ${LIB_INSTALL_DIR}/cmake/rlottie +) + +#Install the config, configversion and custom find modules +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/rlottieConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/rlottieConfigVersion.cmake + DESTINATION ${LIB_INSTALL_DIR}/cmake/rlottie +) + + +export(EXPORT rlottie-targets FILE ${CMAKE_CURRENT_BINARY_DIR}/rlottieTargets.cmake NAMESPACE rlottie::) + +#Register package in user's package registry +export(PACKAGE rlottie) + diff --git a/external/rlottie/COPYING b/external/rlottie/COPYING new file mode 100644 index 000000000..e0825e7f8 --- /dev/null +++ b/external/rlottie/COPYING @@ -0,0 +1,17 @@ +Licensing + +rlottie basically comes with MIT license(licenses/COPYING.MIT) +but some parts of shared code are covered by different licenses. Listed +below are the folder names and the license file covering it. Note that this +license would cover all of the source invovled in each folders, unless +specifically noted otherwise. So please refer to these imported project sources +for details. + +Dependencies and licenses: + +src/vector/ licenses/COPYING.MIT, COPYING.SKIA +src/vector/freetype licenses/COPYING.FTL +src/vector/pixman licenses/COPYING.PIX +src/vector/stb licenses/COPYING.STB +src/lottie/rapidjson licenses/COPYING.RPD + diff --git a/external/rlottie/README.md b/external/rlottie/README.md new file mode 100644 index 000000000..e7beedc5f --- /dev/null +++ b/external/rlottie/README.md @@ -0,0 +1,318 @@ + +# rlottie + +[![Build Status](https://travis-ci.org/Samsung/rlottie.svg?branch=master)](https://travis-ci.org/Samsung/rlottie) +[![Build status](https://ci.appveyor.com/api/projects/status/n3xonxk1ooo6s7nr?svg=true&passingText=windows%20-%20passing)](https://ci.appveyor.com/project/smohantty/rlottie-mliua) + +

+ +

+ +rlottie is a platform independent standalone c++ library for rendering vector based animations and art in realtime. + +Lottie loads and renders animations and vectors exported in the bodymovin JSON format. Bodymovin JSON can be created and exported from After Effects with [bodymovin](https://github.com/bodymovin/bodymovin), Sketch with [Lottie Sketch Export](https://github.com/buba447/Lottie-Sketch-Export), and from [Haiku](https://www.haiku.ai). + +For the first time, designers can create and ship beautiful animations without an engineer painstakingly recreating it by hand. Since the animation is backed by JSON they are extremely small in size but can be large in complexity! + +Here are small samples of the power of Lottie. + +

+ + + +

+ +## Contents +- [Building Lottie](#building-lottie) + - [Meson Build](#meson-build) + - [Cmake Build](#cmake-build) + - [Test](#test) +- [Demo](#demo) +- [Previewing Lottie JSON Files](#previewing-lottie-json-files) +- [Quick Start](#quick-start) +- [Dynamic Property](#dynamic-property) +- [Supported After Effects Features](#supported-after-effects-features) +- [Issues or Feature Requests?](#issues-or-feature-requests) + +## Building Lottie +rottie supports [meson](https://mesonbuild.com/) and [cmake](https://cmake.org/) build system. rottie is written in `C++14`. and has a public header dependancy of `C++11` + +### Meson Build +install [meson](http://mesonbuild.com/Getting-meson.html) and [ninja](https://ninja-build.org/) if not already installed. + +Run meson to configure rlottie +``` +meson build +``` +Run ninja to build rlottie +``` +ninja -C build +``` + +### Cmake Build + +Install [cmake](https://cmake.org/download/) if not already installed + +Create a build directory for out of source `build` +``` +mkdir build +``` +Run cmake command inside `build` directory to configure rlottie. +``` +cd build +cmake .. + +# install in a different path. eg ~/test/usr/lib +cmake -DCMAKE_INSTALL_PREFIX=~/test .. + +# static build +cmake -DBUILD_SHARED_LIBS=OFF .. +``` +Run make to build rlottie + +``` +make -j 2 +``` +To install rlottie library + +``` +make install +``` + +### Test + +Configure to build test +``` +meson configure -Dtest=true +``` +Build test suit + +``` +ninja +``` +Run test suit +``` +ninja test +``` +[Back to contents](#contents) + +# +## Demo +If you want to see rlottie librray in action without building it please visit [rlottie online viewer](http://rlottie.com) + +While building rlottie library it generates a simple lottie to GIF converter which can be used to convert lottie json file to GIF file. + +Run Demo +``` +lottie2gif [lottie file name] +``` + +# +## Previewing Lottie JSON Files +Please visit [rlottie online viewer](http://rlottie.com) + +[rlottie online viewer](http://rlottie.com) uses rlottie wasm library to render the resource locally in your browser. To test your JSON resource drag and drop it to the browser window. + +# +## Quick Start + +Lottie loads and renders animations and vectors exported in the bodymovin JSON format. Bodymovin JSON can be created and exported from After Effects with [bodymovin](https://github.com/bodymovin/bodymovin), Sketch with [Lottie Sketch Export](https://github.com/buba447/Lottie-Sketch-Export), and from [Haiku](https://www.haiku.ai). + +You can quickly load a Lottie animation with: +```cpp +auto animation = rlottie::Animation::loadFromFile("absolute_path/test.json"); +``` +You can load a lottie animation from raw data with: +```cpp +auto animation = rlottie::Animation::loadFromData(std::string(rawData), std::string(cacheKey)); +``` + +Properties like `frameRate` , `totalFrame` , `duration` can be queried with: +```cpp +# get the frame rate of the resource. +double frameRate = animation->frameRate(); + +#get total frame that exists in the resource +size_t totalFrame = animation->totalFrame(); + +#get total animation duration in sec for the resource +double duration = animation->duration(); +``` +Render a particular frame in a surface buffer `immediately` with: +```cpp +rlottie::Surface surface(buffer, width , height , stride); +animation->renderSync(frameNo, surface); +``` +Render a particular frame in a surface buffer `asyncronousely` with: +```cpp +rlottie::Surface surface(buffer, width , height , stride); +# give a render request +std::future handle = animation->render(frameNo, surface); +... +#when the render data is needed +rlottie::Surface surface = handle.get(); +``` + +[Back to contents](#contents) + + +## Dynamic Property + +You can update properties dynamically at runtime. This can be used for a variety of purposes such as: +- Theming (day and night or arbitrary themes). +- Responding to events such as an error or a success. +- Animating a single part of an animation in response to an event. +- Responding to view sizes or other values not known at design time. + +### Understanding After Effects + +To understand how to change animation properties in Lottie, you should first understand how animation properties are stored in Lottie. Animation properties are stored in a data tree that mimics the information heirarchy of After Effects. In After Effects a Composition is a collection of Layers that each have their own timelines. Layer objects have string names, and their contents can be an image, shape layers, fills, strokes, or just about anything that is drawable. Each object in After Effects has a name. Lottie can find these objects and properties by their name using a KeyPath. + +### Usage + +To update a property at runtime, you need 3 things: +1. KeyPath +2. rLottie::Property +3. setValue() + +### KeyPath + +A KeyPath is used to target a specific content or a set of contents that will be updated. A KeyPath is specified by a list of strings that correspond to the hierarchy of After Effects contents in the original animation. +KeyPaths can include the specific name of the contents or wildcards: +- Wildcard * + - Wildcards match any single content name in its position in the keypath. +- Globstar ** + - Globstars match zero or more layers. + +### Properties + +`rLottie::Property` is an enumeration of properties that can be set. They correspond to the animatable value in After Effects and the available properties are listed below. +```cpp +enum class Property { + FillColor, /*!< Color property of Fill object , value type is rlottie::Color */ + FillOpacity, /*!< Opacity property of Fill object , value type is float [ 0 .. 100] */ + StrokeColor, /*!< Color property of Stroke object , value type is rlottie::Color */ + StrokeOpacity, /*!< Opacity property of Stroke object , value type is float [ 0 .. 100] */ + StrokeWidth, /*!< stroke with property of Stroke object , value type is float */ + ... +}; +``` + +### setValue() + +`setValue()` requires a keypath of string and value. The value can be `Color`, `Size` and `Point` structure or a function that returns them. `Color`, `Size`, and `Point` vary depending on the type of `rLottie::Property`. This value or function(callback) is called and applied to every frame. This value can be set differently for each frame by using the `FrameInfo` argument passed to the function. + + +### Usage +```cpp +animation->setValue("**",rlottie::Color(0, 1, 0)); +``` + +```cpp +animation->setValue("Layer1.Box 1.Fill1", + [](const rlottie::FrameInfo& info) { + if (info.curFrame() < 15 ) + return rlottie::Color(0, 1, 0); + else { + return rlottie::Color(1, 0, 0); + } + }); +``` + +[Back to contents](#contents) + +# +# +## Supported After Effects Features + +| **Shapes** | **Supported** | +|:--|:-:| +| Shape | 👍 | +| Ellipse | 👍 | +| Rectangle | 👍 | +| Rounded Rectangle | 👍 | +| Polystar | 👍 | +| Group | 👍 | +| Trim Path (individually) | 👍 | +| Trim Path (simultaneously) | 👍 | +| **Renderable** | **Supported** | +| Fill | 👍 | +| Stroke | 👍 | +| Radial Gradient | 👍 | +| Linear Gradient | 👍 | +| Gradient Stroke | 👍 | +| **Transforms** | **Supported** | +| Position | 👍 | +| Position (separated X/Y) | 👍 | +| Scale | 👍 | +| Skew | ⛔️ | +| Rotation | 👍 | +| Anchor Point | 👍 | +| Opacity | 👍 | +| Parenting | 👍 | +| Auto Orient | 👍 | +| **Interpolation** | **Supported** | +| Linear Interpolation | 👍 | +| Bezier Interpolation | 👍 | +| Hold Interpolation | 👍 | +| Spatial Bezier Interpolation | 👍 | +| Rove Across Time | 👍 | +| **Masks** | **Supported** | +| Mask Path | 👍 | +| Mask Opacity | 👍 | +| Add | 👍 | +| Subtract | 👍 | +| Intersect | 👍 | +| Lighten | ⛔️ | +| Darken | ⛔️ | +| Difference | ⛔️ | +| Expansion | ⛔️ | +| Feather | ⛔️ | +| **Mattes** | **Supported** | +| Alpha Matte | 👍 | +| Alpha Inverted Matte | 👍 | +| Luma Matte | 👍 | +| Luma Inverted Matte | 👍 | +| **Merge Paths** | **Supported** | +| Merge | ⛔️ | +| Add | ⛔️ | +| Subtract | ⛔️ | +| Intersect | ⛔️ | +| Exclude Intersection | ⛔️ | +| **Layer Effects** | **Supported** | +| Fill | ⛔️ | +| Stroke | ⛔️ | +| Tint | ⛔️ | +| Tritone | ⛔️ | +| Levels Individual Controls | ⛔️ | +| **Text** | **Supported** | +| Glyphs | ⛔️ | +| Fonts | ⛔️ | +| Transform | ⛔️ | +| Fill | ⛔️ | +| Stroke | ⛔️ | +| Tracking | ⛔️ | +| Anchor point grouping | ⛔️ | +| Text Path | ⛔️ | +| Per-character 3D | ⛔️ | +| Range selector (Units) | ⛔️ | +| Range selector (Based on) | ⛔️ | +| Range selector (Amount) | ⛔️ | +| Range selector (Shape) | ⛔️ | +| Range selector (Ease High) | ⛔️ | +| Range selector (Ease Low) | ⛔️ | +| Range selector (Randomize order) | ⛔️ | +| expression selector | ⛔️ | +| **Other** | **Supported** | +| Expressions | ⛔️ | +| Images | 👍 | +| Precomps | 👍 | +| Time Stretch | 👍 | +| Time remap | 👍 | +| Markers | 👍 | + +# +[Back to contents](#contents) + +## Issues or Feature Requests? +File github issues for anything that is broken. Be sure to check the [list of supported features](#supported-after-effects-features) before submitting. If an animation is not working, please attach the After Effects file to your issue. Debugging without the original can be very difficult. For immidiate assistant or support please reach us in [Gitter](https://gitter.im/rLottie-dev/community#) diff --git a/external/rlottie/arm_build.sh b/external/rlottie/arm_build.sh new file mode 100755 index 000000000..cd9bcf606 --- /dev/null +++ b/external/rlottie/arm_build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "Sysroot PATH is not provided" + echo "Usage: arm_build SYSROOT_PATH" + exit 1; +fi + +if [ ! -d "./builddir_wasm" ]; then + sed "s|SYSROOT:|$1|g" arm_cross.txt > /tmp/.arm_cross.txt + meson builddir_arm --cross-file /tmp/.arm_cross.txt +fi + +sudo ninja -C builddir_arm/ diff --git a/external/rlottie/arm_cross.txt b/external/rlottie/arm_cross.txt new file mode 100644 index 000000000..927be56f1 --- /dev/null +++ b/external/rlottie/arm_cross.txt @@ -0,0 +1,16 @@ +[binaries] +cpp = 'SYSROOT:/bin/arm-none-linux-gnueabihf-g++' +ar = 'SYSROOT:/bin/arm-none-linux-gnueabihf-ar' + +[properties] +root = 'SYSROOT:' +shared_lib_suffix = 'so' +static_lib_suffix = 'so' +shared_module_suffix = 'so' +exe_suffix = 'exe' + +[host_machine] +system = 'arm' +cpu_family = 'arm' +cpu = 'armv7l' +endian = 'little' \ No newline at end of file diff --git a/external/rlottie/cmake/config.h.in b/external/rlottie/cmake/config.h.in new file mode 100644 index 000000000..ca42a9e1d --- /dev/null +++ b/external/rlottie/cmake/config.h.in @@ -0,0 +1,19 @@ +#cmakedefine LOTTIE_MODULE + +#ifdef LOTTIE_MODULE +#define LOTTIE_IMAGE_MODULE_SUPPORT +#endif + +#define LOTTIE_IMAGE_MODULE_PLUGIN "@LOTTIE_MODULE_PATH@" + +#cmakedefine LOTTIE_THREAD + +#ifdef LOTTIE_THREAD +#define LOTTIE_THREAD_SUPPORT +#endif + +#cmakedefine LOTTIE_CACHE + +#ifdef LOTTIE_CACHE +#define LOTTIE_CACHE_SUPPORT +#endif diff --git a/external/rlottie/cmake/rlottieConfig.cmake.in b/external/rlottie/cmake/rlottieConfig.cmake.in new file mode 100644 index 000000000..730672a1d --- /dev/null +++ b/external/rlottie/cmake/rlottieConfig.cmake.in @@ -0,0 +1,16 @@ +get_filename_component(rlottie_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +include(CMakeFindDependencyMacro) + +list(APPEND CMAKE_MODULE_PATH ${rlottie_CMAKE_DIR}) + +# NOTE Had to use find_package because find_dependency does not support COMPONENTS or MODULE until 3.8.0 + +#find_dependency(RapidJSON 1.0 REQUIRED MODULE) +#find_package(Boost 1.55 REQUIRED COMPONENTS regex) +list(REMOVE_AT CMAKE_MODULE_PATH -1) + +if(NOT TARGET rlottie::rlottie) + include("${rlottie_CMAKE_DIR}/rlottieTargets.cmake") +endif() + +set(rlottie_LIBRARIES rlottie::rlottie) diff --git a/external/rlottie/example/CMakeLists.txt b/external/rlottie/example/CMakeLists.txt new file mode 100644 index 000000000..b42cc960c --- /dev/null +++ b/external/rlottie/example/CMakeLists.txt @@ -0,0 +1,11 @@ +add_executable(lottie2gif "lottie2gif.cpp") + +target_compile_options(lottie2gif + PRIVATE + -std=c++14) + +target_link_libraries(lottie2gif rlottie) + +target_include_directories(lottie2gif + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/../inc/") diff --git a/external/rlottie/example/demo.cpp b/external/rlottie/example/demo.cpp new file mode 100644 index 000000000..fe31e2863 --- /dev/null +++ b/external/rlottie/example/demo.cpp @@ -0,0 +1,257 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "evasapp.h" +#include "lottieview.h" +#include +#include +#include +#include +using namespace std; + +class Demo +{ +public: + Demo(EvasApp *app, std::string &filePath) { + Demo1(app, filePath); + Demo2(app, filePath); + Demo3(app, filePath); + Demo4(app, filePath); + Demo5(app, filePath); + Demo6(app, filePath); + Demo7(app, filePath); + Demo8(app, filePath); + } + void Demo1(EvasApp *app, std::string &filePath) { + /* Fill Color */ + view1.reset(new LottieView(app->evas())); + view1->setFilePath(filePath.c_str()); + if (view1->player()) { + view1->player()->setValue("Shape Layer 1.Ellipse 1.Fill 1", + [](const rlottie::FrameInfo& info) { + if (info.curFrame() < 60 ) + return rlottie::Color(0, 0, 1); + else { + return rlottie::Color(1, 0, 0); + } + }); + } + view1->setPos(0, 0); + view1->setSize(300, 300); + view1->show(); + view1->play(); + view1->loop(true); + view1->setRepeatMode(LottieView::RepeatMode::Reverse); + } + + void Demo2(EvasApp *app, std::string &filePath) { + /* Stroke Opacity */ + view2.reset(new LottieView(app->evas())); + view2->setFilePath(filePath.c_str()); + if (view2->player()) { + view2->player()->setValue("Shape Layer 2.Shape 1.Stroke 1", + [](const rlottie::FrameInfo& info) { + if (info.curFrame() < 60 ) + return 20; + else { + return 100; + } + }); + } + view2->setPos(300, 0); + view2->setSize(300, 300); + view2->show(); + view2->play(); + view2->loop(true); + view2->setRepeatMode(LottieView::RepeatMode::Reverse); + } + + void Demo3(EvasApp *app, std::string &filePath) { + /* Stroke Opacity */ + view3.reset(new LottieView(app->evas())); + view3->setFilePath(filePath.c_str()); + if (view3->player()) { + view3->player()->setValue("**", + [](const rlottie::FrameInfo& info) { + if (info.curFrame() < 60 ) + return 1.0; + else { + return 5.0; + } + }); + } + view3->setPos(600, 0); + view3->setSize(300, 300); + view3->show(); + view3->play(); + view3->loop(true); + view3->setRepeatMode(LottieView::RepeatMode::Reverse); + } + + void Demo4(EvasApp *app, std::string &filePath) { + /* Transform position */ + view4.reset(new LottieView(app->evas())); + view4->setFilePath(filePath.c_str()); + if (view4->player()) { + view4->player()->setValue("Shape Layer 1.Ellipse 1", + [](const rlottie::FrameInfo& info) { + return rlottie::Point(-20 + (double)info.curFrame()/2.0, + -20 + (double)info.curFrame()/2.0); + }); + } + view4->setPos(900, 0); + view4->setSize(300, 300); + view4->show(); + view4->play(); + view4->loop(true); + view4->setRepeatMode(LottieView::RepeatMode::Reverse); + } + + void Demo5(EvasApp *app, std::string &filePath) { + /* Transform position */ + view5.reset(new LottieView(app->evas())); + view5->setFilePath(filePath.c_str()); + if (view5->player()) { + view5->player()->setValue("Shape Layer 2.Shape 1", + [](const rlottie::FrameInfo& info) { + return rlottie::Point(-20 + (double)info.curFrame()/2.0, + -20 + (double)info.curFrame()/2.0); + }); + } + view5->setPos(1200, 0); + view5->setSize(300, 300); + view5->show(); + view5->play(); + view5->loop(true); + view5->setRepeatMode(LottieView::RepeatMode::Reverse); + } + + void Demo6(EvasApp *app, std::string &filePath) { + /* Transform scale */ + view6.reset(new LottieView(app->evas())); + view6->setFilePath(filePath.c_str()); + if (view6->player()) { + view6->player()->setValue("Shape Layer 1.Ellipse 1", + [](const rlottie::FrameInfo& info) { + return rlottie::Size(100 - info.curFrame(), + 50); + }); + } + view6->setPos(1500, 0); + view6->setSize(300, 300); + view6->show(); + view6->play(); + view6->loop(true); + view6->setRepeatMode(LottieView::RepeatMode::Reverse); + } + + void Demo7(EvasApp *app, std::string &filePath) { + /* Transform rotation */ + view7.reset(new LottieView(app->evas())); + view7->setFilePath(filePath.c_str()); + if (view7->player()) { + view7->player()->setValue("Shape Layer 2.Shape 1", + [](const rlottie::FrameInfo& info) { + return info.curFrame() * 20; + }); + } + view7->setPos(1800, 0); + view7->setSize(300, 300); + view7->show(); + view7->play(); + view7->loop(true); + view7->setRepeatMode(LottieView::RepeatMode::Reverse); + } + void Demo8(EvasApp *app, std::string &filePath) { + /* Transform + color */ + view8.reset(new LottieView(app->evas())); + view8->setFilePath(filePath.c_str()); + if (view8->player()) { + view8->player()->setValue("Shape Layer 1.Ellipse 1", + [](const rlottie::FrameInfo& info) { + return info.curFrame() * 20; + }); + view8->player()->setValue("Shape Layer 1.Ellipse 1", + [](const rlottie::FrameInfo& info) { + return rlottie::Size(50, 100 - info.curFrame()); + }); + view8->player()->setValue("Shape Layer 1.Ellipse 1", + [](const rlottie::FrameInfo& info) { + return rlottie::Point(-20 + (double)info.curFrame()/2.0, + -20 + (double)info.curFrame()/2.0); + }); + view8->player()->setValue("Shape Layer 1.Ellipse 1.Fill 1", + [](const rlottie::FrameInfo& info) { + if (info.curFrame() < 60 ) + return rlottie::Color(0, 0, 1); + else { + return rlottie::Color(1, 0, 0); + } + }); + } + view8->setPos(2100, 0); + view8->setSize(300, 300); + view8->show(); + view8->play(); + view8->loop(true); + view8->setRepeatMode(LottieView::RepeatMode::Reverse); + } +private: + std::unique_ptr view1; + std::unique_ptr view2; + std::unique_ptr view3; + std::unique_ptr view4; + std::unique_ptr view5; + std::unique_ptr view6; + std::unique_ptr view7; + std::unique_ptr view8; +}; + +static void +onExitCb(void *data, void */*extra*/) +{ + Demo *demo = (Demo *)data; + delete demo; +} + +int +main(void) +{ + EvasApp *app = new EvasApp(2400, 300); + app->setup(); + + std::string filePath = DEMO_DIR; + filePath +="done.json"; + + auto demo = new Demo(app, filePath); + + app->addExitCb(onExitCb, demo); + app->run(); + + delete app; + return 0; +} + + + + + diff --git a/external/rlottie/example/demo_marker.cpp b/external/rlottie/example/demo_marker.cpp new file mode 100644 index 000000000..0a0f54eea --- /dev/null +++ b/external/rlottie/example/demo_marker.cpp @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "evasapp.h" +#include "lottieview.h" +#include +#include +#include +#include +using namespace std; + +class DemoMarker +{ +public: + DemoMarker(EvasApp *app, std::string filePath) { + view1.reset(new LottieView(app->evas())); + view1->setFilePath(filePath.c_str()); + view1->setPos(0, 0); + view1->setSize(400, 400); + view1->show(); + view1->play(); + view1->loop(true); + + /* Play with marker */ + view2.reset(new LottieView(app->evas())); + view2->setFilePath(filePath.c_str()); + view2->setPos(400, 0); + view2->setSize(400, 400); + view2->show(); + view2->play("second"); + view2->loop(true); + + /* Play marker to marker */ + view3.reset(new LottieView(app->evas())); + view3->setFilePath(filePath.c_str()); + view3->setPos(800, 0); + view3->setSize(400, 400); + view3->show(); + view3->play("second", "third"); + view3->loop(true); + } + +private: + std::unique_ptr view1; + std::unique_ptr view2; + std::unique_ptr view3; +}; + +static void +onExitCb(void *data, void */*extra*/) +{ + DemoMarker *demo = (DemoMarker *)data; + delete demo; +} + +int +main(void) +{ + EvasApp *app = new EvasApp(1200, 400); + app->setup(); + + std::string filePath = DEMO_DIR; + filePath +="marker.json"; + + auto demo = new DemoMarker(app, filePath); + + app->addExitCb(onExitCb, demo); + app->run(); + + delete app; + return 0; +} + + + + + diff --git a/external/rlottie/example/evasapp.cpp b/external/rlottie/example/evasapp.cpp new file mode 100644 index 000000000..61725afa1 --- /dev/null +++ b/external/rlottie/example/evasapp.cpp @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "evasapp.h" +#include +#include + +static void +_on_resize(Ecore_Evas *ee) +{ + EvasApp *app = (EvasApp *)ecore_evas_data_get(ee, "app"); + int w, h; + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + app->resize(w, h); + if (app->mResizeCb) + app->mResizeCb(app->mResizeData, nullptr); +} + +static void +_on_delete(Ecore_Evas *ee) +{ + EvasApp *app = (EvasApp *)ecore_evas_data_get(ee, "app"); + if (app->mExitCb) + app->mExitCb(app->mExitData, nullptr); + + ecore_main_loop_quit(); + ecore_evas_free(ee); +} + +static Eina_Bool +on_key_down(void *data, int /*type*/, void *event) +{ + Ecore_Event_Key *keyData = (Ecore_Event_Key *)event; + + EvasApp *app = (EvasApp *) data; + if (app && app->mKeyCb) + app->mKeyCb(app->mKeyData, (void *)keyData->key); + + return false; +} + +static void +on_pre_render(Ecore_Evas *ee) +{ + EvasApp *app = (EvasApp *)ecore_evas_data_get(ee, "app"); + if (app->mRenderPreCb) + app->mRenderPreCb(app->mRenderPreData, nullptr); +} + +static void +on_post_render(Ecore_Evas *ee) +{ + EvasApp *app = (EvasApp *)ecore_evas_data_get(ee, "app"); + if (app && app->mRenderPostCb) + app->mRenderPostCb(app->mRenderPostData, nullptr); +} + +void EvasApp::exit() +{ + _on_delete(mEcoreEvas); +} +EvasApp::EvasApp(int w, int h) +{ + if (!ecore_evas_init()) + return; + mw = w; + mh = h; + //setenv("ECORE_EVAS_ENGINE", "opengl_x11", 1); + mEcoreEvas = ecore_evas_new(NULL, 0, 0, mw, mh, NULL); + if (!mEcoreEvas) return; +} + +void +EvasApp::setup() +{ + ecore_evas_data_set(mEcoreEvas, "app", this); + ecore_evas_callback_resize_set(mEcoreEvas, _on_resize); + ecore_evas_callback_delete_request_set(mEcoreEvas, _on_delete); + ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, on_key_down, this); + ecore_evas_callback_pre_render_set(mEcoreEvas, on_pre_render); + ecore_evas_callback_post_render_set(mEcoreEvas, on_post_render); + + ecore_evas_show(mEcoreEvas); + mEvas = ecore_evas_get(mEcoreEvas); + mBackground = evas_object_rectangle_add(mEvas); + evas_object_color_set(mBackground, 70, 70, 70, 255); + evas_object_show(mBackground); +} + +void +EvasApp::resize(int w, int h) +{ + evas_object_resize(mBackground, w, h); + mw = w; + mh = h; +} + +void EvasApp::run() +{ + resize(mw, mh); + ecore_main_loop_begin(); + ecore_evas_shutdown(); +} + +static bool isJsonFile(const char *filename) { + const char *dot = strrchr(filename, '.'); + if(!dot || dot == filename) return false; + return !strcmp(dot + 1, "json"); +} + +std::vector +EvasApp::jsonFiles(const std::string &dirName, bool /*recurse*/) +{ + DIR *d; + struct dirent *dir; + std::vector result; + d = opendir(dirName.c_str()); + if (d) { + while ((dir = readdir(d)) != NULL) { + if (isJsonFile(dir->d_name)) + result.push_back(dirName + dir->d_name); + } + closedir(d); + } + + std::sort(result.begin(), result.end(), [](auto & a, auto &b){return a < b;}); + + return result; +} + diff --git a/external/rlottie/example/evasapp.h b/external/rlottie/example/evasapp.h new file mode 100644 index 000000000..e1fdb18df --- /dev/null +++ b/external/rlottie/example/evasapp.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef EVASAPP_H +#define EVASAPP_H + +#ifndef EFL_BETA_API_SUPPORT +#define EFL_BETA_API_SUPPORT +#endif + +#ifndef EFL_EO_API_SUPPORT +#define EFL_EO_API_SUPPORT +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + + +typedef void (*appCb)(void *userData, void *extra); +class EvasApp +{ +public: + EvasApp(int w, int h); + void setup(); + void resize(int w, int h); + int width() const{ return mw;} + int height() const{ return mh;} + void run(); + Ecore_Evas * ee() const{return mEcoreEvas;} + Evas * evas() const {return mEvas;} + void addExitCb(appCb exitcb, void *data) {mExitCb = exitcb; mExitData = data;} + void addResizeCb(appCb resizecb, void *data) {mResizeCb = resizecb; mResizeData = data;} + void addKeyCb(appCb keycb, void *data) {mKeyCb = keycb; mKeyData = data;} + void addRenderPreCb(appCb renderPrecb, void *data) {mRenderPreCb = renderPrecb; mRenderPreData = data;} + void addRenderPostCb(appCb renderPostcb, void *data) {mRenderPostCb = renderPostcb; mRenderPostData = data;} + void exit(); + static std::vector jsonFiles(const std::string &dir, bool recurse=false); +public: + int mw{0}; + int mh{0}; + Ecore_Evas *mEcoreEvas{nullptr}; + Evas *mEvas{nullptr}; + Evas_Object *mBackground{nullptr}; + appCb mResizeCb{nullptr}; + void *mResizeData{nullptr}; + appCb mExitCb{nullptr}; + void *mExitData{nullptr}; + appCb mKeyCb{nullptr}; + void *mKeyData{nullptr}; + appCb mRenderPreCb{nullptr}; + void *mRenderPreData{nullptr}; + appCb mRenderPostCb{nullptr}; + void *mRenderPostData{nullptr}; +}; +#endif //EVASAPP_H diff --git a/external/rlottie/example/gif.h b/external/rlottie/example/gif.h new file mode 100644 index 000000000..72cc148c3 --- /dev/null +++ b/external/rlottie/example/gif.h @@ -0,0 +1,835 @@ +// +// gif.h +// by Charlie Tangora +// Public domain. +// Email me : ctangora -at- gmail -dot- com +// +// This file offers a simple, very limited way to create animated GIFs directly in code. +// +// Those looking for particular cleverness are likely to be disappointed; it's pretty +// much a straight-ahead implementation of the GIF format with optional Floyd-Steinberg +// dithering. (It does at least use delta encoding - only the changed portions of each +// frame are saved.) +// +// So resulting files are often quite large. The hope is that it will be handy nonetheless +// as a quick and easily-integrated way for programs to spit out animations. +// +// Only RGBA8 is currently supported as an input format. (The alpha is ignored.) +// +// If capturing a buffer with a bottom-left origin (such as OpenGL), define GIF_FLIP_VERT +// to automatically flip the buffer data when writing the image (the buffer itself is +// unchanged. +// +// USAGE: +// Create a GifWriter struct. Pass it to GifBegin() to initialize and write the header. +// Pass subsequent frames to GifWriteFrame(). +// Finally, call GifEnd() to close the file handle and free memory. +// + +#ifndef gif_h +#define gif_h + +#include // for FILE* +#include // for memcpy and bzero +#include // for integer typedefs + +// Define these macros to hook into a custom memory allocator. +// TEMP_MALLOC and TEMP_FREE will only be called in stack fashion - frees in the reverse order of mallocs +// and any temp memory allocated by a function will be freed before it exits. +// MALLOC and FREE are used only by GifBegin and GifEnd respectively (to allocate a buffer the size of the image, which +// is used to find changed pixels for delta-encoding.) + +#ifndef GIF_TEMP_MALLOC +#include +#define GIF_TEMP_MALLOC malloc +#endif + +#ifndef GIF_TEMP_FREE +#include +#define GIF_TEMP_FREE free +#endif + +#ifndef GIF_MALLOC +#include +#define GIF_MALLOC malloc +#endif + +#ifndef GIF_FREE +#include +#define GIF_FREE free +#endif + +const int kGifTransIndex = 0; + +struct GifPalette +{ + int bitDepth; + + uint8_t r[256]; + uint8_t g[256]; + uint8_t b[256]; + + // k-d tree over RGB space, organized in heap fashion + // i.e. left child of node i is node i*2, right child is node i*2+1 + // nodes 256-511 are implicitly the leaves, containing a color + uint8_t treeSplitElt[255]; + uint8_t treeSplit[255]; +}; + +// max, min, and abs functions +int GifIMax(int l, int r) { return l>r?l:r; } +int GifIMin(int l, int r) { return l (1<bitDepth)-1) + { + int ind = treeRoot-(1<bitDepth); + if(ind == kGifTransIndex) return; + + // check whether this color is better than the current winner + int r_err = r - ((int32_t)pPal->r[ind]); + int g_err = g - ((int32_t)pPal->g[ind]); + int b_err = b - ((int32_t)pPal->b[ind]); + int diff = GifIAbs(r_err)+GifIAbs(g_err)+GifIAbs(b_err); + + if(diff < bestDiff) + { + bestInd = ind; + bestDiff = diff; + } + + return; + } + + // take the appropriate color (r, g, or b) for this node of the k-d tree + int comps[3]; comps[0] = r; comps[1] = g; comps[2] = b; + int splitComp = comps[pPal->treeSplitElt[treeRoot]]; + + int splitPos = pPal->treeSplit[treeRoot]; + if(splitPos > splitComp) + { + // check the left subtree + GifGetClosestPaletteColor(pPal, r, g, b, bestInd, bestDiff, treeRoot*2); + if( bestDiff > splitPos - splitComp ) + { + // cannot prove there's not a better value in the right subtree, check that too + GifGetClosestPaletteColor(pPal, r, g, b, bestInd, bestDiff, treeRoot*2+1); + } + } + else + { + GifGetClosestPaletteColor(pPal, r, g, b, bestInd, bestDiff, treeRoot*2+1); + if( bestDiff > splitComp - splitPos ) + { + GifGetClosestPaletteColor(pPal, r, g, b, bestInd, bestDiff, treeRoot*2); + } + } +} + +void GifSwapPixels(uint8_t* image, int pixA, int pixB) +{ + uint8_t rA = image[pixA*4]; + uint8_t gA = image[pixA*4+1]; + uint8_t bA = image[pixA*4+2]; + uint8_t aA = image[pixA*4+3]; + + uint8_t rB = image[pixB*4]; + uint8_t gB = image[pixB*4+1]; + uint8_t bB = image[pixB*4+2]; + uint8_t aB = image[pixA*4+3]; + + image[pixA*4] = rB; + image[pixA*4+1] = gB; + image[pixA*4+2] = bB; + image[pixA*4+3] = aB; + + image[pixB*4] = rA; + image[pixB*4+1] = gA; + image[pixB*4+2] = bA; + image[pixB*4+3] = aA; +} + +// just the partition operation from quicksort +int GifPartition(uint8_t* image, const int left, const int right, const int elt, int pivotIndex) +{ + const int pivotValue = image[(pivotIndex)*4+elt]; + GifSwapPixels(image, pivotIndex, right-1); + int storeIndex = left; + bool split = 0; + for(int ii=left; ii neededCenter) + GifPartitionByMedian(image, left, pivotIndex, com, neededCenter); + + if(pivotIndex < neededCenter) + GifPartitionByMedian(image, pivotIndex+1, right, com, neededCenter); + } +} + +// Builds a palette by creating a balanced k-d tree of all pixels in the image +void GifSplitPalette(uint8_t* image, int numPixels, int firstElt, int lastElt, int splitElt, int splitDist, int treeNode, bool buildForDither, GifPalette* pal) +{ + if(lastElt <= firstElt || numPixels == 0) + return; + + // base case, bottom of the tree + if(lastElt == firstElt+1) + { + if(buildForDither) + { + // Dithering needs at least one color as dark as anything + // in the image and at least one brightest color - + // otherwise it builds up error and produces strange artifacts + if( firstElt == 1 ) + { + // special case: the darkest color in the image + uint32_t r=255, g=255, b=255; + for(int ii=0; iir[firstElt] = (uint8_t)r; + pal->g[firstElt] = (uint8_t)g; + pal->b[firstElt] = (uint8_t)b; + + return; + } + + if( firstElt == (1 << pal->bitDepth)-1 ) + { + // special case: the lightest color in the image + uint32_t r=0, g=0, b=0; + for(int ii=0; iir[firstElt] = (uint8_t)r; + pal->g[firstElt] = (uint8_t)g; + pal->b[firstElt] = (uint8_t)b; + + return; + } + } + + // otherwise, take the average of all colors in this subcube + uint64_t r=0, g=0, b=0; + for(int ii=0; iir[firstElt] = (uint8_t)r; + pal->g[firstElt] = (uint8_t)g; + pal->b[firstElt] = (uint8_t)b; + + return; + } + + // Find the axis with the largest range + int minR = 255, maxR = 0; + int minG = 255, maxG = 0; + int minB = 255, maxB = 0; + for(int ii=0; ii maxR) maxR = r; + if(r < minR) minR = r; + + if(g > maxG) maxG = g; + if(g < minG) minG = g; + + if(b > maxB) maxB = b; + if(b < minB) minB = b; + } + + int rRange = maxR - minR; + int gRange = maxG - minG; + int bRange = maxB - minB; + + // and split along that axis. (incidentally, this means this isn't a "proper" k-d tree but I don't know what else to call it) + int splitCom = 1; + if(bRange > gRange) splitCom = 2; + if(rRange > bRange && rRange > gRange) splitCom = 0; + + int subPixelsA = numPixels * (splitElt - firstElt) / (lastElt - firstElt); + int subPixelsB = numPixels-subPixelsA; + + GifPartitionByMedian(image, 0, numPixels, splitCom, subPixelsA); + + pal->treeSplitElt[treeNode] = (uint8_t)splitCom; + pal->treeSplit[treeNode] = image[subPixelsA*4+splitCom]; + + GifSplitPalette(image, subPixelsA, firstElt, splitElt, splitElt-splitDist, splitDist/2, treeNode*2, buildForDither, pal); + GifSplitPalette(image+subPixelsA*4, subPixelsB, splitElt, lastElt, splitElt+splitDist, splitDist/2, treeNode*2+1, buildForDither, pal); +} + +// Finds all pixels that have changed from the previous image and +// moves them to the fromt of th buffer. +// This allows us to build a palette optimized for the colors of the +// changed pixels only. +int GifPickChangedPixels( const uint8_t* lastFrame, uint8_t* frame, int numPixels ) +{ + int numChanged = 0; + uint8_t* writeIter = frame; + + for (int ii=0; iibitDepth = bitDepth; + + // SplitPalette is destructive (it sorts the pixels by color) so + // we must create a copy of the image for it to destroy + size_t imageSize = (size_t)(width * height * 4 * sizeof(uint8_t)); + uint8_t* destroyableImage = (uint8_t*)GIF_TEMP_MALLOC(imageSize); + memcpy(destroyableImage, nextFrame, imageSize); + + int numPixels = (int)(width * height); + if(lastFrame) + numPixels = GifPickChangedPixels(lastFrame, destroyableImage, numPixels); + + const int lastElt = 1 << bitDepth; + const int splitElt = lastElt/2; + const int splitDist = splitElt/2; + + GifSplitPalette(destroyableImage, numPixels, 1, lastElt, splitElt, splitDist, 1, buildForDither, pPal); + + GIF_TEMP_FREE(destroyableImage); + + // add the bottom node for the transparency index + pPal->treeSplit[1 << (bitDepth-1)] = 0; + pPal->treeSplitElt[1 << (bitDepth-1)] = 0; + + pPal->r[0] = pPal->g[0] = pPal->b[0] = 0; +} + +// Implements Floyd-Steinberg dithering, writes palette value to alpha +void GifDitherImage( const uint8_t* lastFrame, const uint8_t* nextFrame, uint8_t* outFrame, uint32_t width, uint32_t height, GifPalette* pPal ) +{ + int numPixels = (int)(width * height); + + // quantPixels initially holds color*256 for all pixels + // The extra 8 bits of precision allow for sub-single-color error values + // to be propagated + int32_t *quantPixels = (int32_t *)GIF_TEMP_MALLOC(sizeof(int32_t) * (size_t)numPixels * 4); + + for( int ii=0; iir[bestInd]) * 256; + int32_t g_err = nextPix[1] - int32_t(pPal->g[bestInd]) * 256; + int32_t b_err = nextPix[2] - int32_t(pPal->b[bestInd]) * 256; + + nextPix[0] = pPal->r[bestInd]; + nextPix[1] = pPal->g[bestInd]; + nextPix[2] = pPal->b[bestInd]; + nextPix[3] = bestInd; + + // Propagate the error to the four adjacent locations + // that we haven't touched yet + int quantloc_7 = (int)(yy * width + xx + 1); + int quantloc_3 = (int)(yy * width + width + xx - 1); + int quantloc_5 = (int)(yy * width + width + xx); + int quantloc_1 = (int)(yy * width + width + xx + 1); + + if(quantloc_7 < numPixels) + { + int32_t* pix7 = quantPixels+4*quantloc_7; + pix7[0] += GifIMax( -pix7[0], r_err * 7 / 16 ); + pix7[1] += GifIMax( -pix7[1], g_err * 7 / 16 ); + pix7[2] += GifIMax( -pix7[2], b_err * 7 / 16 ); + } + + if(quantloc_3 < numPixels) + { + int32_t* pix3 = quantPixels+4*quantloc_3; + pix3[0] += GifIMax( -pix3[0], r_err * 3 / 16 ); + pix3[1] += GifIMax( -pix3[1], g_err * 3 / 16 ); + pix3[2] += GifIMax( -pix3[2], b_err * 3 / 16 ); + } + + if(quantloc_5 < numPixels) + { + int32_t* pix5 = quantPixels+4*quantloc_5; + pix5[0] += GifIMax( -pix5[0], r_err * 5 / 16 ); + pix5[1] += GifIMax( -pix5[1], g_err * 5 / 16 ); + pix5[2] += GifIMax( -pix5[2], b_err * 5 / 16 ); + } + + if(quantloc_1 < numPixels) + { + int32_t* pix1 = quantPixels+4*quantloc_1; + pix1[0] += GifIMax( -pix1[0], r_err / 16 ); + pix1[1] += GifIMax( -pix1[1], g_err / 16 ); + pix1[2] += GifIMax( -pix1[2], b_err / 16 ); + } + } + } + + // Copy the palettized result to the output buffer + for( int ii=0; iir[bestInd]; + outFrame[1] = pPal->g[bestInd]; + outFrame[2] = pPal->b[bestInd]; + outFrame[3] = (uint8_t)bestInd; + } + + if(lastFrame) lastFrame += 4; + outFrame += 4; + nextFrame += 4; + } +} + +// Simple structure to write out the LZW-compressed portion of the image +// one bit at a time +struct GifBitStatus +{ + uint8_t bitIndex; // how many bits in the partial byte written so far + uint8_t byte; // current partial byte + + uint32_t chunkIndex; + uint8_t chunk[256]; // bytes are written in here until we have 256 of them, then written to the file +}; + +// insert a single bit +void GifWriteBit( GifBitStatus& stat, uint32_t bit ) +{ + bit = bit & 1; + bit = bit << stat.bitIndex; + stat.byte |= bit; + + ++stat.bitIndex; + if( stat.bitIndex > 7 ) + { + // move the newly-finished byte to the chunk buffer + stat.chunk[stat.chunkIndex++] = stat.byte; + // and start a new byte + stat.bitIndex = 0; + stat.byte = 0; + } +} + +// write all bytes so far to the file +void GifWriteChunk( FILE* f, GifBitStatus& stat ) +{ + fputc((int)stat.chunkIndex, f); + fwrite(stat.chunk, 1, stat.chunkIndex, f); + + stat.bitIndex = 0; + stat.byte = 0; + stat.chunkIndex = 0; +} + +void GifWriteCode( FILE* f, GifBitStatus& stat, uint32_t code, uint32_t length ) +{ + for( uint32_t ii=0; ii> 1; + + if( stat.chunkIndex == 255 ) + { + GifWriteChunk(f, stat); + } + } +} + +// The LZW dictionary is a 256-ary tree constructed as the file is encoded, +// this is one node +struct GifLzwNode +{ + uint16_t m_next[256]; +}; + +// write a 256-color (8-bit) image palette to the file +void GifWritePalette( const GifPalette* pPal, FILE* f ) +{ + fputc(0, f); // first color: transparency + fputc(0, f); + fputc(0, f); + + for(int ii=1; ii<(1 << pPal->bitDepth); ++ii) + { + uint32_t r = pPal->r[ii]; + uint32_t g = pPal->g[ii]; + uint32_t b = pPal->b[ii]; + + fputc((int)r, f); + fputc((int)g, f); + fputc((int)b, f); + } +} + +// write the image header, LZW-compress and write out the image +void GifWriteLzwImage(FILE* f, uint8_t* image, uint32_t left, uint32_t top, uint32_t width, uint32_t height, uint32_t delay, GifPalette* pPal) +{ + // graphics control extension + fputc(0x21, f); + fputc(0xf9, f); + fputc(0x04, f); + fputc(0x05, f); // leave prev frame in place, this frame has transparency + fputc(delay & 0xff, f); + fputc((delay >> 8) & 0xff, f); + fputc(kGifTransIndex, f); // transparent color index + fputc(0, f); + + fputc(0x2c, f); // image descriptor block + + fputc(left & 0xff, f); // corner of image in canvas space + fputc((left >> 8) & 0xff, f); + fputc(top & 0xff, f); + fputc((top >> 8) & 0xff, f); + + fputc(width & 0xff, f); // width and height of image + fputc((width >> 8) & 0xff, f); + fputc(height & 0xff, f); + fputc((height >> 8) & 0xff, f); + + //fputc(0, f); // no local color table, no transparency + //fputc(0x80, f); // no local color table, but transparency + + fputc(0x80 + pPal->bitDepth-1, f); // local color table present, 2 ^ bitDepth entries + GifWritePalette(pPal, f); + + const int minCodeSize = pPal->bitDepth; + const uint32_t clearCode = 1 << pPal->bitDepth; + + fputc(minCodeSize, f); // min code size 8 bits + + GifLzwNode* codetree = (GifLzwNode*)GIF_TEMP_MALLOC(sizeof(GifLzwNode)*4096); + + memset(codetree, 0, sizeof(GifLzwNode)*4096); + int32_t curCode = -1; + uint32_t codeSize = (uint32_t)minCodeSize + 1; + uint32_t maxCode = clearCode+1; + + GifBitStatus stat; + stat.byte = 0; + stat.bitIndex = 0; + stat.chunkIndex = 0; + + GifWriteCode(f, stat, clearCode, codeSize); // start with a fresh LZW dictionary + + for(uint32_t yy=0; yy= (1ul << codeSize) ) + { + // dictionary entry count has broken a size barrier, + // we need more bits for codes + codeSize++; + } + if( maxCode == 4095 ) + { + // the dictionary is full, clear it out and begin anew + GifWriteCode(f, stat, clearCode, codeSize); // clear tree + + memset(codetree, 0, sizeof(GifLzwNode)*4096); + codeSize = (uint32_t)(minCodeSize + 1); + maxCode = clearCode+1; + } + + curCode = nextValue; + } + } + } + + // compression footer + GifWriteCode(f, stat, (uint32_t)curCode, codeSize); + GifWriteCode(f, stat, clearCode, codeSize); + GifWriteCode(f, stat, clearCode + 1, (uint32_t)minCodeSize + 1); + + // write out the last partial chunk + while( stat.bitIndex ) GifWriteBit(stat, 0); + if( stat.chunkIndex ) GifWriteChunk(f, stat); + + fputc(0, f); // image block terminator + + GIF_TEMP_FREE(codetree); +} + +struct GifWriter +{ + FILE* f; + uint8_t* oldImage; + bool firstFrame; +}; + +// Creates a gif file. +// The input GIFWriter is assumed to be uninitialized. +// The delay value is the time between frames in hundredths of a second - note that not all viewers pay much attention to this value. +bool GifBegin( GifWriter* writer, const char* filename, uint32_t width, uint32_t height, uint32_t delay, int32_t bitDepth = 8, bool dither = false ) +{ + (void)bitDepth; (void)dither; // Mute "Unused argument" warnings +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + writer->f = 0; + fopen_s(&writer->f, filename, "wb"); +#else + writer->f = fopen(filename, "wb"); +#endif + if(!writer->f) return false; + + writer->firstFrame = true; + + // allocate + writer->oldImage = (uint8_t*)GIF_MALLOC(width*height*4); + + fputs("GIF89a", writer->f); + + // screen descriptor + fputc(width & 0xff, writer->f); + fputc((width >> 8) & 0xff, writer->f); + fputc(height & 0xff, writer->f); + fputc((height >> 8) & 0xff, writer->f); + + fputc(0xf0, writer->f); // there is an unsorted global color table of 2 entries + fputc(0, writer->f); // background color + fputc(0, writer->f); // pixels are square (we need to specify this because it's 1989) + + // now the "global" palette (really just a dummy palette) + // color 0: black + fputc(0, writer->f); + fputc(0, writer->f); + fputc(0, writer->f); + // color 1: also black + fputc(0, writer->f); + fputc(0, writer->f); + fputc(0, writer->f); + + if( delay != 0 ) + { + // animation header + fputc(0x21, writer->f); // extension + fputc(0xff, writer->f); // application specific + fputc(11, writer->f); // length 11 + fputs("NETSCAPE2.0", writer->f); // yes, really + fputc(3, writer->f); // 3 bytes of NETSCAPE2.0 data + + fputc(1, writer->f); // JUST BECAUSE + fputc(0, writer->f); // loop infinitely (byte 0) + fputc(0, writer->f); // loop infinitely (byte 1) + + fputc(0, writer->f); // block terminator + } + + return true; +} + +// Writes out a new frame to a GIF in progress. +// The GIFWriter should have been created by GIFBegin. +// AFAIK, it is legal to use different bit depths for different frames of an image - +// this may be handy to save bits in animations that don't change much. +bool GifWriteFrame( GifWriter* writer, const uint8_t* image, uint32_t width, uint32_t height, uint32_t delay, int bitDepth = 8, bool dither = false ) +{ + if(!writer->f) return false; + + const uint8_t* oldImage = writer->firstFrame? NULL : writer->oldImage; + writer->firstFrame = false; + + GifPalette pal; + GifMakePalette((dither? NULL : oldImage), image, width, height, bitDepth, dither, &pal); + + if(dither) + GifDitherImage(oldImage, image, writer->oldImage, width, height, &pal); + else + GifThresholdImage(oldImage, image, writer->oldImage, width, height, &pal); + + GifWriteLzwImage(writer->f, writer->oldImage, 0, 0, width, height, delay, &pal); + + return true; +} + +// Writes the EOF code, closes the file handle, and frees temp memory used by a GIF. +// Many if not most viewers will still display a GIF properly if the EOF code is missing, +// but it's still a good idea to write it out. +bool GifEnd( GifWriter* writer ) +{ + if(!writer->f) return false; + + fputc(0x3b, writer->f); // end of file + fclose(writer->f); + GIF_FREE(writer->oldImage); + + writer->f = NULL; + writer->oldImage = NULL; + + return true; +} + +#endif diff --git a/external/rlottie/example/lottie2gif.cpp b/external/rlottie/example/lottie2gif.cpp new file mode 100644 index 000000000..cb43c219e --- /dev/null +++ b/external/rlottie/example/lottie2gif.cpp @@ -0,0 +1,178 @@ +#include "gif.h" +#include + +#include +#include +#include +#include + +#ifndef _WIN32 +#include +#else +#include +#include +#endif + +class GifBuilder { +public: + explicit GifBuilder(const std::string &fileName , const uint32_t width, + const uint32_t height, const int bgColor=0xffffffff, const uint32_t delay = 2) + { + GifBegin(&handle, fileName.c_str(), width, height, delay); + bgColorR = (uint8_t) ((bgColor & 0xff0000) >> 16); + bgColorG = (uint8_t) ((bgColor & 0x00ff00) >> 8); + bgColorB = (uint8_t) ((bgColor & 0x0000ff)); + } + ~GifBuilder() + { + GifEnd(&handle); + } + void addFrame(rlottie::Surface &s, uint32_t delay = 2) + { + argbTorgba(s); + GifWriteFrame(&handle, + reinterpret_cast(s.buffer()), + s.width(), + s.height(), + delay); + } + void argbTorgba(rlottie::Surface &s) + { + uint8_t *buffer = reinterpret_cast(s.buffer()); + uint32_t totalBytes = s.height() * s.bytesPerLine(); + + for (uint32_t i = 0; i < totalBytes; i += 4) { + unsigned char a = buffer[i+3]; + // compute only if alpha is non zero + if (a) { + unsigned char r = buffer[i+2]; + unsigned char g = buffer[i+1]; + unsigned char b = buffer[i]; + + if (a != 255) { //un premultiply + unsigned char r2 = (unsigned char) ((float) bgColorR * ((float) (255 - a) / 255)); + unsigned char g2 = (unsigned char) ((float) bgColorG * ((float) (255 - a) / 255)); + unsigned char b2 = (unsigned char) ((float) bgColorB * ((float) (255 - a) / 255)); + buffer[i] = r + r2; + buffer[i+1] = g + g2; + buffer[i+2] = b + b2; + + } else { + // only swizzle r and b + buffer[i] = r; + buffer[i+2] = b; + } + } else { + buffer[i+2] = bgColorB; + buffer[i+1] = bgColorG; + buffer[i] = bgColorR; + } + } + } + +private: + GifWriter handle; + uint8_t bgColorR, bgColorG, bgColorB; +}; + +class App { +public: + int render(uint32_t w, uint32_t h) + { + auto player = rlottie::Animation::loadFromFile(fileName); + if (!player) return help(); + + auto buffer = std::unique_ptr(new uint32_t[w * h]); + size_t frameCount = player->totalFrame(); + + GifBuilder builder(gifName.data(), w, h, bgColor); + for (size_t i = 0; i < frameCount ; i++) { + rlottie::Surface surface(buffer.get(), w, h, w * 4); + player->renderSync(i, surface); + builder.addFrame(surface); + } + return result(); + } + + int setup(int argc, char **argv, size_t *width, size_t *height) + { + char *path{nullptr}; + + *width = *height = 200; //default gif size + + if (argc > 1) path = argv[1]; + if (argc > 2) { + char tmp[20]; + char *x = strstr(argv[2], "x"); + if (x) { + snprintf(tmp, x - argv[2] + 1, "%s", argv[2]); + *width = atoi(tmp); + snprintf(tmp, sizeof(tmp), "%s", x + 1); + *height = atoi(tmp); + } + } + if (argc > 3) bgColor = strtol(argv[3], NULL, 16); + + if (!path) return help(); + + std::array memory; + +#ifdef _WIN32 + path = _fullpath(memory.data(), path, memory.size()); +#else + path = realpath(path, memory.data()); +#endif + if (!path) return help(); + + fileName = std::string(path); + + if (!jsonFile()) return help(); + + gifName = basename(fileName); + gifName.append(".gif"); + return 0; + } + +private: + std::string basename(const std::string &str) + { + return str.substr(str.find_last_of("/\\") + 1); + } + + bool jsonFile() { + std::string extn = ".json"; + if ( fileName.size() <= extn.size() || + fileName.substr(fileName.size()- extn.size()) != extn ) + return false; + + return true; + } + + int result() { + std::cout<<"Generated GIF file : "< +#include +#include +#include +#include +#include +#include + +#include + +static bool isJsonFile(const char *filename) { + const char *dot = strrchr(filename, '.'); + if(!dot || dot == filename) return false; + return !strcmp(dot + 1, "json"); +} + +static std::vector +jsonFiles(const std::string &dirName) +{ + DIR *d; + struct dirent *dir; + std::vector result; + d = opendir(dirName.c_str()); + if (d) { + while ((dir = readdir(d)) != NULL) { + if (isJsonFile(dir->d_name)) + result.push_back(dirName + dir->d_name); + } + closedir(d); + } + + std::sort(result.begin(), result.end(), [](auto & a, auto &b){return a < b;}); + + return result; +} + +class Renderer +{ +public: + explicit Renderer(const std::string& filename) + { + _animation = rlottie::Animation::loadFromFile(filename); + _frames = _animation->totalFrame(); + _buffer = std::make_unique(100 * 100); + _surface = rlottie::Surface(_buffer.get(), 100, 100, 100 * 4); + } + void render() + { + if (_cur >= _frames) _cur = 0; + _animation->renderSync(_cur++, _surface); + } + void renderAsync() + { + if (_cur >= _frames) _cur = 0; + _future = _animation->render(_cur++, _surface); + } + void get() + { + if (_future.valid()) _future.get(); + } +private: + std::unique_ptr _buffer; + std::unique_ptr _animation; + size_t _frames{0}; + size_t _cur{0}; + rlottie::Surface _surface; + std::future _future; +}; + +class PerfTest +{ +public: + explicit PerfTest(size_t resourceCount, size_t iterations): + _resourceCount(resourceCount), _iterations(iterations) + { + _resourceList = jsonFiles(std::string(DEMO_DIR)); + } + void test(bool async) + { + setup(); + std::cout<<" Test Started : .... \n"; + auto start = std::chrono::high_resolution_clock::now(); + benchmark(async); + std::chrono::duration secs = std::chrono::high_resolution_clock::now() - start; + std::chrono::duration millisecs = secs; + std::cout<< " Test Finished.\n"; + std::cout<< " \nPerformance Report: \n\n"; + std::cout<< " \t Resource Rendered per Frame : "<< _resourceCount <<"\n"; + std::cout<< " \t Render Buffer Size : (100 X 100) \n"; + std::cout<< " \t Render Mode : "<< (async ? "Async" : "Sync")<<"\n"; + std::cout<< " \t Total Frames Rendered : "<< _iterations<<"\n"; + std::cout<< " \t Total Render Time : "<< secs.count()<<"sec\n"; + std::cout<< " \t Avrage Time per Resource : "<< millisecs.count() / (_iterations * _resourceCount)<<"ms\n"; + std::cout<< " \t Avrage Time Per Frame : "<< millisecs.count() / _iterations <<"ms\n"; + std::cout<< " \t FPS : "<< _iterations / secs.count() <<"fps\n\n"; + } +private: + void setup() + { + for (auto i = 0u; i < _resourceCount; i++) { + auto index = i % _resourceList.size(); + _renderers.push_back(std::make_unique(_resourceList[index])); + } + } + + void benchmark(bool async) + { + for (auto i = 0u; i < _iterations; i++) { + if (async) { + for (const auto &e : _renderers) e->renderAsync(); + for (const auto &e : _renderers) e->get(); + } else { + for (const auto &e : _renderers) e->render(); + } + } + } + +private: + size_t _resourceCount; + size_t _iterations; + + std::vector _resourceList; + std::vector> _renderers; +}; + +static int help() +{ + std::cout<<"\nUsage : ./perf [--sync] [-c] [resource count] [-i] [iteration count] \n"; + std::cout<<"\nExample : ./perf -c 50 -i 100 \n"; + std::cout<<"\n\t runs perf test for 100 iterations. renders 50 resource per iteration\n\n"; + return 0; +} +int +main(int argc, char ** argv) +{ + bool async = true; + size_t resourceCount = 250; + size_t iterations = 500; + auto index = 0; + + while (index < argc) { + const char* option = argv[index]; + index++; + if (!strcmp(option,"--help") || !strcmp(option,"-h")) { + return help(); + } else if (!strcmp(option,"--sync")) { + async = false; + } else if (!strcmp(option,"-c")) { + resourceCount = (index < argc) ? atoi(argv[index]) : resourceCount; + index++; + } else if (!strcmp(option,"-i")) { + iterations = (index < argc) ? atoi(argv[index]) : iterations; + index++; + } + } + + PerfTest obj(resourceCount, iterations); + obj.test(async); + return 0; +} diff --git a/external/rlottie/example/lottieview.cpp b/external/rlottie/example/lottieview.cpp new file mode 100644 index 000000000..d1fc9f26e --- /dev/null +++ b/external/rlottie/example/lottieview.cpp @@ -0,0 +1,228 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include"lottieview.h" + +using namespace rlottie; + +static void +_image_update_cb(void *data, Evas_Object *obj EINA_UNUSED) +{ + RenderStrategy *info = (RenderStrategy *)data; + info->dataCb(); +} + +void RenderStrategy::addCallback(){ + if (_useImage) + evas_object_image_pixels_get_callback_set(_renderObject, _image_update_cb, this); +} + +static Eina_Bool +animator(void *data , double pos) +{ + LottieView *view = static_cast(data); + + view->seek(pos); + if (pos == 1.0) { + view->mAnimator = NULL; + view->finished(); + return EINA_FALSE; + } + return EINA_TRUE; +} + +LottieView::LottieView(Evas *evas, Strategy s) { + mPalying = false; + mReverse = false; + mRepeatCount = 0; + mRepeatMode = LottieView::RepeatMode::Restart; + mLoop = false; + mSpeed = 1; + + switch (s) { + case Strategy::renderCpp: { + mRenderDelegate = std::make_unique(evas); + break; + } + case Strategy::renderCppAsync: { + mRenderDelegate = std::make_unique(evas); + break; + } + case Strategy::renderC: { + mRenderDelegate = std::make_unique(evas); + break; + } + case Strategy::renderCAsync: { + mRenderDelegate = std::make_unique(evas); + break; + } + case Strategy::eflVg: { + mRenderDelegate = std::make_unique(evas); + break; + } + default: + mRenderDelegate = std::make_unique(evas); + break; + } +} + +LottieView::~LottieView() +{ + if (mAnimator) ecore_animator_del(mAnimator); +} + +Evas_Object *LottieView::getImage() { + return mRenderDelegate->renderObject(); +} + +void LottieView::show() +{ + mRenderDelegate->show(); + seek(0); +} + +void LottieView::hide() +{ + mRenderDelegate->hide(); +} + +void LottieView::seek(float pos) +{ + if (!mRenderDelegate) return; + + + mPos = mapProgress(pos); + + // check if the pos maps to the current frame + if (mCurFrame == mRenderDelegate->frameAtPos(mPos)) return; + + mCurFrame = mRenderDelegate->frameAtPos(mPos); + + mRenderDelegate->render(mCurFrame); +} + +float LottieView::getPos() +{ + return mPos; +} + +void LottieView::setFilePath(const char *filePath) +{ + mRenderDelegate->loadFromFile(filePath); +} + +void LottieView::loadFromData(const std::string &jsonData, const std::string &key, const std::string &resourcePath) +{ + mRenderDelegate->loadFromData(jsonData, key, resourcePath); +} + +void LottieView::setSize(int w, int h) +{ + mRenderDelegate->resize(w, h); +} + +void LottieView::setPos(int x, int y) +{ + mRenderDelegate->setPos(x, y); +} + +void LottieView::finished() +{ + restart(); +} + +void LottieView::loop(bool loop) +{ + mLoop = loop; +} + +void LottieView::setRepeatCount(int count) +{ + mRepeatCount = count; +} + +void LottieView::setRepeatMode(LottieView::RepeatMode mode) +{ + mRepeatMode = mode; +} + +void LottieView::play() +{ + if (mAnimator) ecore_animator_del(mAnimator); + mAnimator = ecore_animator_timeline_add(duration()/mSpeed, animator, this); + mReverse = false; + mCurCount = mRepeatCount; + mPalying = true; +} + +void LottieView::play(const std::string &marker) +{ + size_t totalframe = getTotalFrame(); + auto frame = mRenderDelegate->findFrameAtMarker(marker); + + setMinProgress((float)std::get<0>(frame) / (float)totalframe); + if (std::get<1>(frame) != 0) + setMaxProgress((float)std::get<1>(frame) / (float)totalframe); + + this->play(); +} + +void LottieView::play(const std::string &startmarker, const std::string endmarker) +{ + size_t totalframe = getTotalFrame(); + auto stframe = mRenderDelegate->findFrameAtMarker(startmarker); + auto edframe = mRenderDelegate->findFrameAtMarker(endmarker); + + setMinProgress((float)std::get<0>(stframe) / (float)totalframe); + if (std::get<0>(edframe) != 0) + setMaxProgress((float)std::get<0>(edframe) / (float)totalframe); + + this->play(); +} + +void LottieView::pause() +{ + +} + +void LottieView::stop() +{ + mPalying = false; + if (mAnimator) { + ecore_animator_del(mAnimator); + mAnimator = NULL; + } +} + +void LottieView::restart() +{ + mCurCount--; + if (mLoop || mRepeatCount) { + if (mRepeatMode == LottieView::RepeatMode::Reverse) + mReverse = !mReverse; + else + mReverse = false; + + if (mAnimator) ecore_animator_del(mAnimator); + mAnimator = ecore_animator_timeline_add(duration()/mSpeed, animator, this); + } +} diff --git a/external/rlottie/example/lottieview.h b/external/rlottie/example/lottieview.h new file mode 100644 index 000000000..ca8de7e17 --- /dev/null +++ b/external/rlottie/example/lottieview.h @@ -0,0 +1,458 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef LOTTIEVIEW_H +#define LOTTIEVIEW_H + +#ifndef EFL_BETA_API_SUPPORT +#define EFL_BETA_API_SUPPORT +#endif + +#ifndef EFL_EO_API_SUPPORT +#define EFL_EO_API_SUPPORT +#endif + +#include +#include +#include +#include +#include +#include "rlottie.h" +#include "rlottie_capi.h" +#include +#include +#include + +class RenderStrategy { +public: + virtual ~RenderStrategy() { + evas_object_del(renderObject()); + } + RenderStrategy(Evas_Object *obj, bool useImage = true):_renderObject(obj), _useImage(useImage){ + addCallback(); + } + virtual rlottie::Animation *player() {return nullptr;} + virtual void loadFromFile(const char *filePath) = 0; + virtual void loadFromData(const std::string &jsonData, const std::string &key, const std::string &resourcePath) = 0; + virtual size_t totalFrame() = 0; + virtual double frameRate() = 0; + virtual size_t frameAtPos(double pos) = 0; + virtual double duration() = 0; + void render(int frame) { + _renderCount++; + _redraw = renderRequest(frame); + if (_redraw && _useImage) + evas_object_image_pixels_dirty_set(renderObject(), EINA_TRUE); + } + void dataCb() { + if (_redraw && _useImage) { + evas_object_image_data_set(renderObject(), buffer()); + } + _redraw = false; + } + virtual void resize(int width, int height) = 0; + virtual void setPos(int x, int y) {evas_object_move(renderObject(), x, y);} + typedef std::tuple MarkerFrame; + virtual MarkerFrame findFrameAtMarker(const std::string &markerName) = 0; + void show() {evas_object_show(_renderObject);} + void hide() {evas_object_hide(_renderObject);} + void addCallback(); + Evas_Object* renderObject() const {return _renderObject;} + size_t renderCount() const {return _renderCount;} +protected: + virtual bool renderRequest(int) = 0; + virtual uint32_t* buffer() = 0; +private: + size_t _renderCount{0}; + bool _redraw{false}; + Evas_Object *_renderObject; + bool _useImage{true}; +}; + +class CppApiBase : public RenderStrategy { +public: + CppApiBase(Evas_Object *renderObject): RenderStrategy(renderObject) {} + rlottie::Animation *player() {return mPlayer.get();} + void loadFromFile(const char *filePath) + { + mPlayer = rlottie::Animation::loadFromFile(filePath); + + if (!mPlayer) { + printf("load failed file %s\n", filePath); + } + } + + void loadFromData(const std::string &jsonData, const std::string &key, const std::string &resourcePath) + { + mPlayer = rlottie::Animation::loadFromData(jsonData, key, resourcePath); + + if (!mPlayer) { + printf("load failed from data\n"); + } + } + + size_t totalFrame() { + return mPlayer->totalFrame(); + + } + double duration() { + return mPlayer->duration(); + } + + double frameRate() { + return mPlayer->frameRate(); + } + + size_t frameAtPos(double pos) { + return mPlayer->frameAtPos(pos); + } + + MarkerFrame findFrameAtMarker(const std::string &markerName) + { + auto markerList = mPlayer->markers(); + auto marker = std::find_if(markerList.begin(), markerList.end() + , [&markerName](const auto& e) { + return std::get<0>(e) == markerName; + }); + if (marker == markerList.end()) + return std::make_tuple(0, 0); + return std::make_tuple(std::get<1>(*marker), std::get<2>(*marker)); + } + +protected: + std::unique_ptr mPlayer; +}; + +class RlottieRenderStrategyCBase : public RenderStrategy { +public: + RlottieRenderStrategyCBase(Evas *evas):RenderStrategy(evas_object_image_filled_add(evas)) { + evas_object_image_colorspace_set(renderObject(), EVAS_COLORSPACE_ARGB8888); + evas_object_image_alpha_set(renderObject(), EINA_TRUE); + } + void resize(int width, int height) { + evas_object_resize(renderObject(), width, height); + evas_object_image_size_set(renderObject(), width, height); + } +}; + +class RlottieRenderStrategy : public CppApiBase { +public: + RlottieRenderStrategy(Evas *evas):CppApiBase(evas_object_image_filled_add(evas)) { + evas_object_image_colorspace_set(renderObject(), EVAS_COLORSPACE_ARGB8888); + evas_object_image_alpha_set(renderObject(), EINA_TRUE); + } + void resize(int width, int height) { + evas_object_resize(renderObject(), width, height); + evas_object_image_size_set(renderObject(), width, height); + } +}; + +class RlottieRenderStrategy_CPP : public RlottieRenderStrategy { +public: + RlottieRenderStrategy_CPP(Evas *evas):RlottieRenderStrategy(evas) {} + + bool renderRequest(int frame) { + int width , height; + Evas_Object *image = renderObject(); + evas_object_image_size_get(image, &width, &height); + mBuffer = (uint32_t *)evas_object_image_data_get(image, EINA_TRUE); + size_t bytesperline = evas_object_image_stride_get(image); + rlottie::Surface surface(mBuffer, width, height, bytesperline); + mPlayer->renderSync(frame, surface); + return true; + } + uint32_t* buffer() { + return mBuffer; + } + +private: + uint32_t * mBuffer; +}; + +class RlottieRenderStrategy_CPP_ASYNC : public RlottieRenderStrategy { +public: + RlottieRenderStrategy_CPP_ASYNC(Evas *evas):RlottieRenderStrategy(evas) {} + ~RlottieRenderStrategy_CPP_ASYNC() { + if (mRenderTask.valid()) + mRenderTask.get(); + } + bool renderRequest(int frame) { + //addCallback(); + if (mRenderTask.valid()) return true; + int width , height; + Evas_Object *image = renderObject(); + evas_object_image_size_get(image, &width, &height); + auto buffer = (uint32_t *)evas_object_image_data_get(image, EINA_TRUE); + size_t bytesperline = evas_object_image_stride_get(image); + rlottie::Surface surface(buffer, width, height, bytesperline); + mRenderTask = mPlayer->render(frame, surface); + return true; + } + + uint32_t* buffer() { + auto surface = mRenderTask.get(); + return surface.buffer(); + } +private: + std::future mRenderTask; +}; + + +class RlottieRenderStrategy_C : public RlottieRenderStrategyCBase { +public: + RlottieRenderStrategy_C(Evas *evas):RlottieRenderStrategyCBase(evas) {} + ~RlottieRenderStrategy_C() { + if (mPlayer) lottie_animation_destroy(mPlayer); + } + void loadFromFile(const char *filePath) + { + mPlayer = lottie_animation_from_file(filePath); + + if (!mPlayer) { + printf("load failed file %s\n", filePath); + } + } + + void loadFromData(const std::string &jsonData, const std::string &key, const std::string &resourcePath) + { + mPlayer = lottie_animation_from_data(jsonData.c_str(), key.c_str(), resourcePath.c_str()); + if (!mPlayer) { + printf("load failed from data\n"); + } + } + + size_t totalFrame() { + return lottie_animation_get_totalframe(mPlayer); + + } + + double frameRate() { + return lottie_animation_get_framerate(mPlayer); + } + + size_t frameAtPos(double pos) { + return lottie_animation_get_frame_at_pos(mPlayer, pos); + } + + double duration() { + return lottie_animation_get_duration(mPlayer); + } + MarkerFrame findFrameAtMarker(const std::string &markerName) + { + printf("Can't not [%s] marker, CAPI isn't implements yet\n", markerName.c_str()); + return std::make_tuple(0, 0); + } + + bool renderRequest(int frame) { + int width , height; + Evas_Object *image = renderObject(); + evas_object_image_size_get(image, &width, &height); + mBuffer = (uint32_t *)evas_object_image_data_get(image, EINA_TRUE); + size_t bytesperline = evas_object_image_stride_get(image); + lottie_animation_render(mPlayer, frame, mBuffer, width, height, bytesperline); + return true; + } + + uint32_t* buffer() { + return mBuffer; + } + +private: + uint32_t * mBuffer; +protected: + Lottie_Animation *mPlayer; +}; + +class RlottieRenderStrategy_C_ASYNC : public RlottieRenderStrategy_C { +public: + RlottieRenderStrategy_C_ASYNC(Evas *evas):RlottieRenderStrategy_C(evas) {} + ~RlottieRenderStrategy_C_ASYNC() { + if (mDirty) lottie_animation_render_flush(mPlayer); + } + bool renderRequest(int frame) { + if (mDirty) return true; + mDirty = true; + Evas_Object *image = renderObject(); + evas_object_image_size_get(image, &mWidth, &mHeight); + mBuffer = (uint32_t *)evas_object_image_data_get(image, EINA_TRUE); + size_t bytesperline = evas_object_image_stride_get(image); + lottie_animation_render_async(mPlayer, frame, mBuffer, mWidth, mHeight, bytesperline); + return true; + } + + uint32_t* buffer() { + lottie_animation_render_flush(mPlayer); + mDirty =false; + return mBuffer; + } + +private: + uint32_t * mBuffer; + int mWidth; + int mHeight; + bool mDirty{false}; +}; + +enum class Strategy { + renderCpp = 0, + renderCppAsync, + renderC, + renderCAsync, + eflVg +}; + +class LottieView +{ +public: + enum class RepeatMode { + Restart, + Reverse + }; + LottieView(Evas *evas, Strategy s = Strategy::renderCppAsync); + ~LottieView(); + rlottie::Animation *player(){return mRenderDelegate->player();} + Evas_Object *getImage(); + void setSize(int w, int h); + void setPos(int x, int y); + void setFilePath(const char *filePath); + void loadFromData(const std::string &jsonData, const std::string &key, const std::string &resourcePath=""); + void show(); + void hide(); + void loop(bool loop); + void setSpeed(float speed) { mSpeed = speed;} + void setRepeatCount(int count); + void setRepeatMode(LottieView::RepeatMode mode); + float getFrameRate() const { return mRenderDelegate->frameRate(); } + long getTotalFrame() const { return mRenderDelegate->totalFrame(); } +public: + void seek(float pos); + float getPos(); + void finished(); + void play(); + void play(const std::string &marker); + void play(const std::string &startmarker, const std::string endmarker); + void pause(); + void stop(); + void initializeBufferObject(Evas *evas); + void setMinProgress(float progress) + { + //clamp it to [0,1] + mMinProgress = progress; + } + void setMaxProgress(float progress) + { + //clamp it to [0,1] + mMaxprogress = progress; + } + + size_t renderCount() const { + return mRenderDelegate ? mRenderDelegate->renderCount() : 0; + } +private: + float mapProgress(float progress) { + //clamp it to the segment + progress = (mMinProgress + (mMaxprogress - mMinProgress) * progress); + + // currently playing and in reverse mode + if (mPalying && mReverse) + progress = mMaxprogress > mMinProgress ? + mMaxprogress - progress : mMinProgress - progress; + + + return progress; + } + float duration() const { + // usually we run the animation for mPlayer->duration() + // but now run animation for segmented duration. + return mRenderDelegate->duration() * fabs(mMaxprogress - mMinProgress); + } + void createVgNode(LOTNode *node, Efl_VG *root); + void update(const std::vector &); + void updateTree(const LOTLayerNode *); + void update(const LOTLayerNode *, Efl_VG *parent); + void restart(); +public: + int mRepeatCount; + LottieView::RepeatMode mRepeatMode; + size_t mCurFrame{UINT_MAX}; + Ecore_Animator *mAnimator{nullptr}; + bool mLoop; + int mCurCount; + bool mReverse; + bool mPalying; + float mSpeed; + float mPos; + //keep a segment of the animation default is [0, 1] + float mMinProgress{0}; + float mMaxprogress{1}; + std::unique_ptr mRenderDelegate; +}; + +#include +class EflVgRenderStrategy : public RenderStrategy { +public: + EflVgRenderStrategy(Evas *evas):RenderStrategy(evas_object_vg_add(evas), false) {} + + void loadFromFile(const char *filePath) { + evas_object_vg_file_set(renderObject(), filePath, NULL); + } + + void loadFromData(const std::string&, const std::string&, const std::string&) { + assert(false); + } + + size_t totalFrame() { + return evas_object_vg_animated_frame_count_get(renderObject()) - 1; + } + + double frameRate() { + return (double)totalFrame() / evas_object_vg_animated_frame_duration_get(renderObject(), 0, 0); + } + + size_t frameAtPos(double pos) { + return totalFrame() * pos; + } + + double duration() { + return evas_object_vg_animated_frame_duration_get(renderObject(), 0, 0); + } + + void resize(int width, int height) { + evas_object_resize(renderObject(), width, height); + } + + uint32_t *buffer() { + assert(false); + return nullptr; + } + + bool renderRequest(int frame) { + evas_object_vg_animated_frame_set(renderObject(), frame); + return false; + } + + MarkerFrame findFrameAtMarker(const std::string&) { + return std::make_tuple(0, 0); + } +}; + +#endif //LOTTIEVIEW_H diff --git a/external/rlottie/example/lottieviewer.cpp b/external/rlottie/example/lottieviewer.cpp new file mode 100644 index 000000000..8a09ea76f --- /dev/null +++ b/external/rlottie/example/lottieviewer.cpp @@ -0,0 +1,260 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include "lottieview.h" +#include "evasapp.h" +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +typedef struct _AppInfo AppInfo; +struct _AppInfo { + LottieView *view; + Evas_Object *layout; + Evas_Object *slider; + Evas_Object *button; + Ecore_Animator *animator; + Eina_Bool autoPlaying; +}; + +typedef struct _ItemData ItemData; +struct _ItemData { + int index; +}; + + +std::vector jsonFiles; +bool renderMode = true; + +static void +_layout_del_cb(void *data, Evas *, Evas_Object *, void *) +{ + AppInfo *info = (AppInfo *)data; + if (info->view) delete info->view; + ecore_animator_del(info->animator); + free(info); +} + +static void +_update_frame_info(AppInfo *info, double pos) +{ + int frameNo = pos * info->view->getTotalFrame(); + char buf[64]; + + sprintf(buf, "%d / %ld", frameNo, info->view->getTotalFrame()); + elm_object_part_text_set(info->layout, "text", buf); +} + +static void +_toggle_start_button(AppInfo *info) +{ + if (!info->autoPlaying) + { + info->autoPlaying = EINA_TRUE; + info->view->play(); + elm_object_text_set(info->button, "Stop"); + } + else + { + info->autoPlaying = EINA_FALSE; + info->view->stop(); + elm_object_text_set(info->button, "Start"); + } +} + +static Eina_Bool +_animator_cb(void *data) +{ + AppInfo *info = (AppInfo *)data; + + if (info && info->autoPlaying && info->view) + { + float pos = info->view->getPos(); + _update_frame_info(info, pos); + elm_slider_value_set(info->slider, (double)pos); + evas_object_image_pixels_dirty_set(info->view->getImage(), EINA_TRUE); + if (pos >= 1.0) + _toggle_start_button(info); + } + return ECORE_CALLBACK_RENEW; +} + +static void +_slider_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + double val = elm_slider_value_get(obj); + AppInfo *info = (AppInfo *)data; + + _update_frame_info(info, val); + + if (!info->autoPlaying) + { + info->view->seek(val); + evas_object_image_pixels_dirty_set(info->view->getImage(), EINA_TRUE); + } +} + +static void +_button_clicked_cb(void *data, Evas_Object */*obj*/, void */*event_info*/) +{ + AppInfo *info = (AppInfo *)data; + + _toggle_start_button(info); +} + +Evas_Object * +create_layout(Evas_Object *parent, const char *file) +{ + Evas_Object *layout, *slider, *image, *button; + Ecore_Animator *animator; + char buf[64]; + AppInfo *info = (AppInfo *)calloc(sizeof(AppInfo), 1); + + //LAYOUT + layout = elm_layout_add(parent); + evas_object_show(layout); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + std::string edjPath = DEMO_DIR; + edjPath +="layout.edj"; + + elm_layout_file_set(layout, edjPath.c_str(), "layout"); + + //LOTTIEVIEW + LottieView *view = new LottieView(evas_object_evas_get(layout), Strategy::renderCppAsync); + view->setFilePath(file); + view->setSize(500, 500); + + //IMAGE from LOTTIEVIEW + image = view->getImage(); + evas_object_show(image); + elm_object_part_content_set(layout, "lottie", image); + + //SLIDER + slider = elm_slider_add(layout); + elm_object_part_content_set(layout, "slider", slider); + elm_slider_step_set(slider, 0.01); + evas_object_smart_callback_add(slider, "changed", _slider_cb, (void *)info); + + button = elm_button_add(layout); + elm_object_text_set(button, "Start"); + elm_object_part_content_set(layout, "button", button); + evas_object_smart_callback_add(button, "clicked", _button_clicked_cb, (void *)info); + + animator = ecore_animator_add(_animator_cb, info); + + info->view = view; + info->layout = layout; + info->slider = slider; + info->button = button; + info->animator = animator; + evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, _layout_del_cb, (void *)info); + + sprintf(buf, "%d / %ld", 0, view->getTotalFrame()); + elm_object_part_text_set(layout, "text", buf); + + view->seek(0.0); + return layout; +} + +static void +_gl_selected_cb(void *data, Evas_Object */*obj*/, void *event_info) +{ + Evas_Object *nf = (Evas_Object *)data; + Elm_Object_Item *it = (Elm_Object_Item *)event_info; + elm_genlist_item_selected_set(it, EINA_FALSE); + + Evas_Object *layout = create_layout(nf, jsonFiles[elm_genlist_item_index_get(it) - 1].c_str()); + elm_naviframe_item_push(nf, NULL, NULL, NULL, layout, NULL); +} + +static char * +_gl_text_get(void *data, Evas_Object */*obj*/, const char */*part*/) +{ + ItemData *id = (ItemData *) data; + const char *ptr = strrchr(jsonFiles[id->index].c_str(), '/'); + int len = int(ptr + 1 - jsonFiles[id->index].c_str()); // +1 to include '/' + return strdup(jsonFiles[id->index].substr(len).c_str()); +} + +static void +_gl_del(void */*data*/, Evas_Object */*obj*/) +{ +} + +EAPI_MAIN int +elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) +{ + Evas_Object *win, *nf, *genlist; + Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new(); + ItemData *itemData; + + + if (argc > 1) { + if (!strcmp(argv[1], "--disable-render")) + renderMode = false; + } + + //WIN + elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); + win = elm_win_util_standard_add("lottie", "LottieViewer"); + elm_win_autodel_set(win, EINA_TRUE); + evas_object_resize(win, 500, 700); + evas_object_show(win); + + //NAVIFRAME + nf = elm_naviframe_add(win); + evas_object_size_hint_weight_set(nf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, nf); + evas_object_show(nf); + + //GENLIST + genlist = elm_genlist_add(nf); + elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); + evas_object_smart_callback_add(genlist, "selected", _gl_selected_cb, nf); + + itc->item_style = "default"; + itc->func.text_get = _gl_text_get; + itc->func.del = _gl_del; + + jsonFiles = EvasApp::jsonFiles(DEMO_DIR); + + for (uint32_t i = 0; i < jsonFiles.size(); i++) { + itemData = (ItemData *)calloc(sizeof(ItemData), 1); + itemData->index = i; + elm_genlist_item_append(genlist, itc, (void *)itemData, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + } + + elm_naviframe_item_push(nf, "Lottie Viewer", NULL, NULL, genlist, NULL); + + elm_run(); + + return 0; +} +ELM_MAIN() diff --git a/external/rlottie/example/lottieviewtest.cpp b/external/rlottie/example/lottieviewtest.cpp new file mode 100644 index 000000000..402fcd27c --- /dev/null +++ b/external/rlottie/example/lottieviewtest.cpp @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "evasapp.h" +#include "lottieview.h" +#include +#include +#include +#include +using namespace std; + +static Eina_Bool onTestDone(void *data); +/* + * To check the frame rate with rendermode off run + * ECORE_EVAS_FPS_DEBUG=1 ./lottieviewTest --disable-render + * + * To check the frame rate with render backend + * ECORE_EVAS_FPS_DEBUG=1 ./lottieviewTest + * + */ + +class LottieViewTest +{ +public: + LottieViewTest(EvasApp *app, Strategy st, double timeout) { + mStartTime = std::chrono::high_resolution_clock::now(); + mStrategy = st; + mApp = app; + + if (timeout > 0) { + ecore_timer_add(timeout, onTestDone, mApp); + } + // work around for 60fps + ecore_animator_frametime_set(1.0f/120.0f); + } + + void show(int numberOfImage) { + auto resource = EvasApp::jsonFiles(std::string(DEMO_DIR)); + + if (resource.empty()) return; + + int count = numberOfImage; + int colums = (int) ceil(sqrt(count)); + int offset = 3; + int vw = (mApp->width() - (offset * colums))/colums; + int vh = vw; + int posx = offset; + int posy = offset; + int resourceSize = resource.size(); + for (int i = 0 ; i < numberOfImage; i++) { + int index = i % resourceSize; + std::unique_ptr view(new LottieView(mApp->evas(), mStrategy)); + view->setFilePath(resource[index].c_str()); + view->setPos(posx, posy); + view->setSize(vw, vh); + view->show(); + view->play(); + view->loop(true); + //view->setRepeatMode(LottieView::RepeatMode::Reverse); + posx += vw+offset; + if ((mApp->width() - posx) < vw) { + posx = offset; + posy = posy + vh + offset; + } + mViews.push_back(std::move(view)); + } + } + + ~LottieViewTest() { + const auto frames = mViews.empty() ? 0 : mViews[0]->renderCount(); + const double secs = std::chrono::duration(std::chrono::high_resolution_clock::now() - mStartTime).count(); + std::cout<<"\tTestTime : "<< secs<<" sec \n\tTotalFrames : "<> mViews; + std::chrono::high_resolution_clock::time_point mStartTime; +}; + +static void +onExitCb(void *data, void */*extra*/) +{ + LottieViewTest *view = (LottieViewTest *)data; + delete view; +} + + +static Eina_Bool +onTestDone(void *data) +{ + EvasApp *app = (EvasApp *)data; + app->exit(); + return ECORE_CALLBACK_CANCEL; +} + +int +main(int argc, char **argv) +{ + Strategy st = Strategy::renderCppAsync; + auto index = 0; + double timeOut = 0; + size_t itemCount = 250; + while (index < argc) { + const char* option = argv[index]; + index++; + if (!strcmp(option,"--help") || !strcmp(option,"-h")) { + return LottieViewTest::help(); + } else if (!strcmp(option,"-s")) { + st = (index < argc) ? static_cast(atoi(argv[index])) : Strategy::renderCppAsync; + index++; + } else if (!strcmp(option,"-t")) { + timeOut = (index < argc) ? atoi(argv[index]) : 10; + index++; + } else if (!strcmp(option,"-c")) { + itemCount = (index < argc) ? atoi(argv[index]) : 10; + index++; + } + } + + EvasApp *app = new EvasApp(800, 800); + app->setup(); + + LottieViewTest *view = new LottieViewTest(app, st, timeOut); + view->show(itemCount); + + app->addExitCb(onExitCb, view); + + app->run(); + delete app; + return 0; +} + + + + + diff --git a/external/rlottie/example/meson.build b/external/rlottie/example/meson.build new file mode 100644 index 000000000..f5b864b4f --- /dev/null +++ b/external/rlottie/example/meson.build @@ -0,0 +1,74 @@ + +override_default = ['warning_level=2', 'werror=false'] + +common_source = files('evasapp.cpp') +common_source += files('lottieview.cpp') + +demo_sources = files('demo.cpp') +demo_sources += common_source + +executable('lottie2gif', + 'lottie2gif.cpp', + include_directories : inc, + override_options : override_default, + link_with : rlottie_lib) + +if host_machine.system() != 'windows' + executable('perf', + 'lottieperf.cpp', + include_directories : inc, + override_options : override_default, + link_with : rlottie_lib) +endif + +demo_dep = dependency('elementary', required : false, disabler : true) + +executable('demo', + demo_sources, + include_directories : inc, + override_options : override_default, + link_with : rlottie_lib, + dependencies : demo_dep) + + +demo_marker_sources = files('demo_marker.cpp') +demo_marker_sources += common_source + +executable('demo_marker', + demo_marker_sources, + include_directories : inc, + override_options : override_default, + link_with : rlottie_lib, + dependencies : demo_dep) + +lottieview_test_src = files('lottieviewtest.cpp') +lottieview_test_src += common_source + +executable('lottieviewTest', + lottieview_test_src, + include_directories : inc, + override_options : override_default, + link_with : rlottie_lib, + dependencies : demo_dep) + +uxsample_test_src = files('uxsampletest.cpp') +uxsample_test_src += common_source + +executable('uxsampleTest', + uxsample_test_src, + include_directories : inc, + override_options : override_default, + link_with : rlottie_lib, + dependencies : demo_dep) + +lottieviewer_sources = files('lottieviewer.cpp') +lottieviewer_sources += common_source + +executable('lottieviewer', + lottieviewer_sources, + include_directories : inc, + override_options : override_default, + link_with : rlottie_lib, + dependencies : demo_dep) + + diff --git a/external/rlottie/example/pathtest.cpp b/external/rlottie/example/pathtest.cpp new file mode 100644 index 000000000..be16f33b8 --- /dev/null +++ b/external/rlottie/example/pathtest.cpp @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "evasapp.h" +#include"vpath.h" +#include +using namespace std; + +EvasApp *APP; + +static void +_on_resize(Ecore_Evas *ee) +{ + int w, h; + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + APP->resize(w, h); +} + +class PathTest +{ +public: + PathTest(EvasApp *app) { + mApp = app; + mShape = evas_vg_shape_add(mApp->root()); + } + void setColor(int r, int g, int b, int a) { + evas_vg_node_color_set(mShape, r, g, b, a); + } + + void setStrokeColor(int r, int g, int b, int a) { + evas_vg_shape_stroke_color_set(mShape, r, g, b, a); + } + + void setStrokeWidth(int w) { + evas_vg_shape_stroke_width_set(mShape, w); + } + + void setPath(const VPath &path) { + Efl_VG *shape = mShape; + evas_vg_shape_reset(shape); + const std::vector &elm = path.elements(); + const std::vector &pts = path.points(); + int i=0; + for (auto e : elm) { + switch(e) { + case VPath::Element::MoveTo: + { + VPointF p = pts[i++]; + evas_vg_shape_append_move_to(shape, p.x(), p.y()); + break; + } + case VPath::Element::LineTo: + { + VPointF p = pts[i++]; + evas_vg_shape_append_line_to(shape, p.x(), p.y()); + break; + } + case VPath::Element::CubicTo: + { + VPointF p = pts[i++]; + VPointF p1 = pts[i++]; + VPointF p2 = pts[i++]; + evas_vg_shape_append_cubic_to(shape, p.x(), p.y(), p1.x(), p1.y(), p2.x(), p2.y()); + break; + } + case VPath::Element::Close: + { + evas_vg_shape_append_close(shape); + break; + } + } + } + } + +public: + EvasApp *mApp; + Efl_VG *mShape; +}; + +int +main(void) +{ + APP = new EvasApp(800, 800); + ecore_evas_callback_resize_set(APP->mEcoreEvas, _on_resize); + APP->setup(); + + VPath path; + path.addRoundRect(VRectF(100, 100, 200, 200), 20, 20, VPath::Direction::CCW); + path.addCircle(50, 50, 20, VPath::Direction::CCW); + + path.addOval(VRectF(300, 100, 100, 50), VPath::Direction::CCW); + + path.addPolystar(15.0, 106.0, 34.0, 0.0, 150, + 150, 231.0, 88.0, VPath::Direction::CW); + + PathTest test(APP); + test.setPath(path); + test.setColor(255, 0, 0, 255); + test.setStrokeColor(200, 200, 0, 200); + test.setStrokeWidth(5); + + + APP->run(); + delete APP; + return 0; +} + + + + + diff --git a/external/rlottie/example/resource/1643-exploding-star.json b/external/rlottie/example/resource/1643-exploding-star.json new file mode 100644 index 000000000..badb8fd3f --- /dev/null +++ b/external/rlottie/example/resource/1643-exploding-star.json @@ -0,0 +1 @@ +{"v":"4.12.0","fr":29.9700012207031,"ip":0,"op":60.0000024438501,"w":400,"h":400,"nm":"explodingStar","ddd":0,"assets":[{"id":"comp_29","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-19,"ix":10},"p":{"a":0,"k":[200.25,201.125,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[51.125,51.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200,202.875,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[37.875,37.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[190,205.25,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[30.875,30.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[208.25,210.75,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[30.875,30.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204.125,189.875,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[30.875,30.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[196.875,194.625,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[30.875,30.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[177.625,190.875,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[14.125,14.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.875,213.5,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[14.125,14.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[194.5,211.375,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[12.5,12.5,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.5,190.25,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[15,15,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[210.625,183.375,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[13.875,13.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[192.875,174.125,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[13.875,13.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[181,196,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[13.875,13.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.25,215.625,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[13.875,13.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204.625,199.375,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[13.875,13.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[188.125,226.375,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[178.5,217.75,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.5,199.875,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[180.25,184.5,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[193.25,190.625,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.875,189.875,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[216,211.25,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[208.375,217,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[235.375,189.75,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[229.5,186,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204,167.375,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[196.375,167.75,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[11.125,11.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":36,"ix":10},"p":{"a":0,"k":[200.125,156.75,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[7.5,7.75,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[225.375,235,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[7.5,7.75,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[175,234.375,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[7.5,7.75,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":17,"ix":10},"p":{"a":0,"k":[159.375,186.875,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[7.5,7.75,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":21,"ix":10},"p":{"a":0,"k":[240.875,186.75,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[7.5,7.75,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[231.75,195.125,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[10.125,10.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[222,212.5,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[10.125,10.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[205.75,223.75,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[10.125,10.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[181.875,216.25,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[10.125,10.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.125,190.25,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[10.125,10.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.25,159.75,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[10.125,10.125,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[182,207,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[15.375,15.375,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[208.5,209.75,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[15.375,15.375,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[218.125,186.625,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[15.375,15.375,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[191.75,180.875,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[15.375,15.375,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[195.125,220.5,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[15.375,15.375,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[179.875,227.375,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[15.375,15.375,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[220.125,198.25,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[21,21,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[218.375,224.875,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[19,19,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204.5,177.875,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[19,19,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":48,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[192.75,202.5,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[19.875,19.875,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":0,"nm":"ronddiminue","refId":"comp_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[171.375,190.625,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[19,19,100],"ix":6}},"ao":0,"w":200,"h":200,"ip":0,"op":150.000006109625,"st":0,"bm":0}]},{"id":"comp_30","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Calque de forme 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.571,"y":0.93},"o":{"x":0.167,"y":0.167},"n":"0p571_0p93_0p167_0p167","t":0,"s":[100,100,0],"e":[100,69.985,0],"to":[0,-0.17251245677471,0],"ti":[0,9.91851329803467,0]},{"i":{"x":0.731,"y":1},"o":{"x":0.343,"y":0.505},"n":"0p731_1_0p343_0p505","t":3,"s":[100,69.985,0],"e":[100,40,0],"to":[0,-9.9765567779541,0],"ti":[0,0.03740864992142,0]},{"t":30.0000012219251}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.57,0.57,0.57],"y":[0.896,0.896,6.336]},"o":{"x":[0.194,0.194,0.194],"y":[0.038,0.038,-1.924]},"n":["0p57_0p896_0p194_0p038","0p57_0p896_0p194_0p038","0p57_6p336_0p194_-1p924"],"t":0,"s":[100,100,100],"e":[48.393,48.393,100]},{"i":{"x":[0.704,0.704,0.704],"y":[1,1,1]},"o":{"x":[0.328,0.328,0.328],"y":[0.781,0.781,-36.631]},"n":["0p704_1_0p328_0p781","0p704_1_0p328_0p781","0p704_1_0p328_-36p631"],"t":3,"s":[48.393,48.393,100],"e":[1,1,100]},{"t":30.0000012219251}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[21.4,0],[0,-21.4],[-21.4,0],[0,21.4]],"o":[[-21.4,0],[0,21.4],[21.4,0],[0,-21.4]],"v":[[0,-38.748],[-38.748,0],[0,38.748],[38.748,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.435294121504,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[130,130],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":31.0000012626559,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Calque de forme 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.57,"y":0.93},"o":{"x":0.167,"y":0.167},"n":"0p57_0p93_0p167_0p167","t":0,"s":[100,100,0],"e":[130.638,100,0],"to":[3.4184627532959,0,0],"ti":[-8.54281234741211,0,0]},{"i":{"x":0.704,"y":1},"o":{"x":0.328,"y":0.504},"n":"0p704_1_0p328_0p504","t":3,"s":[130.638,100,0],"e":[160,100,0],"to":[8.11733150482178,0,0],"ti":[-3.24820375442505,0,0]},{"t":30.0000012219251}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.57,0.57,0.57],"y":[0.896,0.896,6.336]},"o":{"x":[0.194,0.194,0.194],"y":[0.038,0.038,-1.924]},"n":["0p57_0p896_0p194_0p038","0p57_0p896_0p194_0p038","0p57_6p336_0p194_-1p924"],"t":0,"s":[100,100,100],"e":[48.393,48.393,100]},{"i":{"x":[0.704,0.704,0.704],"y":[1,1,1]},"o":{"x":[0.328,0.328,0.328],"y":[0.781,0.781,-36.631]},"n":["0p704_1_0p328_0p781","0p704_1_0p328_0p781","0p704_1_0p328_-36p631"],"t":3,"s":[48.393,48.393,100],"e":[1,1,100]},{"t":30.0000012219251}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[21.4,0],[0,-21.4],[-21.4,0],[0,21.4]],"o":[[-21.4,0],[0,21.4],[21.4,0],[0,-21.4]],"v":[[0,-38.748],[-38.748,0],[0,38.748],[38.748,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.435294121504,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[130,130],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":31.0000012626559,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Calque de forme 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.57,"y":0.93},"o":{"x":0.167,"y":0.167},"n":"0p57_0p93_0p167_0p167","t":0,"s":[100,100,0],"e":[100,130.638,0],"to":[0,3.4184627532959,0],"ti":[0,-8.54281234741211,0]},{"i":{"x":0.704,"y":1},"o":{"x":0.328,"y":0.504},"n":"0p704_1_0p328_0p504","t":3,"s":[100,130.638,0],"e":[100,160,0],"to":[0,8.11733150482178,0],"ti":[0,-3.24820375442505,0]},{"t":30.0000012219251}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.57,0.57,0.57],"y":[0.896,0.896,6.336]},"o":{"x":[0.194,0.194,0.194],"y":[0.038,0.038,-1.924]},"n":["0p57_0p896_0p194_0p038","0p57_0p896_0p194_0p038","0p57_6p336_0p194_-1p924"],"t":0,"s":[100,100,100],"e":[48.393,48.393,100]},{"i":{"x":[0.704,0.704,0.704],"y":[1,1,1]},"o":{"x":[0.328,0.328,0.328],"y":[0.781,0.781,-36.631]},"n":["0p704_1_0p328_0p781","0p704_1_0p328_0p781","0p704_1_0p328_-36p631"],"t":3,"s":[48.393,48.393,100],"e":[1,1,100]},{"t":30.0000012219251}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[21.4,0],[0,-21.4],[-21.4,0],[0,21.4]],"o":[[-21.4,0],[0,21.4],[21.4,0],[0,-21.4]],"v":[[0,-38.748],[-38.748,0],[0,38.748],[38.748,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.435294121504,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[130,130],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":31.0000012626559,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Calque de forme 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.57,"y":0.93},"o":{"x":0.167,"y":0.167},"n":"0p57_0p93_0p167_0p167","t":0,"s":[100,100,0],"e":[69.355,100,0],"to":[-3.41931676864624,0,0],"ti":[8.54487895965576,0,0]},{"i":{"x":0.704,"y":1},"o":{"x":0.328,"y":0.504},"n":"0p704_1_0p328_0p504","t":3,"s":[69.355,100,0],"e":[40,100,0],"to":[-8.11513328552246,0,0],"ti":[3.24734997749329,0,0]},{"t":30.0000012219251}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.57,0.57,0.57],"y":[0.896,0.896,6.336]},"o":{"x":[0.194,0.194,0.194],"y":[0.038,0.038,-1.924]},"n":["0p57_0p896_0p194_0p038","0p57_0p896_0p194_0p038","0p57_6p336_0p194_-1p924"],"t":0,"s":[100,100,100],"e":[48.393,48.393,100]},{"i":{"x":[0.704,0.704,0.704],"y":[1,1,1]},"o":{"x":[0.328,0.328,0.328],"y":[0.781,0.781,-36.631]},"n":["0p704_1_0p328_0p781","0p704_1_0p328_0p781","0p704_1_0p328_-36p631"],"t":3,"s":[48.393,48.393,100],"e":[1,1,100]},{"t":30.0000012219251}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[21.4,0],[0,-21.4],[-21.4,0],[0,21.4]],"o":[[-21.4,0],[0,21.4],[21.4,0],[0,-21.4]],"v":[[0,-38.748],[-38.748,0],[0,38.748],[38.748,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.435294121504,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[130,130],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":31.0000012626559,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Précomp. 2","td":1,"refId":"comp_29","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,50]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_50"],"t":30,"s":[100,100,100],"e":[400,400,100]},{"t":60.0000024438501}],"ix":6}},"ao":0,"w":400,"h":400,"ip":30.0000012219251,"op":180.00000733155,"st":30.0000012219251,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Calque de forme 1","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[207.859,-205.404],[-207.859,-205.404],[-207.859,205.404],[207.859,205.404]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.709803938866,0.219607844949,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.141,0.404],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":30.0000012219251,"op":180.00000733155,"st":30.0000012219251,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Précomp. 2","refId":"comp_29","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,49.858]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_49p858"],"t":30,"s":[118,118,100],"e":[400,400,100]},{"t":60.0000024438501}],"ix":6}},"ao":0,"w":400,"h":400,"ip":30.0000012219251,"op":180.00000733155,"st":30.0000012219251,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"etoile Silhouettes","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200,196,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.001,-77.997],[27.025,-28.974],[81.99,-18.413],[43.729,22.447],[50.673,77.997],[0.001,54.223],[-50.673,77.997],[-43.728,22.447],[-81.99,-18.413],[-27.025,-28.974]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.709999952129,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.499,399.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Groupe 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.154,0],[1.391,1.009],[-0.362,2.892],[0,0],[0,0],[-0.9,2.772],[-2.862,0.55],[0,0],[0,0],[-2.915,0],[-1.406,-2.553],[0,0],[0,0],[-0.9,-2.771],[1.993,-2.128],[0,0],[0,0],[2.36,-1.713],[1.66,0],[1.082,0.508],[0,0],[0,0]],"o":[[-1.661,0],[-2.358,-1.713],[0,0],[0,0],[-1.991,-2.127],[0.901,-2.771],[0,0],[0,0],[1.407,-2.553],[2.914,0],[0,0],[0,0],[2.862,0.55],[0.902,2.772],[0,0],[0,0],[0.363,2.89],[-1.39,1.009],[-1.156,0],[0,0],[0,0],[-1.082,0.508]],"v":[[-50.674,85.996],[-55.377,84.47],[-58.613,77.005],[-52.133,25.178],[-87.83,-12.944],[-89.599,-20.884],[-83.5,-26.268],[-32.221,-36.121],[-7.007,-81.858],[-0.001,-85.996],[7.005,-81.858],[32.218,-36.121],[83.499,-26.268],[89.597,-20.884],[87.829,-12.943],[52.13,25.178],[58.611,77.005],[55.374,84.47],[50.673,85.996],[47.275,85.238],[-0.001,63.06],[-47.278,85.238]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.435000002384,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.501,399.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Groupe 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":32.0000013033867,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/1667-firework.json b/external/rlottie/example/resource/1667-firework.json new file mode 100644 index 000000000..76eb2eade --- /dev/null +++ b/external/rlottie/example/resource/1667-firework.json @@ -0,0 +1 @@ +{"v":"4.12.0","fr":29.9700012207031,"ip":0,"op":78.0000031770051,"w":800,"h":800,"nm":"feudartifis","ddd":0,"assets":[{"id":"comp_36","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"dota2x6","refId":"comp_37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[520,520,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":34.0000013848484,"op":80.0000032584668,"st":34.0000013848484,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"dota2x6","refId":"comp_37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[300,520,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":34.0000013848484,"op":80.0000032584668,"st":34.0000013848484,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"dota2x6","refId":"comp_37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[280,300,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":33.0000013441176,"op":80.0000032584668,"st":33.0000013441176,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"dota2x6","refId":"comp_37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[480,280,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":32.0000013033867,"op":80.0000032584668,"st":32.0000013033867,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"dota2x6","refId":"comp_37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":31.0000012626559,"op":80.0000032584668,"st":31.0000012626559,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"dota2x6","refId":"comp_37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[134,134,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":0,"op":80.0000032584668,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"dota1x6","refId":"comp_39","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":30,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":1.00000004073083,"op":80.0000032584668,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"dota1x6","refId":"comp_39","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":0,"op":80.0000032584668,"st":0,"bm":0}]},{"id":"comp_37","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"dota2","refId":"comp_38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":300,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"dota2","refId":"comp_38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":240,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":1.00000004073083,"op":151.000006150356,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"dota2","refId":"comp_38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"dota2","refId":"comp_38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":120,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"dota2","refId":"comp_38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":60,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":1.00000004073083,"op":151.000006150356,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"dota2","refId":"comp_38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":0,"op":150.000006109625,"st":0,"bm":0}]},{"id":"comp_38","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Calque de forme 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[200,200,0],"e":[200,100,0],"to":[0,-16.6666660308838,0],"ti":[0,16.6666660308838,0]},{"t":30.0000012219251}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[98,98,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[27.556,0],[0,-27.556],[-27.556,0],[0,27.556]],"o":[[-27.556,0],[0,27.556],[27.556,0],[0,-27.556]],"v":[[0,-49.895],[-49.895,0],[0,49.895],[49.895,0]],"c":true}],"e":[{"i":[[27.556,0],[0,-27.556],[-27.556,0],[0,27.556]],"o":[[-27.556,0],[0,27.556],[27.556,0],[0,-27.556]],"v":[[0,-304.996],[-49.895,-255.102],[0,49.895],[49.895,-255.102]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[{"i":[[27.556,0],[0,-27.556],[-27.556,0],[0,27.556]],"o":[[-27.556,0],[0,27.556],[27.556,0],[0,-27.556]],"v":[[0,-304.996],[-49.895,-255.102],[0,49.895],[49.895,-255.102]],"c":true}],"e":[{"i":[[27.556,0],[0,-27.556],[-27.556,0],[0,27.556]],"o":[[-27.556,0],[0,27.556],[27.556,0],[0,-27.556]],"v":[[0,-49.895],[-49.895,0],[0,49.895],[49.895,0]],"c":true}]},{"t":30.0000012219251}],"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.435294121504,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[10,10],"e":[0,0]},{"t":30.0000012219251}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30.0000012219251,"st":0,"bm":0}]},{"id":"comp_39","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"dota1","refId":"comp_40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":300,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":1.00000004073083,"op":151.000006150356,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"dota1","refId":"comp_40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":240,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"dota1","refId":"comp_40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":1.00000004073083,"op":151.000006150356,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"dota1","refId":"comp_40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":120,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"dota1","refId":"comp_40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":60,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":1.00000004073083,"op":151.000006150356,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"dota1","refId":"comp_40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":0,"op":150.000006109625,"st":0,"bm":0}]},{"id":"comp_40","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"dota2x6","refId":"comp_37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":30,"s":[0],"e":[20]},{"t":60.0000024438501}],"ix":10},"p":{"a":0,"k":[400,110,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":30.0000012219251,"op":180.00000733155,"st":30.0000012219251,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Calque de forme 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[400,400,0],"e":[400,110,0],"to":[0,-48.3333320617676,0],"ti":[0,48.3333320617676,0]},{"t":30.0000012219251}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[98,98,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[27.556,0],[0,-27.556],[-27.556,0],[0,27.556]],"o":[[-27.556,0],[0,27.556],[27.556,0],[0,-27.556]],"v":[[0,-49.895],[-49.895,0],[0,49.895],[49.895,0]],"c":true}],"e":[{"i":[[27.556,0],[0,-27.556],[-27.556,0],[0,27.556]],"o":[[-27.556,0],[0,27.556],[27.556,0],[0,-27.556]],"v":[[0,-407.037],[-49.895,-357.143],[0,49.895],[49.895,-357.143]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":6,"s":[{"i":[[27.556,0],[0,-27.556],[-27.556,0],[0,27.556]],"o":[[-27.556,0],[0,27.556],[27.556,0],[0,-27.556]],"v":[[0,-407.037],[-49.895,-357.143],[0,49.895],[49.895,-357.143]],"c":true}],"e":[{"i":[[27.556,0],[0,-27.556],[-27.556,0],[0,27.556]],"o":[[-27.556,0],[0,27.556],[27.556,0],[0,-27.556]],"v":[[0,-49.895],[-49.895,0],[0,49.895],[49.895,0]],"c":true}]},{"t":30.0000012219251}],"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.709803938866,0.219607844949,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[10,10],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30.0000012219251,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"feudar Précomp. 5","refId":"comp_36","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,-0.498]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_-0p498"],"t":0,"s":[52,52,100],"e":[100,100,100]},{"t":31.0000012626559}],"ix":6}},"ao":0,"w":800,"h":800,"ip":0,"op":120.0000048877,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/27746-joypixels-partying-face-emoji-animation.json b/external/rlottie/example/resource/27746-joypixels-partying-face-emoji-animation.json new file mode 100644 index 000000000..d204e53bd --- /dev/null +++ b/external/rlottie/example/resource/27746-joypixels-partying-face-emoji-animation.json @@ -0,0 +1 @@ +{"v":"5.5.7","fr":24,"ip":0,"op":48,"w":1024,"h":1024,"nm":"party_face","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Face_CTRL","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[0,-286,0],"to":[0.092,3.435,0],"ti":[0.627,6.25,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":4,"s":[0.552,-265.39,0],"to":[-0.627,-6.25,0],"ti":[0.092,3.435,0]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":18,"s":[-3.763,-323.5,0],"to":[-0.092,-3.435,0],"ti":[-0.627,-6.25,0]},{"t":26,"s":[0,-286,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Controller","np":13,"mn":"Pseudo/DUIK controller","ix":1,"en":1,"ef":[{"ty":6,"nm":"Icon","mn":"Pseudo/DUIK controller-0001","ix":1,"v":0},{"ty":2,"nm":"Color","mn":"Pseudo/DUIK controller-0002","ix":2,"v":{"a":0,"k":[0.92549020052,0.0941176489,0.0941176489,1],"ix":2}},{"ty":3,"nm":"Position","mn":"Pseudo/DUIK controller-0003","ix":3,"v":{"a":0,"k":[0,0],"ix":3}},{"ty":0,"nm":"Size","mn":"Pseudo/DUIK controller-0004","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Orientation","mn":"Pseudo/DUIK controller-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Opacity","mn":"Pseudo/DUIK controller-0006","ix":6,"v":{"a":0,"k":100,"ix":6}},{"ty":6,"nm":"","mn":"Pseudo/DUIK controller-0007","ix":7,"v":0},{"ty":6,"nm":"Anchor","mn":"Pseudo/DUIK controller-0008","ix":8,"v":0},{"ty":2,"nm":"Color","mn":"Pseudo/DUIK controller-0009","ix":9,"v":{"a":0,"k":[0,0,0,1],"ix":9}},{"ty":0,"nm":"Size","mn":"Pseudo/DUIK controller-0010","ix":10,"v":{"a":0,"k":100,"ix":10}},{"ty":6,"nm":"","mn":"Pseudo/DUIK controller-0011","ix":11,"v":0}]}],"ip":0,"op":48,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Head_CTRL","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"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":18,"s":[4]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[-1]},{"t":48,"s":[0]}],"ix":10},"p":{"a":0,"k":[517.24,850.396,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":4,"s":[103,97,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":18,"s":[97,103,100]},{"i":{"x":[0,0.051,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":26,"s":[103,97,100]},{"t":48,"s":[100,100,100]}],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Controller","np":13,"mn":"Pseudo/DUIK controller","ix":1,"en":1,"ef":[{"ty":6,"nm":"Icon","mn":"Pseudo/DUIK controller-0001","ix":1,"v":0},{"ty":2,"nm":"Color","mn":"Pseudo/DUIK controller-0002","ix":2,"v":{"a":0,"k":[0.92549020052,0.0941176489,0.0941176489,1],"ix":2}},{"ty":3,"nm":"Position","mn":"Pseudo/DUIK controller-0003","ix":3,"v":{"a":0,"k":[0,0],"ix":3}},{"ty":0,"nm":"Size","mn":"Pseudo/DUIK controller-0004","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Orientation","mn":"Pseudo/DUIK controller-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Opacity","mn":"Pseudo/DUIK controller-0006","ix":6,"v":{"a":0,"k":100,"ix":6}},{"ty":6,"nm":"","mn":"Pseudo/DUIK controller-0007","ix":7,"v":0},{"ty":6,"nm":"Anchor","mn":"Pseudo/DUIK controller-0008","ix":8,"v":0},{"ty":2,"nm":"Color","mn":"Pseudo/DUIK controller-0009","ix":9,"v":{"a":0,"k":[0,0,0,1],"ix":9}},{"ty":0,"nm":"Size","mn":"Pseudo/DUIK controller-0010","ix":10,"v":{"a":0,"k":100,"ix":10}},{"ty":6,"nm":"","mn":"Pseudo/DUIK controller-0011","ix":11,"v":0}]}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"HatStripe","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[4.631,7.095]],"o":[[3.818,5.331],[0,0],[0,0],[0,0]],"v":[[9.463,-26.924],[16.938,-19.632],[17.467,-14.328],[6.154,-25.348]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":9,"k":{"a":0,"k":[0.176,0.91,0.302,0.533,0.267,0.9,0.292,0.524,0.359,0.89,0.282,0.514,0.474,0.863,0.251,0.484,0.588,0.835,0.22,0.455,0.715,0.792,0.171,0.406,0.842,0.749,0.122,0.357,0.921,0.714,0.082,0.32,1,0.678,0.043,0.282],"ix":9}},"s":{"a":0,"k":[10.307,-30.112],"ix":5},"e":{"a":0,"k":[20.858,-18.045],"ix":6},"t":1,"nm":"Stripegradienta","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HatStripe","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"HatStripe1","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[3.103,1.552],[5.313,8.386]],"o":[[6.646,8.84],[0,0],[-0.334,0.638],[0,0],[0,0]],"v":[[2.846,-23.771],[17.989,-9.078],[18.085,-8.12],[12.218,-9.919],[-0.462,-22.195]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":9,"k":{"a":0,"k":[0.176,0.91,0.302,0.533,0.267,0.9,0.292,0.524,0.359,0.89,0.282,0.514,0.474,0.863,0.251,0.484,0.588,0.835,0.22,0.455,0.715,0.792,0.171,0.406,0.842,0.749,0.122,0.357,0.921,0.714,0.082,0.32,1,0.678,0.043,0.282],"ix":9}},"s":{"a":0,"k":[10.307,-30.112],"ix":5},"e":{"a":0,"k":[23.622,-15.706],"ix":6},"t":1,"nm":"Stripegradientb","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HatStripe1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"HatStripe2","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.385,2.573]],"o":[[0,0],[0,0],[0,0]],"v":[[15.906,-29.994],[16.41,-24.931],[12.732,-28.48]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":9,"k":{"a":0,"k":[0.176,0.91,0.302,0.533,0.267,0.9,0.292,0.524,0.359,0.89,0.282,0.514,0.474,0.863,0.251,0.484,0.588,0.835,0.22,0.455,0.715,0.792,0.171,0.406,0.842,0.749,0.122,0.357,0.921,0.714,0.082,0.32,1,0.678,0.043,0.282],"ix":9}},"s":{"a":0,"k":[10.307,-30.112],"ix":5},"e":{"a":0,"k":[18.414,-21.744],"ix":6},"t":1,"nm":"Stripegradientc","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HatStripe2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Hat","parent":21,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":2,"ix":10},"p":{"a":0,"k":[-230.213,207.025,0],"ix":2},"a":{"a":0,"k":[9.386,-12.953,0],"ix":1},"s":{"a":0,"k":[115.214,105.229,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.048,1.975]],"o":[[0,0],[-1.045,1.979],[0,0]],"v":[[15.906,-29.995],[18.084,-8.12],[-3.275,-20.853]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":11,"k":{"a":0,"k":[0.115,0.459,0.839,1,0.198,0.451,0.831,0.992,0.282,0.443,0.824,0.984,0.372,0.418,0.798,0.959,0.461,0.392,0.773,0.933,0.555,0.349,0.731,0.894,0.648,0.306,0.69,0.855,0.743,0.247,0.633,0.798,0.838,0.188,0.576,0.741,0.919,0.125,0.516,0.68,1,0.063,0.455,0.62],"ix":9}},"s":{"a":0,"k":[-3.016,-26.005],"ix":5},"e":{"a":0,"k":[13.937,-7.054],"ix":6},"t":1,"nm":"Hatgradient","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hat","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Confetti11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-74,"ix":10},"p":{"a":0,"k":[135.111,329.463,0],"ix":2},"a":{"a":0,"k":[16.786,25.814,0],"ix":1},"s":{"a":0,"k":[1381.996,1381.996,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.175,-0.325],[-0.525,0.4],[-0.469,-0.175],[-0.66,1.01],[-1.025,-0.249],[-0.1,-0.725]],"o":[[0,0],[1.298,0.359],[0.525,-0.4],[1.275,0.475],[0.85,-1.3],[1.75,0.425],[0.269,1.224]],"v":[[8.8,29.45],[12.675,25.025],[14.575,27.625],[16.675,23.625],[19.2,26.775],[22.125,23.425],[24.325,26.75]],"c":false},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19,"s":[100]},{"t":40,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":36,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Raccorder les tracés 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.650980392157,0.901960844152,0.223529426724,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"green","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Forme 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":42,"st":15,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Confetti10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[873,522.696,0],"ix":2},"a":{"a":0,"k":[25.11,6.511,0],"ix":1},"s":{"a":0,"k":[1381.996,1381.996,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.116,1.363],[0.225,0.8],[-0.35,1.125],[-0.05,0.35],[0.3,0.675],[-0.425,0.475],[1.275,0]],"o":[[1.6,-0.7],[-0.225,-0.8],[0.35,-1.125],[0.05,-0.35],[-0.3,-0.675],[0.425,-0.475],[-1.275,0]],"v":[[24.6,13.6],[28.575,11.15],[24.25,8.375],[26.2,5.125],[21.65,4.95],[24.55,0.35],[22.6,-0.675]],"c":false},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":4,"s":[100]},{"t":25,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"t":21,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Raccorder les tracés 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.909803981407,0.109803929048,0.152941176471,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Contour 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Forme 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 10","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":3,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[0]},{"t":19,"s":[149]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[194.929,367.888,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":20,"s":[194.929,647.888,0]}],"ix":2},"a":{"a":0,"k":[-270.075,219.877,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.567],[0,3.569]],"o":[[0,3.569],[0,-3.567]],"v":[[-267.399,219.876],[-272.751,219.876]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":20,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[100]},{"t":40,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[0]},{"t":39,"s":[-238]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[870.597,174.763,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":40,"s":[870.597,454.763,0]}],"ix":2},"a":{"a":0,"k":[-216.535,204.574,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.568],[0,3.569]],"o":[[0,3.569],[0,-3.568]],"v":[[-213.859,204.573],[-219.211,204.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.65098041296,0.901960790157,0.223529413342,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":21,"op":40,"st":20,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":27,"s":[100]},{"t":29,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[0]},{"t":28,"s":[-49]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[790.435,694.021,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":29,"s":[790.435,974.021,0]}],"ix":2},"a":{"a":0,"k":[-222.887,245.719,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-219.674,244.714],[-221.718,249.449],[-226.101,246.73],[-224.056,241.989]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.901960790157,0.207843139768,0.870588243008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":10,"op":29,"st":9,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Layer 7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":17,"s":[100]},{"t":19,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":18,"s":[35]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[423.853,174.764,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":19,"s":[423.853,454.764,0]}],"ix":2},"a":{"a":0,"k":[-251.935,204.574,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-249.335,205.209],[-252.875,208.444],[-254.535,203.943],[-250.991,200.703]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":19,"st":-1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":29,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[100]},{"t":48,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":29,"s":[0]},{"t":47,"s":[-115]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[194.479,190.293,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":48,"s":[194.479,470.293,0]}],"ix":2},"a":{"a":0,"k":[-270.111,205.804,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-266.857,204.993],[-269.272,209.164],[-273.364,206.613],[-270.943,202.444]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803926945,0.109803922474,0.152941182256,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":29,"op":48,"st":28,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Layer 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[100]},{"t":35,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[0]},{"t":34,"s":[29]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[781.475,542.889,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":35,"s":[781.475,822.889,0]}],"ix":2},"a":{"a":0,"k":[-223.597,233.744,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-221.09,235.787],[-226.105,236.067],[-223.558,231.42]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.65098041296,0.901960790157,0.223529413342,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":16,"op":35,"st":15,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[100]},{"t":24,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[0]},{"t":23,"s":[-78]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[289.011,51.812,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":24,"s":[289.011,331.812,0]}],"ix":2},"a":{"a":0,"k":[-262.62,194.831,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-259.364,196.93],[-265.876,198.066],[-263.263,191.596]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.901960790157,0.207843139768,0.870588243008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":24,"st":4,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Mouth","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1.1,101.975,0],"ix":2},"a":{"a":0,"k":[-244.448,237.823,0],"ix":1},"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":[1262,1262,100]},{"i":{"x":[0,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":4,"s":[1299.86,1262,100]},{"i":{"x":[0,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":18,"s":[1173.66,1262,100]},{"i":{"x":[0,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[1375.58,1262,100]},{"t":41,"s":[1262,1262,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.296,0.419],[1.111,0.249],[-1.006,1.535],[-1.835,3.294],[0.211,-1.095],[-0.41,-1.177],[-1.08,-0.51],[-1.838,-3.404],[1.972,0.537]],"o":[[0.925,-1.314],[-0.841,-0.189],[1.132,-1.727],[0.507,3.837],[-0.222,1.148],[0.296,0.85],[1.012,0.479],[-3.419,-1.598],[-2.499,-0.679]],"v":[[-250.347,241.811],[-251.329,238.417],[-251.856,235.16],[-245.719,230.892],[-249.789,236.446],[-248.06,239.115],[-247.821,242.498],[-241.295,244.546],[-248.775,244.67]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.086274512112,0.149019613862,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Wistle 2","parent":18,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":0.97},"o":{"x":0.167,"y":0.167},"t":19,"s":[-269.13,249.354,0],"to":[-2.391,0.777,0],"ti":[0,0,0]},{"i":{"x":0,"y":0.97},"o":{"x":0.333,"y":0},"t":30,"s":[-283.475,254.013,0],"to":[0,0,0],"ti":[-2.391,0.777,0]},{"t":41,"s":[-269.13,249.354,0]}],"ix":2},"a":{"a":0,"k":[-269.13,249.354,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.085,0.085,0.582],"y":[0.783,0.783,0.263]},"o":{"x":[0.24,0.24,0.18],"y":[0.147,0.147,0.294]},"t":19,"s":[100,100,100]},{"i":{"x":[0.727,0.727,0.667],"y":[1.024,1.024,1.031]},"o":{"x":[0.261,0.261,0.347],"y":[0.023,0.023,0.153]},"t":23,"s":[40.348,40.348,100]},{"i":{"x":[0.727,0.727,0.667],"y":[1,1,1]},"o":{"x":[0.223,0.223,0.333],"y":[5.639,5.639,-0.218]},"t":24,"s":[0,0,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.223,0.223,0.333],"y":[0,0,0]},"t":31,"s":[0,0,100]},{"i":{"x":[0.017,0.017,0.667],"y":[0.994,0.994,1]},"o":{"x":[0.401,0.401,0.333],"y":[0,0,0]},"t":32,"s":[36,36,100]},{"t":41,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.349,0.972],[-1.201,-1.202]],"o":[[-1.227,-0.883],[0.93,0.929]],"v":[[-270.784,247.568],[-268.41,245.193]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.160784319043,0.443137258291,0.141176477075,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.157,1.555],[-1.921,-1.922]],"o":[[-1.961,-1.409],[1.489,1.489]],"v":[[-271.896,248.061],[-268.099,244.26]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.321568638086,0.57647061348,0.1254902035,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.901,2.09],[-2.585,-2.583]],"o":[[-2.641,-1.899],[2.003,2.003]],"v":[[-273.022,248.652],[-267.914,243.537]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.478431373835,0.709803938866,0.113725490868,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.166,2.21],[2.033,2.806],[-1.296,-3.921],[-4.548,2.075],[-0.061,0.344]],"o":[[0,0],[-1.537,-2.119],[0.744,2.244],[-0.055,-0.962],[0.194,-1.095]],"v":[[-267.526,244.127],[-271.283,238.679],[-276.315,243.625],[-268.976,249.505],[-269.135,245.865]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.65098041296,0.901960790157,0.223529413342,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Wistle","parent":16,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[2]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":18,"s":[4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[-16]},{"t":41,"s":[0]}],"ix":10},"p":{"a":0,"k":[-249.704,239.133,0],"ix":2},"a":{"a":0,"k":[-249.704,239.133,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-0.27,0.114],[0.522,-0.162],[0,0],[0,0]],"o":[[0.486,-0.201],[-0.349,0.109],[0,0],[-0.001,0.002]],"v":[[-265.416,247.908],[-266.411,243.219],[-269.252,244.125],[-269.065,249.449]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[-0.27,0.114],[0.522,-0.162],[0,0],[0,0]],"o":[[0.486,-0.201],[-0.349,0.109],[0,0],[-0.001,0.002]],"v":[[-265.416,247.908],[-266.411,243.219],[-284.873,249.317],[-284.686,254.641]],"c":true}]},{"t":41,"s":[{"i":[[-0.27,0.114],[0.522,-0.162],[0,0],[0,0]],"o":[[0.486,-0.201],[-0.349,0.109],[0,0],[-0.001,0.002]],"v":[[-265.416,247.908],[-266.411,243.219],[-269.252,244.125],[-269.065,249.449]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.478431373835,0.709803938866,0.113725490868,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.441,0.168],[0,0],[0.451,-0.16]],"o":[[0.445,-0.171],[0,0],[-0.462,0.162],[0,0]],"v":[[-261.763,246.347],[-259.498,245.484],[-263.556,242.416],[-265.742,243.183]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":50,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.717,0.273],[0,0],[0.794,-0.273]],"o":[[0.799,-0.307],[0,0],[-0.764,0.265],[0,0]],"v":[[-256.817,244.455],[-254.535,243.584],[-258.435,240.64],[-260.781,241.459]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":50,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.271,-0.967],[-0.407,0.148],[1.258,0.945],[0.803,-0.283]],"o":[[0.988,-0.374],[-1.257,-0.951],[-0.66,0.232],[1.279,0.953]],"v":[[-251.812,242.543],[-249.663,241.733],[-253.431,238.887],[-255.637,239.659]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":50,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.988,0.359],[0.92,-0.309],[6.715,-2.361]],"o":[[6.81,-2.612],[0.59,-0.214],[-1.177,0.393],[0,0]],"v":[[-266.05,248.005],[-249.399,241.634],[-250.421,237.841],[-267.078,243.648]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.839215695858,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Blush","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":27,"s":[97]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":34,"s":[100]},{"t":46,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1.651,60.272,0],"ix":2},"a":{"a":0,"k":[-244.666,234.519,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.559,0],[0,-5.557],[5.557,0],[0,5.561]],"o":[[5.557,0],[0,5.561],[-5.559,0],[0,-5.557]],"v":[[-229.286,224.454],[-219.221,234.519],[-229.286,244.583],[-239.35,234.519]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.1,1,0.388,0.6,0.73,1,0.649,0.351,1,1,0.91,0.102,0.1,1,0.73,0.5,1,0],"ix":9}},"s":{"a":0,"k":[-230,234],"ix":5},"e":{"a":0,"k":[-219.936,234],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"B1G","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":60,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.559,0],[0,-5.557],[5.557,0],[0,5.561]],"o":[[5.557,0],[0,5.561],[-5.559,0],[0,-5.557]],"v":[[-260.046,224.454],[-249.983,234.519],[-260.046,244.583],[-270.111,234.519]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.1,1,0.388,0.6,0.73,1,0.649,0.351,1,1,0.91,0.102,0.1,1,0.73,0.5,1,0],"ix":9}},"s":{"a":0,"k":[-261,234],"ix":5},"e":{"a":0,"k":[-250.936,234],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"B2G","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":60,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Eyes","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-52.396,0],"ix":2},"a":{"a":0,"k":[-244.535,225.591,0],"ix":1},"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":[1262,1262,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":5,"s":[1262,1009.6,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":18,"s":[1262,1388.2,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":26,"s":[1262,1009.6,100]},{"t":44,"s":[1262,1262,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.605,0.779],[3.988,-5.154],[-0.258,0.756],[-3.385,-9.963]],"o":[[-3.989,-5.154],[-0.605,0.779],[3.385,-9.963],[0.258,0.756]],"v":[[-248.954,223.965],[-259.716,223.965],[-261.3,223.408],[-247.37,223.408]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.086274512112,0.149019613862,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.605,0.779],[3.989,-5.154],[-0.258,0.756],[-3.387,-9.963]],"o":[[-3.989,-5.154],[-0.605,0.779],[3.385,-9.963],[0.256,0.756]],"v":[[-229.355,223.965],[-240.117,223.965],[-241.7,223.408],[-227.769,223.408]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.086274512112,0.149019613862,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Face","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-338.396,0],"ix":2},"a":{"a":0,"k":[-244.535,225.591,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.464,0],[0,-15.467],[-15.464,0],[-0.001,15.459]],"o":[[-15.464,0],[0,15.459],[15.464,0],[0.001,-15.467]],"v":[[-244.535,197.592],[-272.535,225.592],[-244.535,253.59],[-216.535,225.592]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,0.584,0,0.4,1,0.747,0.051,1,1,0.91,0.102],"ix":9}},"s":{"a":0,"k":[-231.07,253],"ix":5},"e":{"a":0,"k":[-231.07,198.011],"ix":6},"t":1,"nm":"party_face_grad","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"party_face","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[512,512,0],"ix":2},"a":{"a":0,"k":[512,512,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1024,"h":1024,"ip":0,"op":48,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/29056-nepenthe-illustration.json b/external/rlottie/example/resource/29056-nepenthe-illustration.json new file mode 100644 index 000000000..aa567847c --- /dev/null +++ b/external/rlottie/example/resource/29056-nepenthe-illustration.json @@ -0,0 +1 @@ +{"v":"5.6.2","fr":25,"ip":0,"op":100,"w":1432,"h":1016,"nm":"render me","ddd":0,"assets":[{"id":"image_0","w":844,"h":223,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0wAAADfBAMAAAA3qU70AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAYUExURUdwTA8RJg8RJg8RJg4RJg8RJg4RJg8RJuvyX9EAAAAHdFJOUwDoyaNRdybLpWG9AAAH4ElEQVR42u2dSXPbRhBGCWLxVYtlXGV5wZWyneBKKY5wpeXEvJKKFV4FLZ6/HwLcQBcxAGlQ6K68V+VSqWjw0J9m+uueBZ0OPCvBLTFQQDfsEQT5OOYVQdAg0wNBUDDpmXREFBTIZEhO8nGNeUkUFMgU3hMFDTKZAWGQL9NrLLkGmU7wehpkOojMW+IgXqYfY5PiycXL9OiF5r5PJISXt4+dG0PHSLxMT53OOTWuBpm8yKRMe7JlyuY7N6R4UiBT54LsJJr5epMX/lqN6zFnPodMnfjXOnvdY0L5HDIltZed/t5cfjGcnkOmSW2ZzjZOeliQZ5HJqS3T4cYkhqN/FpnGdWUKDjfqEZnjuXzBiKjucdKrORq8zf8xMSb97Sr4/uHQmKPfieu+LERdQ+5vtoSOKUDHvXmZnvKfw7o7IkpkcosymXsmvv3IFD/VfMDdLJO3JpM5ILJ7kSmsa6i7JXVwaMLicCKyDcv0mNuz2jv+nRKZYvNuplOa/8Ce70Mmv3ZLb1IiU2Ieg69nZx+vsj6uMaeEtlmZfuRT2UndB4YlMjkmLRRRs2+FpujOAjqu/ddf1qPtmtUHU3f+RGiblSk3ZV9q55KopF3hF+ydz+aKhnFnwf1e+4GwRKagKE2ITHuRqTZe6UGbsJCcYmRqFn9LmdxSExcXBEyQqUn+HXlbytQtlSkpJKe5zYdGuAzTT+F2FY5TKpNTSE4Ohrw5xnnPYDuZXpTKNJ0O05/8IzTiHnK2kykpfWBq9ZaVk0sXoimCaBeZhuUPhKvk5HLuuilu5s3s7QIal8s0/ehx6R/7BLjRwbSlTFG5TJPV+oXPAcSG6O62IB6W65p941wdn/WmhhjOZXoaNSWTv0p0Hp3XZvDC3ZbDbbPk6tt8jks1O+dtmes9m0zRssD18OPNkCxS03aP+YXiaNN3Lr4OB9EMC593t31JXCqTwx6IhvEXc95ge5n6tg+Z7faRmu53eK5UpmD70QlWJjtue3RWtdHmmRQnvoeqKe00KlOywzdCtYPYOpO8mD5kFxEP0bhM26+E22VyDVeSNkpsdttBPLFOawGb/PdQ3Z7u9FxqH6RsgmiQbHrape82tMuUcBajWc4P3+04Wd7bjSBWr1FGnT3I5G/f14D9OESrPQxpFwmR6anic6xe+4QVMk2wekJkssrQ5ciMBEzFOUAPqydEpruq5EWU2qZ6RSmh+do+XmXTrosjbx+/UqYgrBhusH9q7HaIkUmDTBwUbJ9u1bqf9/ErPXIRMg1sKuWrwsSpZao2O5wbrpUSItPInrpYZ28f+46V+Q4LPIQAmVJ78YtMArBvLFpcy8udEC1j35IS73bKA5omti0nLW/lPSVQ7WJdY+/ueBgHmia0JZ7lAcQRgWpdprvK1MQqe9tYa9fF2XheEdQyns0fLM+J9ghUu1g3tbqkJiG4tpaeQ2oSQtfWhJiQmoTg2JoQCVWTAIJRPmAeqvw4c16L3L4+PPqWDZgfVTK9J1itcZ3XRO9iW9k0u8OAF3a2qNLq/Vm9Cpm4vqM1bgqvOetXOD1q29aK2sLb6FKrW8dAtGjxosJgerC3KFLceFuMi2/gtG1z+GLMW8LVEl5Y90WpwcdPhKstvvA+W3WDiW0OQrlYfzs0FkEm64OJ7eEy6a6rZNtADu2RrKvEZQIq5jw6diLxf5rzWJlVkZoweiIZr6vEqVoVDoI5TybDdZ+HHdcgE4NJw6R3z2ASyqQoU494CMUpqHRCOBSUtw9MeXJZNovu+wRDfn2LSqKZbys6ZsaTjXcepkffiIP8AUUIABhi/3suB8RAARcviYECHBY1NNClEasBnysoVTi9kH0RGojYZaSBIUvuGhhzzFaH1eN0hgqrx5E0DVaPW+GVWD0suQJikpMGJiQnJVaPd2GosHokJwVwEleJ1aOtp4CEq3E04FDgasDlkkMNBHgILR6iTxQ0eIgeUdDgIbB68vE5266CEEeugRhHriM50XxVUeBSOGkocEMuFVWg0jmFkwKyu6/vCIP0sim72oN1dvl2nNGkYDAZZFKSmdgDJp6IW/7VzHmUt8Lpcsu/BhIchBo7ThNCOrNrK4mDbAJexkBxCw3hUtzq8ePEQYNMVE0qZDogDhpyE2GQjmc4NqOjvE0HREE8F4bbXhUQ/EUMhHPdJwYaXB5ZSQExHVcVgwknrmEwsYdSAT5NIg0MuQNHx2Di9RjyuWBzngK8kB0QOgYTb8fQMJjSCJkUDKZHRpOGzNQLsRDCGWc2j+PrwgnCbGWdNzcJx8l3E0XsopRNlG90HdIhF013dlSGm4pkE89kcrk7VDLZDsqHaW6aGgmSk1yGWWYKH1gXlF3a5gfXh2n2SiD2+Mvh++fPV1drpa15NfUPg+k/LqUUQ34eMH3zbfF7dti2P3V7p8gkibGZ8Wa0NBBP2Y+DTsKkJ8sxzM5BDxa/9jKZXk3HFRZCVMthrlN/1s7LqlrHHLicuRWEWXEy60Ac5OL1YpNS3gohmF+jMrtAqp/NedmGItekt2EmGwghKQynLB/l55mG5uSCwSSJfwoyPfm5G+/4YTqIZpYChEx7UUGny9ntAuPpkPqTsSR21ovzHclBdDwiLsK4NUWypUD3iJEke9bLbYNHVhLITdFEEA6xw+nDSqYe4RCLd73sFxEMyVwymFTwxznXjavg8/XZ6/eEQT6UtFr5D6mcUCRF5QD7AAAAAElFTkSuQmCC","e":1},{"id":"image_1","w":36,"h":13,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAANCAMAAAD2fTxUAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAA5UExURUdwTA4RJhIRJA8RJg8RJQ8RJg8RJQ4QJg8RJg8RJg4RJQ4RJgwSKQ8QJg8QJg8RJQ4PJg4QJQ8RJpKCIt8AAAASdFJOUwDBFG6w44P58dZcPQmXzE0wJAZ+YQ8AAAC4SURBVBjTfZFZkkQhCARRQBB37n/Y0X7Ra3RP/qkZpYUAL0wkIpuzYClzRfgkjkYq7nLDLzSn+jRS170n2olaQkMzXJiPq+kKrOksNTer7+nViN15nIf0rTAV+MYk9Rxh5a2kCL9IIgjJhX4rAEUlQXOxfxzLzgWGutL4bkQM+zSdS/VUIyzxtVytywKfSnglBr1NTjn3cCBmljNZF27r8bjW+T7lB7LjR/34FmwUej70bGWs+Oz8B+VrCdHHB0D2AAAAAElFTkSuQmCC","e":1},{"id":"image_2","w":38,"h":15,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAPCAMAAAC/QE1iAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAADYUExURUdwTOvVyTcwRmY/Xu3UxuvTx0MvSsWtrenWz+3MwdJgdxASJ1Q4WlQ5W+3ZyBgaLe7MwlQ4W+zUyLRYc+3Qxfdtg0k2UlM4WvOXnkMtTO/FvexpfxUWKu7Vx1M6WppOa1I6W8FZcVU6Wu7LwO/KwPGtrbBXcrVYc/SUnfSDkFQ5WvKdo/GYofZsg+7Wx/San7GdnfOMlzImQIVmes5heS0rPPZthPV6jPKTnCIiNPC2s+7Vx/Ztgw8RJlQ5W+3Vx/V6jPSHlEctQZJNYBoYLt9keuJ1iPCurdtUA0wAAAA8dFJOUwAOB0BXGREBBin4+MahH+Gg/TlshZ+A3/4b8v7xbXKFK/Vg1LSTxZ/i7lWub7+/bw3dkxlU9t/tUK3j6zDmLiEAAADySURBVCjPfZFpc4IwEIYJEDZJORW5var2vu8jjQLa/v9/1OgoU4bC8/V9Zmd3X0WpExuGCiooXQBBgZM5TpYdbcmcd9IQcE9fXN6/pmVZrL8OPD8YfyREdfdsxStSxjZ8My2LYm1q6sGyh7Oc/0s6ZsKayFUBAPvLmyveRj80Y1AIEJ33rlstPjgWI1VOsynvQmqWXA+oPuiwXrTQ07YH4OFth9YPRbC7lVD3vM05ZUJYxv611I9W9fxJuxifTJlnBpO4ejDBupv8RFGeV/a38ExrpBlQ70pW5c8/l5Ik+ZjN3+jjHexo9k4QwtS2EVEa4S9p/0iWl45G+wAAAABJRU5ErkJggg==","e":1},{"id":"image_3","w":32,"h":14,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAMAAAB5Au6AAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAA8UExURUdwTA4QJg4RJRATJhUYJA4QJg0QJw4QJg4QJg8RJg4RJQ8QJg4QJg4QJQ4RJg8QJg8PJQ4QJQ8QJw4QJYXtO7MAAAAUdFJOUwDq1iYExQ7++/WisG5af98XRzGWxB0/VwAAALpJREFUGNN1UQkOhDAIpAcUeqL+/69L1V3NRidNSBiOYQpwIcZIFCM8IdTinXCa4OF8aXovXIpLLDvPM/KMIzc6aMoy89bW2xqUSMPSPVuLz2FOR5FR6kqnjEMO1YyOk1+BMPkWbzqv3dpHylDFB3hDF4SNt1eeUDaobHueoSheIaK4/ETP23G/ooiVBAXV7+S1bWabuHKqq2hGyMCJYX7uEIf1Gmcdp887xA3My/9vtNrt5dL7Eoh++Q+sPAedm4QFhAAAAABJRU5ErkJggg==","e":1},{"id":"image_4","w":31,"h":13,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAANCAMAAABmbkWbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAABUUExURUdwTPdtgvRsg5BKZfdtg/dtg2U+YIhQcd5kffVtg/Ztg/dtg/Zsg/lug+9rgvpuhvZsg/dug/Ztg1M4XPdtg1M5Wp1QbalSb81gebFXcYJIZfZtg1kboDwAAAAbdFJOUwBOehL83SAGI/KPsdEtQwtrpF5Vve6PPupvcpay1VYAAACJSURBVBjTfZBJEsMgDAQFCElgDMZLNv3/n3HFFZcTL62buuYwA7CBSyncmt608A+zo2zr6AOiKoZUe1mdEyGbUJf7gsl8NN3HoEdg6GbtxOsZXoDpXKsacPVC+wz0Os83c0+anlcaeJgexzouAzANt30/bEzZrGdTwLW1b2x2u4UldzFGa+Tn+wa3eBn5y3jsiQAAAABJRU5ErkJggg==","e":1},{"id":"image_5","w":61,"h":126,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAB+BAMAAABlgAQYAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAtUExURUdwTA8RJg8RJg8RJg8RJg8RJg8RJg8RJg8RJQ8RJg8RJhAQJQ8QJg8RJg8RJmhr0ooAAAAOdFJOUwD469vJYh2nM3qSDLlJeVnYAAAAA8VJREFUSMeFl8trE1EUhydNZ9K8xBaVijjUhbooDK0bQWSIrixKaDeCRUJbN2IxdCkuQtKNK0sUcRkCIlXQUK0KdiGl1o1KsKsKQjGTPkxtz9/gZDpzH2eON1ndmW/uzHn+7ommsV9RU/8+dODxDlzv8AHjaocXjHTgYxNqXsqo+eK+mqcaC+oAwIyS95h/1B+wd9S81qDuJn8Gq1mgIpC8zxwAKgLGeZYhc4DiJnurTUXIgNFgWdkkeTVYvuWPCmHhYYvBUJinudU95lGK801ZwgAdDvMSafwg9v9l6yiRwjRss3UCzhD286gY1i4Rvy1+UW+G82O2+MVaIxwhS+BRIoXiN+PQH+ZCWRlWuMbsPeGi7qj5WjiFUtC7wwZKPA4nMJdikhS9pWJWcCaUvBQyoCDxbsBFXHDkcsEprDli3yftTSV3u7SI21bis7jGKg3JoxQMKrlutpRcwwbmkEE11ASYTyEDMccGYp5GBuYABcRuqnlFNjCHZW0KliWOewoZuIFLGkVwLiSrcgTzoIUqpiglFJ8LJS55XsW59iflGhySrvDJmICTEseiJXdxN9GSYkhiUMZcinBcstYX6hmxI0I8JTqgh0VTFx0geFJ0gDo3xZ6muOhAguBTgs2xsP1SBoj4SToahfChIQp9F3XsCqJH8hqXsQhQwwpPGsmjvAc+UWNBjPdAnuJpk2VozlEPIxtNivMM5fYozlWhRo41k8xBm9zfxRwEcn8MgmEFdjWlg9AipymWQXOb5CyDwvwgOehnsAcGSB7xj3KdGmo8B6t+qQUH1sMFuccyqLzHUY8N+s8F5f1K1iE/AFFW3quyzti7fnkF5f1Z5oU934/gxiWZ+7oacf7D3xzo2iTjw0VUwp5hJdYp9ijKsOf4GCsPq4wC4AW2wsrDknUgeZC4SosNWigRWS/xFTae4fE35wWots8G2d8yn/PeXOhngyDiec+y7DE2SG4hkfI8swaZ5qCDu8uRrE6Ag/+QeONlhsULNbreHjzSrHxSgIWk1818vFFmOoiEbsl0E5JgZ10UZCFdstvP32pyHTXF0euODWel9Lj7hQQ8sOBIu4EKxwXOE3DTgr62YUb2NAvHTj3oROOZCb3fvFWdCXVkKOfz9ysAvVf8JDuBf5FM/oCvD0MjwNpjaPplF1mOtLnxxAKAeyyINjhfpqfd1aGZqGufvmICNF/wVltyH+8b+eXqcPXdhfnL7l7YuS7Gad3dAI2LLx+VF9sQ+l6jeeHjKe/2uao2vnrt69OwVCzcvjH//fld4u/nP8Ofk6OBRJ9aAAAAAElFTkSuQmCC","e":1},{"id":"image_6","w":57,"h":128,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAACABAMAAABD89wLAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAkUExURUdwTFQ5W1Q5W1Q5W1Q5W1M5W1Q5W1M5W1M5W1Q5W1Q4W1Q5W/5++OAAAAALdFJOUwDz4cqsE1Mlco03ILuDPQAAAkdJREFUSMd9lytPA0EUhZfCUqCG4EgNISSQYGoIoqaQYMA0QWKWQAIJZh2iBoMBAwKFWSxrOn3wun8OWrbzPHNWtftlds59zJmZJEnS29tuEn3eROQ+Snf/qBxH4PwEioqM7k2pDDC9+adSQNquaAfSZkU/Ia0gnjidUeE0A7Su6SqlffrlEdMsilLpkmyI3MUKOH02AD2hoh81HZIK4lzWhOVyyVBQ4hWhooWKNvSHJkuRtsO5fKUTl4Z+hPRM2MQNYbm0aUZpi9JQ9JywbNl0RKmw8ovk2DhiDeCM7VM6pnTUZfPKkUcXHDqKtyyIKXVpJ9qUwD68sWNKv2OugzzPGyvRZTZ9nhy67NENkklfdE2Y6IYw0T51M136dA8b1sy3cmh2aL2E9AM7A7DEkCpKhdOC0halqywiezUB+gW9DpTpRlhIDUAzSu+QTwJaAvpEVY3jveGscUQVy4YVMKQZybNVQ0j7pL4W3UX0O9zpUEiQCqcZm1f7A6Z9FpFeaZgOKRVOM0pbTHO1lhYxrDbMWoR+RZvdVKkXoYNoO5uAddM10XrQbdVGIemXfud+Osl4RbL0dI9Ilv4TiO/YtETtof/0QLbqcarsEpWgAcw+dw68xXz5ElCz618F8xbWLli0Q83mhFR4qVQvtuPkruitB6dfc+egte71a7cW2pmh9iY+yH23skJXs7V9apVzVmplLPbZ5Bxd0S50o1TR7bsHrGalcnLSWtv0r5VLE+Hbfz8O1U4S3nTSAxlOZKbv8DZbv75Cr38Byi0OavxExwwAAAAASUVORK5CYII=","e":1},{"id":"image_7","w":70,"h":134,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAACGBAMAAACS6OEDAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAwUExURUdwTA8RJg4RJg8RJg0RJg8RJg8RJg4RJg8QJg4RJQ8QJg8RJg8RJg8RJg4PJQ8RJiCZW5cAAAAPdFJOUwDw+eMOt8gyith1oUdfH8UAvmwAAAQ3SURBVFjDjVhNaBNBFE6btI1Jmoq29iC6WpUqWjcWj0JiLV5bPSgepAVvKqQVBRGkBcGDHqIHQS+mJ+vJ9KKIHlKKoB4k1ZsgpPUoCN2NTfPT+NzdZHdn3rzpuJcmm2935nvve99700AAXysB5RW7qMasPlJjslNKSJehfk3bphpT3KfGaLNKSDeow9P2H1ueWVdj0g3/czxFY/Re/3PHIp0smPS/FBZITBDmvM+j6UkSkzd86iGgwwllJnOwnYKEoMKGM0FGWd/rf4kCuZ8O9vY2WKBpMRltAzK9RYMRYTssU5gJhlagB6g4hzSGVmDMpJQdgX5WAiYlpU5g66ZgUHk/zTEpknLLmOwucyVSYFXuiSoBiWt1TgNVktYxabB8Wlyi0+skLS6JWQqTM7kEJesULZ5sskZli395tkGV+hD/ngolwl4lJoj0S2FuMPXnYA5vXX8OpkFkC8WeWCsMFRUm1M4JlX7PCCCD10XMT1RycagrhEpjski+BAYJ1caURepD2IuqCqHanlYShTqObVh4Tw5l1Oouwn4mjBUlJinewWvFxMin8Z6jMCisXlJSD2UwZlU02mJJoC6YaMEQqKfEGlBSt5ZPqagHziB/DovUrX4xt4XruvfGt7KnVv3zzxVNsX9EUR/ME54eQf00W6b8aI0XPOEjXfrfLZyZfDBKtmDN4C1snMAkTZbItCB4R4jANsKcQbXFPPfkBNmqilzwydYQmGGNNq7VKMwIy7Yb25zL9qAqPFbiN+VK8aJfYdVDhcdyKYbKkkkPlxpT8ZmSZFhkVDUhGS6LjNVSXag5Ac35exukMQzfMJykMVG/MoL0AGcHqNdfdkEy/+uehAvmsmRSTm7ILdUlk92gwol6kddDdOl8Pu3aSwxqMozHOCoLoa2gcdeLEjJMxP2pjVaYEyDteGvmpBXWLJiaW0byE1e+7PqT/EjyrST3J0/prdlXq8kxnc3BIKT/kWPCTQV18bZHko/QRw2OPLbqSEokj48RnRxmyWymgm8vX1fE5tOO2lR+Rcx8D2p3ySkx82MmqoVFfnqxfWrMQJLhi0Szp8SZMqpNfixz7LRYQx2SV1zGXiazgToiX/wFW10ZPqVLsIEM2FJppowGhgZaO2FL9RQXQrOM1LFmS77Ess0afGvtsk06psNuzkuRizgngbMaXGemuaMoQHknD5/BmPVfvUefRN3Hycl5qC57qXiuJaigRpJwaNHVwkK6Hx3Xm6PALR36FlvFkspxyfn9Rm8F9bsOu5Zbg9EIMwDfubQDvC52D+DAZSddqaAbxPinKzrAkVeeliwQ9M1bO0xFHUGF7r5+bCHWP7ILv9AAzKsdpUDs2ZeXDy+csACw/ymylF/D1l2jbHXgARPs68C1efGfEuesH+rWOcz6M7DzybsPpGffHx6w3P/2+7cPftyUlnd8lDoj/wPckt+R6cu6CwAAAABJRU5ErkJggg==","e":1},{"id":"image_8","w":65,"h":135,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAACHBAMAAAC7aCnfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAeUExURUdwTFQ5W1Q5W1Q5W1Q5W1Q5W1Q5W1Q6WlQ5W1Q5Wy9xE3kAAAAJdFJOUwDt1LJOjDEWbrBIp70AAAJSSURBVFjDpdi/b9pAFAdwDmOMNxSWeOsYb0idsqFmaL1lqSo2d2RDilSJrVOkbIZA0vffNohg7v2495WSG9FH5t6Pez4YDPT6sx7466G6+tp64I7e1tYho+oo6JAW3+i07pOPeAf0LyXCWdAiIZa9SO2kB7S1szK5CGrBNojmpmgiMTVFHYkObJTo1c3Xcb1YYghFCcUyFntLVOgZRQzMfORMzEHO6dmq3CYW9zAUWBWCVdmi9qGdJTIWCmow+zRsYFWWsLIs2A4Fa4oCihyKIRQlFCwdZj4aQllnCTMrx4BVfR6s1UGlELqRV0K0YKNEf/0TaR2oQgB9KCdSdH7dLFFCsYLiFgr6vMigaKCokRgTEhkUAYoGihqKComRBuIVZYQihlCAYmMIPgyfDHHw20cJI1gxHgzAx8OY0DNyS+xRwnjWAxQlFBsoGjOWhTN+Tuva7zBxe6xMEc+phOj8svA+TIiDXzg22vOEIL8sTJQfFwu3LCxldUp8Aem4DP8iKTqUjl4EKJLB9qVLixeUjv5QJdPRlz8Jzkd3BEWWFjsUyrnJHEHOoWXiyRFrkI7zXdkB74XxxA4K8g7cpZdzV3TWvUPVPxDaqrh31HqrYsqt9J1L3BeDPnZc7DMdDO/jLtftzttjOtaNGMRZrlSb5WJjtW6RmotbHW7ORWPULmMiWHMoi3c6NGfZ70hMzFa9fPlUXcpb8eKfyt6/lq8YWahZK99k8/iEzb6v9XVq0bfUbG3+InzuY7+x/xvZHkMr3h529cv+3+LH42ko/XyMP/0Pz+kZh99xrMcAAAAASUVORK5CYII=","e":1},{"id":"image_9","w":442,"h":636,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAboAAAJ8BAMAAAB6gHmCAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAqUExURUdwTA8RJg4QJg8RJg8RJg8QJg8RJg8RJg8RJg8RJg8RJg8RJg4RJg8RJoLgUvsAAAANdFJOUwD37N3LFLYqcYqhQVkYVYunAAAgAElEQVR42txd/28UxxU/3+3eru8uEj4IpHVWso1DUtqVOBvckLBSKCShhJPOpkAUQMIN0JLqJPMlhZRasoFQAj3JJJSmCZZwgCCknmQnrWjSWrJJSqCRJXbvANsw/0tnd/bb3c7uTszu3Nn7C/h8t743897n83lvZt5GIqFdqaudm8/lIgvz+uoXAAChqf3AzYVnW+qKAOSuq63QQrn9wHcLy7jbGQCUTbnIrovwP9DArk8Xjm1JOHGg/S/ohzffRhO4UOx7cz205pd95s/c2Q5t/t5fCMZ9LQKw+K8VL3H/Ux00vWn+I+i3EE5Wjla/yp1W/dPw1nl7nYLGbXINRmV+Tx80Trnu8rv3YDyCFRPz2i1L7t7HXVCn7+/z1bh/QOMGPAUMRBd5bd+8NO73IigNEVDhkoF5aFyj6OWWpoyBhFFCockev3Pm4zPfH902H6SlBJRrJGQP5bW8JRI5trejSVZpvqmt87VLde6tbC+Qf0f2Tggu8hunRGC/2jb/qZ6tOwnAOmI5kwEytDC9vHNDZ2dbqwCQ1P5v/SKKAH7yA7z410DZfO5dNJU7/vPB3g7VQnlFnfonL4KlP+Srcasr8Yf9l5YLKnUp1bheH6IjyZsuwkhMD9Vl0Mn7AsgLP4NkUX9K7S2BHFG8bySCH9ddLi6BpQFpf6gIXq8z6z588qAzryOgNFpXxm0Xggg64xoBP6szv3whSLUqKPUELCdAOVASHgQ/rx/jEoISLEfxQqluyhNsPiAysK7z4JV6se5IYGRgeQOYrRtIUYJPtLNynSTvJ+Q3gr/pVvDTOkkNVoaR5Yvl+pi6cETveXC5Hqau7Voo942DZ+vAum9eDCldlOqA8hIh4KWhV/bUng1C46U4eKbW1g2CfWHdmpWUvhr7pfAgvJtP1to1R+QQYTtRY9eMh1oBYWuMmvkwp051zVoSeiLk4lW8plpzJOSx5cQHtTOOF8L+48PyRM2suxV6/hyrXYbOiaFDGi/UjBOYJ4951m94sqXa0cET6+fkqC8nDNUKU55cP6f8QCMOWmpj3RcBRHzSb/aTQo1KY1ll9Mmtu+7v/jXSKQHAWfJlv3eM1YYTbgWRnvDN/sA8XRPHDILsGh/74o5Qzs1Tx4wk/DGjJjXpQ4Hkzcxi37cM1iLwsoHUPA41EUhN+mVNXvhRIOmp6BtUjYB+FrQ1GH8ZFn0zHApa3XEVA6By9Tai/yDlAW1YCUogZTOL/L2Xet2PAWsCuY+UuUcAK89Rti6gxIQVN/orkUbwmLJ12WBWDjnhnRLBmyiDJi8Ew0EpcAkQZMkl2mEXjH5oBO8L/nA/RrkwNigHwgcw856Q/AM4RrkinQ0oEhh5NN9CMMOraBqXAs1z+VjS4WBRJVfwp4SI0Ew37ObEr3HHp7pLkd0EcC/N0LRufG5hF3M42Hg50kAAiMPleRB20ecdMnMWAgvBaCoUdTQnzK0G3e3QJdmZCEegeqI0KWGOYRcZd4SPCIOOABAZmgXp7jmyXaHaoVlhGYSMpwkogWLxoTjHIM+XHcwCyW7KHxBTQgs968Q5ikypjJuTfhto5txSCXqEl5qjdGCFkkOIXVYhw/Tzt35be8JjgD+C9WFHpeQQkEPqy0ZhoXF1rwt65OnlQA2K/zThKiEJubp42QDgtLEGZHAd1+MuFeACvRxoiqCkghP1MWV51Sv9GpNnH+pgtS7CZvpccqA+akqFIMR/g+NkZTHWut0oqL5cAi0o4EM6ShAMwVysQAAqm3Fknq72r34ZKREt3W9VYy4+4xLqtDK8FIlw6MQFz/qyw7r9N76DgadGaV471sS2YUkhQY3OEySirxUTJ/mRausK6inlJRNSi7pcgj5xCzt0PLXV8yiJYBcwoCkNP3BAoXpKWR6G6jrzKnrp7BBety+jZN1BAh3GCc444ZqqrcvlH7F/vJgBspzrWao7xus5vFihtQBbmCWJTWec8HKx+pPiPU7tSCKCfRmUdXBdbjhNa+dDlmAYcXWehJKvBkShhVX/OSYpK9ALJ/aQCvCwLomA7uKY0j9Tqh4XzphhXkZWxV1nqKDQMY4TCeCLwRTNeh5IlQWiVAbo+jnejqJt/YBrsFMSK7xAQD0xzDaMyVnxYYWnikDWIeQjtOk/6p5Z9VBaw2skKTv0YI4GDk+L9iz8iGD2KuG6tIlh017OQEesxEmkyhhmrTu/TFhk/fQNsBqxJNB/Jlu8/iodscKQFFUKwJmyiGtsguNDaJy5RexbzUF5L1ikJVaiJPFdlB0YlxSumTTB9kLjrGNtV7Q7FrxmJ0lJrBwkweZsGuQco3/TiNik2sDQFkcnVF/nl3gmJiKd2sMkSZosLQejDpm/S49YXgKg4nR6j+p1ee/DUlk6dF4gkpmrHQgeVXiUgm6Hwrmy30UCTluq7OfrVKwrEhRweLDfgeBPzSZUb911Uk16KieWzQxEGtITPjhFhc7zBAGQAJ84ELz/EQMikfNq77CV1TF5spldXfRemzhIp9hOIqJj8l2HjC7ej8mR2wD1SKtWCJnbqxq890tF6RCeRLCa2KPscvCTuCrW9rZb+74L6T7e++szdAhPJCCeyXLS8WWEgQa1zvAidob41+CNnbjC3jlnCcCHNFIEgWBbU3GWrbaOlyNPAbnVjSxvqqVbh5SEpL8iZ+TDNLJzokWE7OOIXVPC67ZUikS7Ph30wH0OzDgyjXSr0QGIpbLhiGgpTXyu0rqTnQLaIFuc8QT9KliEI8L1GqJGolFsTxAkQEmYAkqWZ3KnIZgs1sAk+6xn9vFMFWvesx3HKco5CikCAe/wMILMTTbcWbVLdPuAMaleDl25e71H0zaDevm0QKPYTrJAr9Zzh1F4JlGL9lKfPqmrvEeuYvL6FRQKaJy6adA5SYGDgcSs5TPHUHv9FSdKBiR5B222woJ+hJJ6pwUqdD5FENwMhLepV7izG7R2mO2XIozSl7ywegi67B6foLZLhSICpn40nnEam8X0HQF3r250P30Vgw421qU/NeCS9q1VYAFrfGsyWWBr7S7s0XlhCAUzhfwVFYVPqV8W384MTlnmBTh3qmnL9Sc+8AC1bf3Ez7qiYC1SpPQY4PVJE8Knc1bdPxNJoC9bmW+y23I771zVmrPCuTvcufGA+TySFEi/fPzO59I7vnPXbGmc2EyfzvLIQ8Xwi+1JTYgVIX/tF4H9rMzxD0ZAk945eDmEVbbyU1ovtR13/ZBBfPpLsyjVcE8fHOE+Sr3Cz84TqpskBbBkQu0MbUZC6kqr0RQZokgOR+92J3O94Mwljf5W46v0wZMeITwLfyucVjVlUOfVOLBGkzuvmdbUfqDPRbwgD/VOYzjV+u16m6SRAUu1Ii4Knc41/TClA4r9SOp4885/3/k+5y7NUIKxzMczVHj8GqHxBsO789N27AyV7lT3kPTYiNpKQ56btw0WZ332YDGoTnhUe+9LZq1jWpehe8K2TqU7TtCVvi2J4z01rslzPjuixmzpH2v28SpO6zcJnc5VWcQDY7Ujb+bLTNnb4/Q0xmdTbsXi7ESVdeGXozl1sx1jDuJu88uOzXh7nO7Cw946Dr/wqXtm+GvnvLqmGjMDIG7CyvC0d41MJ7FJXX9wLnfH+p6RFGbDzs61yG4wwYs1VwtQlZPNucVTzoBc9NGRLY6ySsT1zIike2Qx7OxcQ+V+CyqLExXyk/u4yjwWfW2zOm+cH5KAveEmdxWtB+HP37CiPqOFsLNzba/duLUCwhizqHvNexsrHrS14yJad8zPmuCJNu1/YZX+dp45LepPHZDKXnQS/uqyhgpTlnWcaZ3+xf6QSb92488339224+i24xdbUWnWojlWl8LsiJocfX7jb3s7oDjVnzrQiD96bS72hn7YSXPAKeB0oKzBVNrjYoxrMXJc3io4GK1ukr3Wu9bqv3M5n29CUtj5KwLlccxyTN4KmWPrDT390mikWmWYJ0pZ7ZFcTU3pLvOhf3n8MWizBsqHfP41peU/3Zi5G7aJQParvR1t6fYD/zReOGTpXwY8b+WD7I6jNpxwa7VjLjpxIeevaJtkA0bOTnl5jQ3KU+4l5a34Y9BJa8akcAkPyXRcj69uj6pHxZq3e6cnl14ctp0qIZ9/RSkWrpES49GZu9EeLz1uXboSLu0c+q2ILoS7nQrtRUuC+xgLSh454WV7dLmsQo64nM+3NY4NuWCrlzYwscMJ7oXwfIU9efAqdoIFl44mNpcPuWCrp2dZzP6DvOtfTgkzlT6MfZCC28Msorb5ioW6/prUT9f2Y2h30vWg7+FKuzkJYPpQbQcufZmnyvbQDLMlgpEdM+ARRi89wHsWW9127DBwPpTD/bkf4LqdHMIsaRqagxUUTF7rUrJiqrs7cVlnw9TP3J5vxFT8JSFMSjCrRMMY7h4EW/CY4uhsG3c8Z+0kAC5d0wqLKuIejIaY/xiwxmDwPyEIuOH/FYbGRqr2rEDjXB6NkWyqeL0QJiVYJ0JFDK704nYlwIByvjMlAXmtOQvJK8D1OUmJdVWKKMQswToU0A3+T921/0Zx3PHFvvHe3S5SzkZui1gp2IgmSCthG9GQdiWMLYpIT7pYPBMh8QqvchKQUl5CIkBSCFgiCWlRykmEECAoJ2FKcFRsya6aFAcsdc8uKlTzv3Qft4+zd2Zn72bXM99fbPkenu/Od76v+X4/3xcBFivgyX4K2wO+6B1zTtr6a2YY+OS2OUgbFbiJhRmeYHxFK75cq6TAQsDJm4VJ91AJxpN+ZA1k1HMd1sXKFOm8uwyMr0pT9vmL4wGGFahwYS17f1QhYnbCiV4veiUfjRqkrOnGP04k+TxI+cM2X14FnMeMMhQ/6rMmTeY690VwjbX46hj9TpGh5wKe+AfmBdfdYWsD3/14DcRPVds8cuHC5eFobnx8dwm15Q4B/oo9Yxi2dvav7e8xEwtttBX4PPhKrAkxl0aDg62f1rhZI33lGO0lpOLzNGsD/wwMxmcA39/qXpzL5TrX/jUGPx7G5osptc+tiL7p3fz46bHZL8o3Gl+DCmNiTp6RcEtFdRxkCtFZOa6M7SwMsVLEM5ChAEWxLa4AdlaiD/RG+4I0hXRkc6CqpkCzlSSIqBJ+TuN4xKRWGka7BzRuhlVYiIW7xiuZaEBuxqRWpMYNKbm3fChpbyVRKH+xgNbcsVyVNM39QDOLbxhLEDSaGMRJWBAUxzrKFSaYM55yHLkVRmZcGickBnsuJQ78i/J4YAyPOUusiUHM7KkxpGybmRl7PBjDSlhRmebBoz9RoJTkaJdC0gdPS0xlbtwYthTqozxEJSGVCUgOCW2Ll40v1VZHkoD2JWUzG16mvb0KnckTHg3FeS8YWcPRftSseJlVQaI88k97yRB3kkJ3DoucGNIcEeXpph+yyaLcJ+yuJDuh4FLYGzIKVd9iktK0B7JjsIhANK9Q/Ifoysg79Lk7HH7GH9CcUIzBTHp4hfrWESTfqIpmGj3LQl5Le/eIQAGKFEUTN0LmYSddjz1D5EU2UxRNHKgQ6G2nalqLRG6WRDGJVcJN8ssi6kbrFROywvUSPdHEh65UB8grhB5yC7XWCzmkzUGjZw3nkcZugFqyIOyCRKamn0WFWOAe0BLN0PGg4dHybVfzpG9grQFxgiOtUKr3K4VK3oMQXeDDeiphEuWbIHkd2Ge0UmPhIg6+hNiBycDdk/OY9FNaI6+/PAchnVbKNEG8IWv673Cvb81Z4H1ib2UP8riIOyAxlMM/FTh9jVL4szr8TVvVmaXcM5a+a+V1Qbq5BC3j4CbUr5AzN0VJqYwT9Zs+UlAtBQ5/wwI4ij1INa2+ODqvwMrXtOL8KdKT8FoD/8X4+Bukb1WgvpcSc5JCVoxsSFYD7BnbsYzs0AFjkyu/p+f5EdaZmGC7r9XP3FIyYyDdpMlcBNRRWauXPYO5djJvTjYeYYViSBlhBr2JJlxPwHCOmLl3zO6Fz+kxR3rsXPYih5XmQSJjzjzacMGHVAOu5VEsv4rCGUNbCmPJS4mY22rWlC8do8icoEXzxWUFwt9G+sBOCJcRKZSfzHryVVQTAZELItPGGtZFeHsv1FeRMGc2Q9FUlhY1+eHiCdM+EB6c/efgC+OTGtSJnsVWs7WmfYwuc8beodoaMcGuIWs1nxEndvd05DpW9Pf3rz1w/TvvhR9Vwu04rwYCTTdM72OaeRC0wRDOnI+3j7qgn1pX7LeVCLiqwAUk6l3aaX5utRADbVLg69E/4j2SH2t5sxncV7BOkgvjgaWT5jfo24VY6BzEBzdBZ091BnNYysDqm2nt7F7S39djt9wZe2Yoy7aDJEbunAUyeiMe5sxJFJFdcvCZiTN8R0h3VYXxm6cbhYxpCcGpi7ssvNeO1jdJDrS8xvyC6UNCXGT4j5XIseJx86xUrMe+8q6tSDKO1yNZ0DHLSL7G7rJ8S4iRsiq+ky54+yZ2mzxUvO7BzHSt27GKTAQiK+2o9Adl5sQGUq+z8q3vNPrSJlJODQ9X01b/6OsFIWY6R+ro+q2csbZufyYw7etGkStbusIsmCWVtN2TQNpB6up69KkhezXohXLOE7GMboZq+nthunLBWALMCcDYiKWRFFeLaSdrcBok30RD8wWDPXRNlGXB9XUFIRES8zDS2TPe317w4Rha3Hmat6liB9q/wEU77WNCUmQeo9YzxFXPf7PUbIs/dS6qHnfbpqtqYy/yyE3dKQjJkWicveekT1PSrDAv478EB6onmaUXVbUaFGCZDihc+J2QKJnoe1M/kG7dQjuY9bkBQPO4c2a2T1aCA1r4m4KQNJmjiojkRdTsrDlQ/Z79Gvfcig603+jsvTthHrm/CHNAm8zzQJC2aXbURf5V31+/8oW41W08PetqzIj54nQr8T6nCZ64KlR3zncuPEr+SperHveOQM6cVCKZM4PeEOaKzBSW4V+FiKe7+iP+1U+4v42/cCS09rLypEo3GRudzPEB+oJLIcmV6vZm/c7KiPtbsZq9T9ciDhjuDVx4SJhTOqlZcc0PWO6qWkPs8P31sWcbrjg5mOW1Xne0dGE8h2+njf6Jfsppt4/srO9NrgWTl7jaZ7vPiBga677AAFnDLWAF6QYCt8ijJShl0OLs0JB782lhvbYzwZwgbLGhe1oPIvbPncYnBoUBLQ4XZadGy4p24o/kiB2X86qdDVp/KWhNA26CbiTg1e9dl2W6GhCYmuotgSGSdzlAMbnOuzO3MOsiQ0oBzI+5UYNlGbaY57jtjMAWHfeAcKC+5MD1YS+bDohQ1VtMkF5geiek98qJ0omdPnhoRe/s2/8va5Wb7w+RwLAeMeTX2rjKXoFJ2nJr8Yw8c+fK3d0dK4skmfEyvHbLTOyuKgiskvixDQ1WQ/piAsgCoOrmB9s+FJgmMPJFX3duBoPhZVFZC+58XUFgn8CpiS92uyzqXQSXNkOwsuLuIYEfApuPjQwfPSoUZCW83TKvfy5wSi2hd9JZ+FzglrSwavAPPEh6/mg0pAxYVqm3VidIGYg36P9wsT7BRr44syxYHit5adWRXHFiH1/clVdboSmuxOyTKmw0+PsaOM0XdxY8F9CCEect2qRY97nVgogCT8wBCJdeOlrYgNmUIvy1sHlilxkedO5X7/O1d2bU19HWiyyJex/qrR2L7eqOQ0Ddzpetm6pWqejBmddHVb/bBuUF6qt8cfdCunjvtgL1A31BbRjSnjPH/9zf063/yRZk5RW+JNMyZcWXlwuBUDDVW8CBahgBlP9xyN1giKYfdzxR5b98cWctdyCkaak0XfMwuLEINnepkNa2ohMjqFwFC9WhUpmQEM8dsqly5axIdh+ahNcW3iRJbYov7hZ5Dhlmh52rS63CE3dyFVwA3yAlO/lqwBd3zqh1PMaaN9BO03nizgFxH8WahIzbC52Pe2AmVcpW1/02FpHCQ9wpxTsdjTI57TVN2MSRd608yBKgVyg5rbL4JiKPu9PMIDySkANQjEcZaHGz1dviHuVKlZyORLyz4sG2zI9/MjtFctqc04gBGDP3bh5DMIHh5OhAOWCIY9DeNbGFVxZC5WpYKmHhj729SzEEYBlOjgcmEnKXxe4xc2mVakQDsNx5w6HSrKBREwWv7lBhLOhGxuVOhi/54U5278zhv7FetKNLRMhRgJdx0dWw3MnuZHCgEGOPzD15gFFY7kRv7rnGkaPZ7IqcguNO8E1158hZGXBdD5e7jcceP3tywaBnw0cdIQReVUSRGRh4ckfM4O4/p558sae/p3txTqlW7Oi5jp5+q3NZ9lgqceSslF0QK6WSg8HU2rn+ouddTsKfccNd3k0CfeXjJ2eRv9rKu7w8DPnJtXsQXeKO1s6e/j0Hvrl2+dnjYwadGnly8d7uvmrn8q88PcSNORcVb6licDkDOHXxVnfOO2wpfq7OSb3Gdy/4XE5uzHkLNmZFPJAkUY0pGfMIwsyNOR+oI4+gcZN7mKwjw1XkxpyX6zhDg9yY83wdNzpHeDHnoJ6b1BQv5lxW6rjjz/BizjOwjsGuosqJOU/VNcMxz8lFSVNdkehoogMm6qehutyOeZxE56W6MkDNSc4kTdjc1amL5oDqKxwSFS5qxSTlZYIPJXlztyhBgebD3Bl+NBfxa1Odqv0wF/HrUJ1muZkLg1fS63Op6M3iiJOKdbrDfNy/4jS79BRn8DiI8HCLfKjomKZ5jQODl0EL2MPW/i4MFniRgzLGFFI5SF3bha1a5Qzqk5McFIuhzd0Gsyx/k4LcvAEOUproKPQTC8G9jOw4THGQ0kSbu/xq26zd4DgGyqPMnajesH/8EhlcsB8DIc2dgy9ZRqZl2e+5kJBZV4e7cWTPT5l5k5BB1r2Jin3gBpBGe5z5kpxm5M0kUJeHcNfMfNJvHlqt5+2Yfeg5Okpg3SRgkq7j9qYVkVpFpjX0LT6DgD47dq+hrKLHC2msmwQF3a8kqeZ00bOYBEOZ8cRRGldGeha++eyq8hyt9sfJh/vNkQ+NEa60CnNYeO9mxhNHp7Fl3o9UFHaATVnGlWYJ31hw4t51nDsiMa40tcbSdmwrTQAbi69LTHuaMmxM6x1m2hfLwMYsVorpjG2mQfyzNGT54KUbrRhSWQ5gU9ErM2upyPI11/xGzfEQy1m/yUZ1XjPLakVrtGAow3CpX+OtWIBhtZJuvFCPYbWSatxcjbOrVt6GDfv4DKuVwcZrvdLs1tjmG3eC2VUrQKWQFymzekeZptF5PMRq2UqKhoefqrPMLHYagBTABmWFUVy4QfgeDW+OUYyjPBWFMMhm9gGoFRpPvYlNe56hY4izbGYfUuFlbKBAIgJM2vMjSIBhh652rPiWV3teCrvj+BISDf1h056HdfL8n7lr/43iusLr3Z2d3Z1Fih+pSNBIsQ2oSTMS2CYtpCMBdkyIstL6AYmqRDIEkdTJStgUpYQiGSjluRIOhFezEikWDW5Xwm6apiSWMAmEAP5hdjdUBu7/0pmd2ZfnPmZm587c+YGHwet75p7H95177jlDoHjqu3SeyN4jLMZzQSzgrUouprQ5QcSZCAmRwVLGGMHXRXVeGiEvPckgPw8RcFgQ6L+3E5eeYZCfz2Aa6mvPu4ajXxghvyf2JnrkCC5zwVDcplVkHWePn0uEOqiMEetDxGQ8x94t0QQo4peUMfKwof81rAbePxESPJwzeFuQfG1+kLnqACJ1bSp7FfIxUZy5fHuW4DJVkF3iR5xMxlkqMGANhykEW+F1Yxq2EqrTjF3P5kXiqkvFfbxsxduzBqTjoJXM/y6k3spaWjdribEQeMmCvnVK1k6JWAPS8xayIYIIQP6GRStmCkinlRcsJBXOf2ARhDAGpKXChLuKzlKrnCgJh9n+PJYy0mELTsXWI7uSG3XpGQcfuQ19rrCEwybc/cBBljLScsFl6MRSRloQF102E5Yy0nH3HThDGWkKXQzG2WGwFK4bR9hhsGn30zwCM0CaozEDLe2wGwYFHEaBjs2zwmCp3BQPs3JBm8o1AmZKO7JUuCYrDJZO7xBGGGyCziV/Ro6C4nTwPCOlmkFKvpuNo6CMQgfwssFg0/nyaOEabbUncGQLlMEyAKQ56bFZupw9R7MAi20xFhgstC2hzaxPGvbfmWCwGg5LmRC+rWAVA1ATY4HBwnBYXJHsAOsxRVzFKIPNQYphZ4tZO/hFLiYXoQzW/6MgGA7LLQ/ZCBMx8CQDOz7h/WewMBzGSxuj4jrLH9EENoagdur/nSdYZ8i4ciaQtP7eZQUxf9P/M9gg5K2PqxhqlnSQXgMoFwOc/IhJBpuBnODnHtvB1gOaa4QOI/afwabNIZeTn9V+saqaSa3WYwiqhEmfj4J4yIT2WClO3bYYixOls7oYNJ3t9+UEWPe9cEkuq6qpd2jnoVlDvy8bwob/zOnNjZKLFg13Qvf+KfYY7BykHi/9yMBX1kiqbrjz0Poi2V8GC7F7TnxiZCQmLJndE0MJNkIZ7BkfheMgYKnSnkh6wRLF2GgY8LPMMVhYsWFTec8WrBhNyAh0nPgU6rT8PAoKQq4pZ/OVheswcZs20+/S9LXdu3f19fV21z09mwqf79N1vGim+D4z2HchOKwcAbkDYP20MVIT4J7WD0s7DW1q5CuDzZlrvYUSIOZP7upqx0gklqZQdnR29/ePnk7pDuQGlMH6CKTlPMRNqNt5s0usTtPs6Oju7uvfPTo9ff3SpYvHjx+/9/DhwwcPvv32431EXBL3kcHyEJg7AFKBT9pBc0tnT782TvPBf/ZZBNPPQJGefww2BunskC0G+PO7r5/+t23UA63l95HBhiDvW3Y4CSAOv3s55t9R0JzZ5gV8Kz/0g2hXHPGPwebM4DDsmLTALUzwj8FK5hg1ABzz4Dziyz4xWB7StyLnGFwswLsE+NaFC9b7TXLc7CEI1+mwX2ewkN5vjp0KsjAk4dfAkgHzeiLW9WibSRNWICikPwx2wcwtB6222NgvgwO0khMAABRdSURBVMLRJXwAvknzPjHYtFmUrEX/vb2EQ+vxf7KA0Fh/UkeQCCVbi70JCWy4nFQKdW8HUdWT8GcshGA++o3Wgpe73f1HEd86X7yjquIP9eALNWgs6QuDhRQMh2sWqPV1AL+EB0rD5A7X6SaqRDer+GF4kEKV+ap/mwerj5+XAPSgq+nVsoIu1vnbVYif40fqCFIwnH5cJUfva5uUgxaRri1/8XBtCzLUoLGoL6kjcyDipYpTya4wXALEzUQrOxYR19Ry4cd28LXnxDxe0VWuHCzmIdg4uKIa45bXOtyiZSriATE3KdJQRVdD6r+VMg5x0ewSMtX7zbna7cohUIkfg3whBySZiu9e9lpA9yilw7ylQbEKl2dqtyuD2KOwD5P/IAgpWdmJ3EQI6Pxo/jmzSlelG6rdLlQJMufD9POkCYfxVRci31imRjtt5cNtZh9oIO0D6rbUctMQyvUnPR8VBKkmqTqVgHhjzpAuYSpFiRlCaNWzkdpXhJysedDziAfJYVVHb/Al6Uruku88Y5LuGcMVKoFIrWYiJ2uG3WiAaBOprEEjFQHcGgB6EOb6rpik+1nXXgD2hAp16oDAyxzwGmpmzE4l/aiacZmIAR0eclNL+WzCyMvmALgxUBczkXUSnhuebMqHcVIVMami37+g//H8iOn/LRrUPh+YqwNZadR8Ba8NL2G+NB2tcQpSNf6apFO9rb7Ba0cC6XUWGJ73ES8Moz9VOZI/V3bqnEmDD1WUWqhX7xlUkoETvZ3zBKlQG6/hA5mKxvFXb5lfQ/lA5GC9oaHnhqa9PaWEdHjJ1Hj3YKWcI9FrAo9CuZGoAF5dIjbKvJo8Ta7wkO48yUe1Xr8s/Cfrzd99WDcjLrukaSH6enDc07ocyL1UTnpa+xcDPHNnIXcNohJ4MxXgJ8FvLfNU0ctzPEhFdrROeQ4Zw9L2d8EM5ggA/ddkUNyz1HkgdyjrJQuCdDSL1P38mFjqryx0PQ9V7B1aSsnctgQ9FTXoYfqBk/IBNMosPZOFOynunR0tcFIjTLU3v2Jmc+jbzzFA6M/pKi83q9BYvWUkksXrlzeBF5EvCLZYzDVMybtaTVjhZGaJVsU2AaBssOcLZtBnBgvenXTBbo/llkJg4QR+3h3UukbQL9Qzgg67xZQkRCT+xPQpMr5bgwa2lO75meMVrO+QhAe63Beqon5GpMToJoZJsM4rs/sVBL3g25Bs7+ju7Xie+NqeYmzSI7hyCGIeAmHmyrzmX35DijSYY+QI8Kj1A+yme4xAMEOvqW+gtHfCHoxBo10HL3lDYaF99sIEqCS8pL7+kvLyGOvDndXlvFFNaI9E4gDvv50JDOjK+xNGAkwJQMhqG8DGHmh3kCDp8H745UBS9+kRtP0sYKhAQvQESSdh5t1EYs98V6+hdlG0ax/DfUrai1vM8K48A+iknKFs8WbDq/IvYsAKRr+DogeqCU9QHURWqgyVt+NTQ0x+Jca2RgI4r0lfNWegnnkOOWh3tvyHTYZlCi0pdFDDrf+wB6qZhgK+OWRObsaQJdFu2FsM7RhjWOni9FUT0c55ASnduLFlwy3GUd5QEQPFcBGby1FXTUQjswVkHA7pxIxPbjBqi9KLGK+PxSNfUQ/ocLPDSCe0loQ62/qjVEpf/gHTF5zHSydQT40h0sJzaHWbbLt46pup5jcDk/l/BAI3JdzoFcLFrwxlrInqoj6Dru5LyM0t7WB9SvUKSneXuCQBXff8jsA0tlNWTVT/wDFM7WK4pbtnp6aeR7RE33o0lLwrEtAqJ9GlQQizCwxipJsc4VJhbdncX3p7ME2j/yyCDkImZo4uQ0edxmCkE7pUVxAh+nLuKgBF0qUhus2WkcMLmtBeJf4L7RfSOxd2ApA/Q3wFaZqFxGFUxjuIli6iRfEYIR359iZVuA/JCxiD5HSomx1OuvBy8t7dlQBoO2YlMUCz/gE5f3EQI522d3tHcFp5VQTK6ymLhn/F05RK6VmmXEDaXZv6jZsxtPTmWlUrrbYLHwDL6Zkd6qOXAWUrguHxa1+/txPdyT2hbhxo/bvlFwyo3XtCN1wNqXG6DbF9R5RmtDe8q24cWH3LjnHQIgpJNFT4XtLOfO5AN2+q/6+I7/rjTm3khUWT05+9tNAYbvw8v1/16SC/9Y4dM9aUEqw8atP2KZ2XhLAXpPlz2lrzr5yyuBPCOe1Kur2N054cpaO8DEHl92/WYLLS+fsH5BW/M6XJpqw+ansVYUpHeTKJPHL3u4AuYP/nOMjI/fe9UiuB1n86WAVP55Q5ZgHCcvc3G30CWnpGT0Ml5L65pvcSaP3AmW+fpxLyhqyNCvjTVKURQktn3+jFBx9XbhJyB+5dfq9d/1ensmmHmDRyYzmrGqHtTnO1Z0VzS0d3j9Z9pKujWdG/pKz8MuV8ITTOYe2NwT5wclethLWP0vnGsQaVyH2WZ78U7cCJa71d7XXtVRTVHI+lGlxJQnTfr4w7KyN867t7l6a1vjh9u0evX/wx5cZSJt33K2l2pvREXPcrPEsTE2W3/UqEpbHx427jlRmWJpW67leSTE2NnwTPeZN0sO1Et6XcsBNXs9IuzbrkT/Z2tHf0jJ5qXJXcTP1lXCH8ic1ldLbyy8bSI0OuVtvKrhyd8ed7e/q6dfjS+VEjyxPcrBGIuQnteBVla/KtvNDAh9x2cUVDLg9K437SeGB+q/Pti7oYFLKu9xdSea62fRMNLMmtoMBLFHKk/DnJTp4WEhRcisCULuK8vdnayQ8qKLzsFq6jc+bJnxWB4lS8YbeS7vQOBX9QxXvf4auRwa/dgWH02M/XzsWbdWdIcJjmJaOvJZD/zNlLdyei0x22p+6ewzHUh1yJ6DLdMpGvRNDmCOfF3Ijo1IdWHwEOB1F/4UKkGqRZaFB6PgVLr4lajcONd6zKUc+G8TuA4uhnpBvO/fEeTGuLyqDgxPTCDXN0T7Jh20X0RUuqcMybbNj3AGxxBscao9VJTy72cTuAkznpKhxryOUlPBoZFZUcEba9oNAIlg551Sz9X0AZcbR5jWDprGdtf3c4QsWzjWweJ3nWslkFVg4ciyA1sHle9se47WgbZk0dI+x87zrPpBNkXMU7ZvMcLzHt1UVv5w5w1nFeOuHpCEHe0eYlHG9eyNvhGcNON8+Z5WW9bQPPOapFUTdvi6Of9v/qru2njSuNW4XxBfthbSOqZjUPOGykIvmBGKEmkqVNiFCSriUvkUMb8rANNCpokUBpC02yUi4IlSRI0O1GXKUlF7Y4RAokW9KGB0i6TWjdhzGoqrQ7/8ueczyeOTOe8Zzz2WPDeUMYPN+c73z38/tFKwzhfwnUMwZuXl2leczQyQMoix8WsKxVvFu+Jh8A/NVT0OYlKukPlDME+UqQsQ1UgVL2OiiluQTI7WscrxeZHXWIbxYASXpVGOITkEQIJ+mcya8nWjmgK22dgdW5BixA7y2XuyoY6QGYj3WLWT5ztFUdhjYgrt0iZ+UiXh2Sr1qYavpErsK0r0qEq9Au/Q2uQKCzgomrbk3AQncUCHD83UDFA5XSVBPFY+zNKr9cLQIzD5As1JOQmO3RW9XiwIKz9J5lrxk+rh4RMJgee5E1jRWqOOYN5jjyRRmrfzUVh7anDRq0ZXiTkctxoppUsmvQU+FJsEUgopSsnnRusKs9y7R51b1/4ImCv32BBdR9yAbJxeEFZ7B0szx4vOJcJ/qDB+72C3H7aolX3q2mcDbAaUXXlL1deavMg9C8yy+CA6WaIqhXaqDyz6pKRxGy8S6vbaDjEavE1anVBeCRUvy/trtb7ftotfC6wILdsy9UtMLenRmfTafTM9N3/p3U9Ascww/ZIXNXjm6he1x3uVkKnVaY3+N/hEs3snTx4lyRmkNlSn3+W+2NhTe2c2wfE7+D/tfVnSj+N0etsoVERSzm1QeN1I17SswGrDid4Be8JUuRCNKHd61caQVSu8D9aB7yYvn2Z6mUKzU8vDHeSy54SW2bLh84il/IPkp1dX9tVQCcqgBDzRjZq2Br32vDL0Z6sHw7k674X6CuMrfrz8yrtwGRlQ0avnEXCJJFnymUDgapkuufTED7T4m38ymwmRiXHOe9+jZaFKWDyH5gqAGaPSnerNbUejhtU4S/I92TTj0p9gn0gQvAgQSV+9EUKNbtcHqAAQnl+n/Y1UdkCTiv7lbvjkdNIvFFZ22KF/OxHLHdFgwlCjMrneqemzCS1zkbp5yLyzIGsLVV3ykZmOJNqKqX+J/J1r3jsD2pv8ZkHOJAHUr8ZnANOq11sjfyA7InhxhVYwuWQPtF9aUUQlMPODn2NoqEO8oagngZC6+G9alm8Qukc8PudLA5ImznTxbPGG71qlhrgghyu1OaIymQbgA2LcfqCaQ/Ff3IsxxAnPJ+o6A4mqqEJgz/oK48ly3N1octtheUv1cQnpTbeHFIfYAiRHZFDap93b6eBFwYmnbnYVEfMIr2DaVCYj53ARWOVrWbM5R9UWIXh8ZvMDStjSfAwWX2X0JSGDmmXLuYAPR+BWrDjSRFaw61Wwm4ZnMxcyWM4cA6Z0b8x3Ln4xdAROimJKrVBztC3BH2CGE0amcsv8OgD9msAtrhi5ID8jdADk1nPav6ar0zlL8EVjNsiTbStTG+RIAb66+p2d5TEsj/mb+mepaelhjQvx0nqDHIiTNnMRQ2xmd781B4WRqzGEVhk5gUl1eTPHTyZmhP+8WSLntZH6ewGRr0cw2JshAElcDq1XLDYL2ih1DO6I1KbdmDsMAx2XzjNBRRXFyJtBmLj17xN+y6OLNoX5S+G2wYJtoq992Dz0VzfJ88AqwcDMU6lu+smxyv+K840OQ7KMJHdHpjBCtKlPfugecrvHHvF/7iAwW99/T8esrS9u3iivgfOPWSvls6pW+9+8WyjvQRH1e/aVEyktqKM4pi6VxxrpNyTnd9r07UTxLXlbMhSdCjJTMuxm/RL3am1+1SUCzdY57X7Y3TA4zoJ/0kXU0Z/QFRvrBZZegsEq7J3tLHsWA8PTzPRzTSBwrZDXPEneUr9I2R4CRpsXNH7J20QLKfTnaHJ9yTpY/VH3DIbjjwQ+VCWSTFVnPE/TWZDa8iIP6eBI2s79tzj/q/HlyrN9LGD8mbZREOF8otKJa9IiMYh48MnQRExokjnBirHR9SUqQUR3g+k55+XZ69wzBTllQV2EdMsuWgJM5IsOWvOGhoVsTx4FNBB0cfkrghGC3HPCbxA1YIb8iiNLPph5K8XGfywJeRsjQrH/QeN7BJIOOprJJDFf8D0iGwsBpCgnnoXGFYZZnJIb4n32cNFBS6X8pyKHai/XBjqZMAOcYDS+w6YVHeZT3ZnblTIiR2mU75Sc0tyOE5fcqaI0wRLpfmzUdyjAeWjO3otbLj36wqvuBTmxIdaWVqhftXyFYOGszTO6VFYgJGLI9FSMzfZNkhCCD9Z6/gbeX7o4vFLvcQ2STtlPkKIWi0ECUBmC/qvtWrpWkHrRnS/EhnOOrAv+Sb5r6oFRiX/6d20cAgMSD/anyAVdXNcV/hELZ7tEkFqXWlyMtB3pb50BHNHFSdCBUXCCnlK66M9+bYMfoGaUNb2PHTZlE5s1dh7LAqWqiwu29ITuQwT3o1pBZ8kEZLrct3XrzY+PLu4cZQJBaLHY40BhUGFN2+Dphcn9SmWAMiR4KnZqCYo+P2oG0aG+YKFTo13+ttIZIExQKWhbmkwYCYFE4WtEA8wd51+YJEAOit/jxsf1h93ECENCdxoEc72H1L7ZFIJHai3yShnzK7cz6hjW90skKrnSc8Rdmjr9mCs2PcIJL6XPPq3XakkCf65weLBt5mF18pJRCiTHZNGMt5Nlbephv8OHZ+/qvgL00vftEz4DWy3DBor5SkcsDMU4SjS25P85i3AxyImuqdrqg5YCveSI48a46nIrD7hFu6M7zXx19aXPSMU6YGJ2ANRfxS4AGpvq6wu/1AAoST6BWlh3xbZ5HpXqedOC57WNX8u7cxoZscOsWxFbgnCQKPXMSDcOzrK6v0w63bU1xhlU4XPL/wfCk3KBr+hEfNcIEDBvyJvMgOO079M9mqSOGJ61Qn0EL2hzL2qeez7bkgWWp6xBOKnsee6tAgSDqM9yo3fcNGsYNexQHrA6mbvxGI3UCxwPSdTGY83RvLExaFTzH5t643MzMzs239ve34jB4FCudy3SSPgUOv1j6TYMi/ne6//RkR/ot4EYRDr3EKlQxI4kVFP6G2eabn/K6HnnTOniwhY/yxhRoGNxx2z2ijQvEVa0W5QjETNCU3JA3ZfIs+puuYf8Kui9pqKo1wy/+AGncPTxqLitQqZrhQ1mesiXt+IoP0UjB0sOObnxkPG2khkzcaiSyfSF+cT7pKXCgznp2dzRk0ataEFPVCsfxAvM2Izw2zQFDo2shk1jke0HOBBDHT66kUysMEVxlX1/ZxauQP14aIz+1GdiG91G+jIf6EnH1Y6hPgkk1pbBxFd/Gm6rhwnt/MY6ywd7lW4tej9Hvnr0mXU0uIK0UnLNy7fN8DB0tXDTjr4CV0vcwhSXqpwjPzeoXe/KMSvhuDrW86KRwGtq1fnsGBLiBAwOOFh+agX/15yXtvv54q5h8S/eApeRRqwaz4uaicnXRYONz1l5kmxk0X8VZIPlDICyWo4LLKX6PIZAX61x+QSEPijjBwVe59195fIz14/5iZ4tWqkPyea1+s89goSUc4Tp//XmEfdw/Ld58rK8P9yANJ1/5ZP5r6FD8mp41EDupKz6QNA2MVqdrC1RB94KFviIRalzPDVzJv7uYGKzdd+2vhKDxLNVG3jxdcvg0qqZd1P3Jvi6c2wEdILUwOtXakZ2Zm9TeoHUsKHF3++zifWRlOXblFuoDZthX1tF0d78V3goPBgx1zrn26RsmcR04Bs6f/Y0ya32ReMLR/9u66nC+ucDQN9pN24jEGKVQi2freXV1vvswM7uPn/z+IwNG/6uh2lgAAAABJRU5ErkJggg==","e":1},{"id":"image_10","w":438,"h":633,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbYAAAJ5CAMAAAD1geW+AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAABIUExURUdwTOjMwMmvre67rlc6XHhXcPG2pPORl/dtg1U5W1k7XO++r/KYmlQ5W6KHkVU5W9pkfPdug/KtmvZtg1Q5W+3Vx/OZmfWBjmb3llkAAAASdFJOUwDr/HQw/eAyzq9gn1Xc/vP8pl0/0WkAABlTSURBVHja7J1td6M6EoQtgUKEefEYsP//Px2MncRgY0C0hFpUf9hzdmf23pgnVV1qCflwYFip1nmudRofUHyYlXVZP6oEPC7MXgvw+DH7ZZeDnX8Vf2R2B1fXLTo8Kp+EVs+tEuTYCA3k/INWGxTIMYQGclyhgRxXaCDHFdqDHNZz7KB1Bcm5oZbXxAXJcZPaUHJpqrvK87xsK7/tJtwqxXDMP2iPfNINNltYL39UYrDplz8uI3v7D6DzR2qLKkcr5CM1pE/OUkP65Cq1H68EN2ZS+7FKgGMmNQiOLzVwY2eQ4MZVauDGlhq4sTNIcOMqtfs6AKS4Sa0ryI2d1GCTXKmBG09q4MatrSGWsJUaYglbarBJltR2b5NMqe3cJtlS27VN8qW2Z5vkTG2/Nsmb2l7lxpzaTuXGnto+U4mu2dcObTKuA6gYFgm5gRrkBmqQWzhxZIdyi4Ohtie5BWOR+5KbDojafuQW10FVDIuE3GCRkBsscucT5dAscic26ZVFpjT/mBIW6bYrUeGHRTqsIsnhkvxSpDxS/TwxLNJdNQ1Rcwtcbto3bJFEKOEmNtW0hVDCTWzFDZuCSzKbj3TY4JLchpGSEFu4LundMFI0cEmGk/+OWlPAJVmJTZFiC9UlvRNbcccmsOJmtc32wEbV3HKIzV2QJHTJGGJzl0jQ3HiJTf1ga9DcGImt+MWG5sZHbE/YJJobG7E9YcMuAB+xPUZbYy55amvpnCS45la6ZjJj1/qP2qtLqlPV1mnnzS11Ta08LAiSry7ZQauqxT82PHJtFl+Gre+Sp/SObbHcYnjkynCwJJH0XVI9tGbALYVHrozis0dbQ7k9QWtLLRQ5PHJNzVhx9LHJX6mlPWyL5FaGlUmcn0TOZ2ATzfGPWha/1dpStQW1Vep8rd0uoKZ9uSe24+Fuk0Nqe84k7ltbuhTbbbe05TaEppb/i9HazMdW8fS/Uw2xNdWL1va9CeC8tcmDCbbLSoMMbU7ietWm5PSvSlm8YPtarbWgMonzRKLEFDYlX6A1IlqttaAyCV0imbmfWTSHw1JozTX5XhVGgsskdImkS3szWluTxAuhtYGEQGpBZRIybGrmaZ1mHNsIs2EewcEEwiBZzDuK2tLN0mXQ+mI7rfkhg2ludLl+3mmdlm6ULoPWV9uqE0GhNDe6ICnmnWks3h7q+Qitac4/zOLTuh9SA9ubcdQMbCJ+2a6eYNYlybUZMrDmlhImkjnY1MspgxnQ/rrbae2PGUhz04SJZM6RxsFfm8fsR2/Xc7b2sGsKbMbYjkuZPfRGcNg1kOaWUyaSGc/0vn+mVK2KRdBucfJKcLY8kOZG2tpmLNyWsnoznVRobjGpR8449539PP0kssqtFbMsVKjNzTE2tV5s89qbup9FlyrM5kaW/+WMB1qQQJvT3pRImvfcwji+RRUk1RQ2VYiGrKZsUn1476MEttnYKJnN4Pas6he9hZBJqE4kyHQMmyoezGJn3NTHThhCJiEbSGbvXo8v/rpZ0hCXVHMXGSq4lVtMm0iesP2KzFoVc499DeWGIDk8aaUfxGRjv0ShZp6NVaFhI0sk0c9NSx+IHYUro/ysS/6ZJB/MFYQYmS2M8rpJSzRbVfFp6T/2t9KAWtvz/EJOL2c7XLLZuFI5R2zD5qYDam1yZryWzfa0mom7Lyaw5eG0NjW9LFK3rZYtHfFtd5Ny+v0BGdiCOx/dT3nhJhtfq5jcGxJhLbjj8V/QYX9Tjb8li6nfsLA2AdJPWirYYBtimfpz7psA+hMU+TFT++yTk/tzZSCt7R0UwQhbswwb70wSf4aieCQSE2xpsK1t8GH9ptb/WeUkNh1EaxvR0kpsB6tz5A8/azG5RGCdScr5apN+QZtw9OnJZRyCR9aT8Ux4Zoriow+KyRNDaQgeWU/+Ajfe16fmFtSR8nzCA9kstl+8oZg8Vsm3ucUTrUuSrtqsu6wc/y1TIR0pTyewFd6u2kSzyBxkUO9L6Qk1kbY2YR/b6M+rgnpfKneJjRLoyP9DjB1vDep9qXhqvk/Z2gQhNjEjSxZTYmPb3NKJLSrhaWsTYsaKW02JjW1z0xPbaZLQI4ULam+jbzF6DE3zb23vBFXQYXND7d2KW9Wj7ziU/FvbO7kpusW2q8mYGrwxUoR3ZUI6dW5Gsdlr+zAxDu7KBP3pTb6B42waNEw33aZfW+C9aTPCzbs58jTYhV/1nAbgkUNuktX4f3TSH5hL6vEbYV76hHLpfYk7bAxd8v3dP7l4h02671hZcsOXJJlNbPxcMp68YUAR7GwLv02Sn0uOvERa/hmiYtjalt7GVYbR2p4dcR42cUx8UdryhRs/lywn31bnGCQX31mog/DIZ0iszpGYYitD8cjfl4HZnP5fk0mYuWQ+fVEnv4mkCTZWLjl1h4zozYmagLGx2uOevEOmeH4/M2hsOpDWNn3tgMclFmPjFEpKYGMYSpbds8Uo/5vcNa8D9Uh/839y/zhJ9nuXV7EcG59Qsswj/c3/z58pi4RJImEkt4V3EXqLTQw+V2T4fRxxiB7pVSLp7d8lL8tRswuEdYge6RM28fyND8fVPsJqDbD0s3mE7XhIfuQmMoLfSE5rAM0XW2uLmeg2+RISI+Hkkgs/mvItg4whO5hf/ByH55E+rbajVRsbrOW21CO9Wm1HqzY2OMut5IytEePgshW3rOvQPNK72ZYQxyhJ7g0ui6LoeLwt5tqlgYhW3IcfB+aRHs+2emfDpBBrvq1HB+aRfI4krPum2Tgsj/Tusi2yM5Kc5KbDxVbX4cqtDBZbsRJbHofkkWx6m1qJzWebNFjZ7CKQeG6TZbDY1HpsOiCPrHcjNn/lZjL9EXsRm7+pxGSOIPcQI722SaPtKBbHJGuiikPxSBbvSSkqbF7apOGsVe4ij3hrk8bf1Sx3YpF+2qT5LqLch0X6aZMr9qOUDD5F+mqT677P3ltwqiauOBSP9HglIGvy8ssm4/UfSIRukB5y0wQfqAg4QvrZ3mKaTxR2W3u8yqHDEptnRiltiS0OIv37aZTCkta86mwp4QfzYikgVfhSo/NIT5xyH9CoAokvitsHNGqxbQzOktS8g0Yvtg3B7QaaFbFtNO+yA630EZolsXWfVwYATXv6yr2u7ZVkDs1PodkVW2eUgjE07e/dFnFe2+UmmULzV2i2LdINODvMPL9EpnZQNsHZgKb9v/hHl5zBWWlpPO60S+375O3bcWyAs7O2PjAp27FkhuLOU9X/65Fsir2MHj9w0/WG4Hp4kiGvJHkhJwpbP6Fm9uX2jsDVqhAjzJLzjOqUZmvEn3P8zmY3TtntgP+hOy8vCWabCO4uOjNmXRVgthk4c2rU4ErWzNw6ZXH+is6RB+D4M3MnOLUghVgEl4fBzBW44kxSq8CVOo0PQZVlcOpMViYrAZ3eZBYHxuwBruRAzYRbeojTEJHZnVSWpNSWc8sDRmZRcsTUli2+8zR4aHdyKS06aq21BWZvwbXkcm+1NhtbqXfE7E9zROQkObV5i4AdQnuQI7FLerGp6bwfxzuFRmaXzj1S75lYH13pk0mioc1HZ2yY5JFEsj5+5R5d7odLFhDaMnBmeiuceCSERr0zZx8bhPa5jBpcYdcjSwhtzri53FZuYGaMLtVa529WBWVZ2pbbs9hyMDPVXnpb17UM2+r2jt/ut1oQW3g71Ztv/uQW5VZAZq4G0emBsrl9QWaW2bXmeVtSHY5UyI4Znqu7+qISGh6l26LRW4IH6bgiUNupUYLaBpWA2h65gZpLVlTcXqkl2T9ES1vYvpLn/0JFrUX2XVUVNGgv+R8J8mSfTofsVpdzhCdspbL2of+Lsqx98El0NJTb8RglncaiX2IPbHBJW0Hk0j1hmjFJ1a/L+YwnbAnb9fGMr5e1K4BsiO0KtVlbZj895iOx2q7obdYyydNjpjbJ6owdAVuZxCo2LABsNTdg447tQo4Nvc0BtutKapcXbEc8YPu9rQI2YLv987Bu44jtgimJpYoqukzyBhuipJ36V9FlEmBjie1avUy3MCZxgK0ix4aFm51l27dNbFgBOFht28CGKGk/SK7FVgGbo/oGNv4eaQEbVgD2PXLlehvYAsF2wcLN+kRy9Xob2DbCVhFjw5jEwYxkHbbkDTbsb3uPLXuLDWMS+8s2C9iwUWp/2Ube27ACcJJIyLFhx81Fa1u3AqgQJbdpbUNul/PlVtdb3f7wVt3/cpmJDZnERWtbXtcnghUyyRajLRuFTOLCI8kL4y3yckCt7ZVobrbjP1ySQR0dYYNLktbVCbYLXJJfIoFLskwkHTZs3jDEhktlvJuRzJQbHja3/I8VN3H9c4UNlwExDJJwSZ4eCWw8xYZXuBnmyK654XkTVeQQGy5xIqsvYONYV5fYLhhvscuRt+b2BbmR1NEpNrwKQFQXx9i+wI0i/l/dYsMd5Rw98nZoFg+dWfzHiZJNW9tJ1epkjA0nSrZpbar72mBDcNji3miy9Z112GKF5sYH26lOfr6qO61PRi6JFffa+mfokD+F5sZkINnHdkJz2yKRVCuxKSO5YVDiHFuPWq1PJtggt3WVrcWW1SYuiVDiPP/3TdIwlGBQ4jhIDrAlyJIbtLbvtdg0BiUsEkm73F6bJLHidp9IenLLU4yTebS2Vm7lL7XY8GQsXNK1Rz7rLTU+zwyXdBv//wSXalVV5tgwKHGZI3/3SVcwq3Dd3SZioziagAW3aYw8b4ntHwCYWeT5Um1ZIGBUX+frptjgkkZ1Pm9KrfoGAqPOtjG2ClnSoI4bt7aqQihh6JEIJVyxIZQsX2pv7pFwSYP6t73Y4JLLq/Kh4JJL478X2LB0W+qRXmDD0m1hfVeQG8MxclVBbmhtWAPsqbVhDcAw/mMNwNUjEUp4eiRCCUuPhNxYeiTkxtMjsQZg6ZFYA/D0SKwBeM0jEUpczyNPStW1Mr4sDaFki0By+n0vkQgc5OYgkJzyv7dJyxPkxiOQ/L1Lav7qNuTm3CMH15JAbjw8coANcuOxaBvcAQS58ciRQ2w0csOEy/Jgyw42TLgsD7YGvS2loYYJl+Xhv5VIglBie/h/siI2hBLbw/+e3EoMlJkM/5+HW/mpgtw4DP/73P63dyZLrqNaFJWCCtALNLm4DP//p89NVl6n05YBHZqN9plU1OA60lpem0MjSZAadSvYkHxtAfzvn3+N2AYAdSvekDz2JbLQqFvJhoRnuFAzkqcTQDOSujEjqRt2RlI3zIzk/g1kRnL/ptDCFk8oYy5ssSlhQ8KmZIiGhLphNiTUDTQjqRtkRlI3zIykbnCTNuoGOWmjbqgNCXXDbEioG2RDQt1QM5K6QWYkdcPMSG6XQmYkt0sxM5LbpZAZyaYkZWFrtQXfe7mshk1JiYUtPbtybwcLbk768MPrFt2Q2Au1Yq8Hu362pW7yDYm7Vxlq/v7hgbpJNyT2fmV9mYhM/1EYZmS8bGV0+/5wT91EMzLojCubGJHUTTwj3fp9ZUOxiHRsJmUz0j1WKBWRiS4bZmQKNlcsItlMimZk+InNF5ONo5vkwpZz5XTz+Z991P0bkyeEqG57PpuypQghqpve8dkrZUsQQlQ3teOzj9mU/MmVLV+3cAqX8sHfy/nryj+bkvLd/63UKyK3+saRX5xyy6yQ/Cy7OnsZkPaA2S5OuUtl5N9azaUmWW7UrUxGFi5ul+7PSF8fW6BusqvIdcpTN8CMTEvJhRnZR0YmzgoNM7IP2dKwLczIPmRLXDszzMguZEvEtjAj+8CWuORpmJE9ZGQqtoUZ2YVsqRtDhhm5vYfZp26HOZ0Qua9tpXFoq5Q9n89WFNtRTifE7WsHaWhXYF81i6bkyqGt1Mg2q/NjqZlNSZmh7d311+pOIA3bOp+fSjAlj9GU7Oj+5zU66X7+u1/UNrkF6iaYkc9JF49NnZOweeqWl5EvZVM/nZnNHN1CpmFLTcmFGbkh2/OFn2N9sy8ycpPbibqJZaT+feXn/IzcnL0F6pYz1/YfJl4xl34PNk/dcubasRc/MiVfUTsbwcFteN3yZXuFzcal5Foc2+C67ZDtlTOzzg9J5QQHt8F1+yOLLXJwOyf/U0/dhFZIXLIy2/9UO9GUHFm3XavIwticLLaRdVv2YHs5uMVhM8nxGqhbYkPiq9gmezJhaN32yebysbl0TU/ULUm2FGw29uDCnByuJ+qWJJuPvvbn8xq/6ZYUkXnYFkPZInZuYhdJnrlFKZrzPIbluLKd4s8WzAkbpTdwypyVijzHl/UYDXNY2XzsmZBZza5knahb/LrWpxNb/+3e2LUstMynn4ynW+wNpObTCQOlLlFnS1PLe3LlcLrlPYawYXnqNu14MlqzysI22CQg/8loWNgGi8mlErZwfR6ab4htqJiMfpnNx44k7lKHZoPbUDEZK1uQEqQdtoFiMl42oSsdGqbkODG5nGoNbT1gW44m2/5sC4LziNPBdVvqYbtzk5m0Z7/hY4yuJOENkkKOtFwnGSYml6rYLlM31xrbCDGZ8rpW11XlYxsgJpcDYsOPyaR3Iw+DDT4ml2NiA4/JJNkGwgYek8tRsUHHZJpsQ2FDjsmlCrbbuogP0kcaTkfllijbKf8Cq0XWViXw+trlILKd9mohdxRlOQmUOYZsmdi8/MEvmRdFg8bkUgdbEMcm9Xrv5RCy7cYmMrhJvrTWHEG23WNb6IoZZkymy7bbNt8XNEhuS21sKvQGDXB4y5BtX0guc3fMAIe3rJlPZsrdDiP3yAwuJk3u16x+90ZJZnAxuWOZwQ/EDCwmzb5vGvwozLBiUmBNzw/BDIqbkfm+D9IZUWThVLWW48j217pH7fa/1b42MqDhzYh/7/ADnltNAj/TFhlOTC6lvn7KraJmLbKqPy43U/wqPMm3nYq+LTEUbmY5sfDaElJDbEsMCSHGJGVD5EbZILlRNsS2hLJBtiWUDTEmKRskN8qGyI2yQXKjbIjcKBvkNICyIU4DKBtiTHLDBpIbqSFyY0RCcqNsiNwoGyQ3yoY4faNskNM3yoYYk5QNkhtlQ+RG2RC5cVkLkhupIXJjREJyo2yI3CgbJDfKhsiNsiFyY/MPyY3UELkxIiG5UTZEbpQNkhtlQ+RG2RC5sfmH5EZqiNwYkZDcKBsiN8oGyY2yIXKjbIjc2PxDciM1RG6MSEhulA2RG2VD5MZ+BJIbqSGCY0QicmNEQnIjNURujEhIcJQNkRtlQ+TGfqQ6N0YkZBlG5EFjkrIhxiRlQ4xJ9iOQupEaom6MyFb1h7IhlqNsB8M2ZD/y+VXQvgts1mp9+WO0tken9vTq9XVdjTFTl+TC41+j1VGpPRJ7Teq52r5y/emP0eaA7YhP4tWFdL/+FHOwdsS7PeV7waaPFJH7mP0XluvSHptTR6EmwOzObVqbdiQJui2E9nDBTHvZorAZMmvaVuZhA49IaWjVufksbNDUCjC7VmvZnBuZWiFoANiAqRWDVhebz8CGS60gNOOay+aGpFaQWfWexLrUlgSUWmloNVe5wrvZ42jUhKBpa9VqJrMqa3UzbMGtqdgQqYmJ9nM7UulGPcn7tZpxqAmuYK3PV0M1wfb2G6lhqIlBO8/rq+vRANu7iHwvGxi1/cy+uJzPdn1zSapjCy5ZNiBqwe+chX3XPF+7kLe/5MozgOCSRzZzuGh0s10/7PXbqq3ke2pvZQOJyP3MzpdUvNasIo5nVMUWXLpsy8jMtNbzvexsL6ViD9SoioPb1rczsBHp89tElX0fxFoNW3AZ1HqXzaeveKhV6fl8+c+64+aVaj2Jz6JmBvPsq6Nf995Ma+osbwWXRW36MxQ0O0nVWmXmtvkVtw4ku4EGtFnw+UeqArZtaJvHI90ozGSpTbb4JsAOaJNxgzC7tI2iz4izhZcl90C7ZkEYgdmFmppESxfdc/ObrfC2aKtSVvdxK97uhZDzOpXE5upBe/PzM1pr3exAWZnFq/Ms/qxhXWqLO0800/YcYIl1/XlW4tSmMpfJbyEzcbPILm6e3LsVc6G2TlMFbL5snqjYuX/zGyc/3wIfU6rM2w+Ez7l++HF+uNVXNz8tLQTre1mk1KtGXvw+cldvQ/j400sbaGvqJourMLRX2GaVPKBEfmeToX4F3UKRM6halXz5mc67VOFS/lYJJyWmPGweDlm5Me0Dtq/Tr96HcAoyAWKmTGzFmkn/++QNBrS32ArcG7LjjwlAmpUd094ccW1K7f1vyJfRzJUZ1KYKpfuhtvUb8hjMqqj2borbiNr2b8h3Ho1vTuwDczMyke37RiZ66qADbkYssnPBeV9lKFDTNA43I/qn+ParHz24dt/k6oRa3E/Ih5iVtnq4bseLrTJT9VK6D2rx6l8XAhrb9W2ZMg2QlQSnTenIvi7khBawqqw9Rh0HejoP0GjmaRxQqamXut2Qvwugvpfqs0XK/1r29siCu11G6Xm2ZuqwXj9S4dW3sUpd70UwAC1SJrEX8+gumT38eTbnNA/EUmkkswmzTPWZSjfCwTJ7uxWmi6aE6gGcVhN0mQbfqDk4dGi/udX5Rm3B4UObHo557+ntgcBpM7F2rQIwH0FNr4yO0BDRERogOg5qgEMd8xGQHKEhzgsIrSNw+vr60497UdiLj+OA019P9P7Z1HztJv5lePsfyzakh0FO25VXB0s5qgOi3MNiKZFVr/8DY4M+r+XQHNYAAAAASUVORK5CYII=","e":1},{"id":"image_11","w":212,"h":183,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANQAAAC3BAMAAACYkG3fAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAtUExURUdwTA8RJg4QJg8RJg8RJg8RJQ8RJg8RJg4RJg4QJQ4RJg8RJg8RJg4RJg8RJj488RwAAAAOdFJOUwD3693MErqmOSWPeWNOqMvMdQAACfdJREFUeNrdXP9vU9cVv4n94i+xKxwKJFCektCwNtuejNM2bceeAriI0unJZIXBpk2mKimTOitBWliZagWQOljXKEDXEbZWyappWqtZCYyuGlKUlJZVqIsITGLTRrT3bDk0hPM37Nz73ssX54vfs7n3h54f7BfHfp+ce8+3z7nHIQQlcJoIku/Hap66IQQppALAwz0ioLqgJibDNwQg+SB7mfxCMQQs4bB+CB9vQZQ7kqRO0Se/MsUdqhqetJQb5Q3lhQH2XGVBcpSzRh97DijTvKEmc9ZFJpvgDDWSty481kryk/F8gX3wkwl7AYnKe7POZsnsZnGG8uh2oG3XOYfcKhgq8DCO0aLNugpCki+UX3ncvpJ5R9yUHWelWVBeMmbY1qDWco+39hZpj3CGCss2QnqGd8BNZfssKN5akXPwnBUuHuNenMk5U62RJu45fxCaWaoar+MOFZThWyzy8q9kyKcArehcVXoff6xLAKuH0OzbBJS478twV4S1U7ktZ2ma7BOBtQezVUBOioCqhvvoxEJWkKQNQipzCRFQPsz81VbOv/0E3wJeW0WImR2DAOu4Qp3J2bXuODJWriUNrZ08OiWPSu4vwDUeSnIdCVPyGIQmovEtdWl5q2EmroRRMmFwhaqETqRbWNhkacXBlYb7YQYXr5NotYQ98/XiPqLVSWobJZFRziuYJDdzRKFrp/EtCgNwD1PyUCON75l7nNkqVrpaXQuFmshzJltIS04aO2ll7eFN7ORpUi03U618vIndBAamNGPHIeDcnamGeuJl+gSUIc4loZrHtM9cSuNLVwNbtmN4H2GlZ4ZvnXESDitNWHrStZvkGi4kbYqcyOE2UUpSsYqrUchRKaAOkHHqU577fLkqGvi5R0zO6uNKFjw61mb+WILIGACrjQRXKPp4c3fPCGL6ZZ6O5aVaYZxo9tIWjcbT2oNmlh/RX1NmLGos/SbWOp8zSA9oVQPygBmd1g3jRp3Bokn6SAbIzZUEH8U2vfBg2Ipicrku/a9YWnizCXIJkQDshtCFbfSntQ9EsXSttZDPqRtJKDIalPUX+m+B1YJ/QwGIILbxWvlIv9Ws1Ks9PpandpGBrXTvgAWOFxFk97/3HwHQy47EYQy2ZvXXe9+Lqf+TVsiaqWva7AOs/Yz+eBV3r9w19GYvYLqiUnEvhBZSvcX6+zX0t4AKVieFkvRvlgk1toEoeQtKUpIYEnVgNPIhNJJB0Gdd+ta869IkFSWTjImQh2YI1p03Iakyp/ZB06cAz8+98/fl8i+8u8807B/NoFYBzMge1iyUICszA5ndVRUOlVWyy1ima6yfMLm6Qx5iZz8qqzzRm76+4L1vQ7acgipEmeKL8DS1g2bFSAzTTitlJrhp8LUCm0vDhrKqJdzrgKb/gYTk5LXv+JUNTFXUMgO5Qh18cjmtcpPe49Ls3EL1sXq6N0dxA5dgQBfBKL1QDLGiTOrCjaH6pM3zLH+CpGD9Ev6ulrFdksKqidA22kXD/bHddN/Sf/8+uQyLT5mMIKhfxscTdqCTUsvEhosA3y65YDdPYsymlh15caeMpTOUPwV6qSzWC2afWKmnAC27zFeH4Znl7EiB7I1SHctsVmh19PjiqrmCAXn54853Sm4QhVVzqTJ3EW59SGaFYPtKJ+6fAPN499K13fSfyTrMw23ouHTrNGMFk0bPKClNBh/9oczOD3qbMB71kCrYSP16xQAU0BYHEgeCFXSGrVlvlKTphYa7dGL20G6ZRVeg2T3U4JPku2zq4r2kxNTbh5EqVYwSYzDc5d6D2zBEUB3GO31mmjrSFpKLdtCuguF6u7SodRqoDVSYuvgve61iY6V4dtD9YI1WT2njAAlGbqTtUDHmgOdXq4uyWdEFRM8NKVPvdq2VlDU2fM7BB99ZWA046fpMMadsgEOzJ8RheaOTT14C/bArqLOMyG3Xd5NKsAJsVRFTn/Nk46duoKz7xtEE7WU74XBgJqxB1k1l6JdZddTVxxq4ZrHitKeFppFzk//TrDU8OOqX6+287Lgv/T0F1rogXu3MGtIDPrufHwTnB52YUNY7N3kfja8k3VlpQ3nc9IoxoTg/JxpkWTCVHLcp6ZirnmAKYKtDvcKrz1F1UgOabvlVKufGggNIKrc62y/PhjA96FETcjOYc2iyu0N9P2I1O8I6HiWpPAnXhCCpsQTscztdR7FMZlnM1pPkHBw6mfPBqIfl3nbXJ0uSinz5Zw4iO+WJhjJdaSSQknbSVrj7FkUay/DWoh9Tk6xifeYMZpCggnlBK6XVjjYP2dcTxVNj+GBr3ySNT788lvA7C+uF8gbtqhivrgiWptzU10kytbZHR0uBItWsZ7P69XmvFKaYEapNMErUaAmxYoFcQ0sEffPHzFLeuv7jg4UzI8epwwZriX3kPVbGoMKbWyjYpp3xWIMcMWp6FnUDMQ1UGfvtyTB3saJQLmwHW/SnFxPUJGUjOfvoTynvWEn6uw22eAhBUmrpBoGesPhqucNa0n+64/FY5NklYjYtySpmJsyGDBpgGylffvf5kht+HKPDni/3WCTbA0OEm3jRunvX9ILO5pomeB5g0d1J10/mgZGETI5wFG0KnWrk7jDQeMH3aJ0S4BuZNf4jNUOYUzfyhPIC5ElmFebuHuTgUZ5QUgrvn663bD3JE4rs/xzjUb2l4QDhLRYU9ylcGjNWWf6c4A5FGySUEGe5I5Fe8zQuk+cP5TG7fykBw4Jh89sp2j3+UCTN2kbqRgFQVZD7TMAUs8Ve9Gevc5/NtttGKG0ioMg/ZdB5D7fPlnEd3ZznmBbYxpAoKK9VNwkQj4hxX1MqDVFIpF0gVParqJXnKwnl1YVBVekJUVDVAmozu10kLjBxH6SbT4yFJRHWcRIkWlQYlMUSREj6f8KgMl8Kg5qYFgZ1VlzCEhhvfXxn5+dLSFzNKSniHCt1XxjU8bwwKE8JZwclc+IBYWrJjwmDGp8SBlXBe05/XnkBTcLUSgukCIJYPl1BWcy39Fh6tL9JLKCalsV8fZPKRbfjIWUkLcX9NE+pcsvVaMNKUtTAAinzC9JlE5trkeeLlhiyvqt8pLA6NxS/0hIah8tF+sE2egJSvMY4Avqrha8d6D91h8qp/l87cPLbqNM6J8HAfxD0zX8+bb/1wK/++HJLYyQSkUHHx8bGlpb4zo6jxz648sWd03sXf3z/9ZfwnZsdLvRLAHoNvWU83hJrkGE5QeCW+Csf/qsv0J8g0vk717vjO2IN9Jj9J45j4fvzbh+p2RTviDPZ0RJrbIgsgo406vim2NwvHv6Ti319s3tHrBFvW7PpiVc+Lti1t7648sHRox0dVOXGxcA1j/7ctWdKB86fWmoz5sve8//9W/fLbJVRs6eOfXjlH5z/Axjq2r+XSP0LX/0//0sQTNgDQHUAAAAASUVORK5CYII=","e":1},{"id":"image_12","w":205,"h":179,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM0AAACzCAMAAAAdSmjqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAABLUExURUdwTPDCsfG5p+7Ov+7UxvDBsO/Lu/KzofG2pOu7rFo+X+7Vx/G7qu+6qVY6XFY7XFQ4W3xhd1tBYK6VmlQ5W/Ktmu3Vx1Q5W9e+t5KfY8YAAAAVdFJOUwCR1Enich377DrnuV20w0Qg64XnqMma+qUAAAWASURBVHja7ZzpcqwgEIVFQETRWRKYef8nveIy4jITxw266/aPVGpMUn7p7sMBhSiycb2Xj/J+iVDEJXvUUV7hs1zLRxcZeJxr9njgwSkfDzw4l8cwStA09xHNA7Sy/Y5pQNdaOaYBXWvZhAZyrU1hICdnJjeAk1PO0Pzi0TQbeMYb0KV2maO5YxI1ZI0DV6OvMxqd4XHRoEVtdsjBMvts4ooKB/QkZ4IDezFqjHOPMOHAXh0YrKrBLzU77vwiSk4NVOJJTs2ToVnEHfgcDLXm+BwUtfbSahzJuaBKzqvWhkKQGIpHCBJmTJ4gEQILU+HgEIIGxsAstokQ5A0MzOS8aq1NDjVdUNC1dhmkxhgCegxtVPoFYxjsMdTi9IVmTBJBb53coVHA/drFTQ1QVXNq7enSGOB+Td4GNDQCXmuD5BCoyXlmM7UGtXGUeba15uIAHXGs07y1tXaDPuLUtvmZyYbmCVwGmiGzbR231jhAmG7I7JTgBloGiBnhPCGPn+x188/bCAegVXMHzOZ9jwxwqTGHhjUe5wduqRE3OW3vwNXowTSg6p2Lk5y+1FQsRMyBNU4VP3biNio1GgttI5Vzf0CS6nIgrMmIxpqc7MdVNZnqLsQEh7eglpV490IJMzPJ6RxBXWo9zASHu9feJs8jTKMEnSPgSVQM7tfFkSMWe5mHBdP46d7fiNH9pn1ihJ4Jj+khMzCmcHVgesd8vsg+9Na5/nkUmWNvWH1/Q6SPLD6rbZbm1rsb1nAIrZy7LSLygcVjtb3aZtA/P2Un0Xpl+Km23qEN5eD5rmmCxpmTtP4zvSF8NM9c38jPNIvzdX7zzKrAPjAe0kPeszBDtsHY9JzLQ0cILh1nW2FOL7eRDDiVJ/QOMCeXG3tXaELHkxtbJ9jnpScxb3AY1zvBnDj2KPMGZ65pQh977ISAzdfZvnFKteXvfADZmeaM9NB3rmbv1JySHjLxz+yg1JyRnvbe+dFdc056pq65/k7Qg2iOTU9HIV849MDMHJ0e8hoqO2OTb5zV+EwPHXU/U/ZreizOccZ6dnpD9NFxULnRE2zAieWWe4E5qtymK7f6rDiCxx/NATzUI8zuPNNCywVcnny8ZmuoPBlnPx46XAxs3uLiZ+PsxTNdTWM0UqfT7MSTjy20yGXCtI/Y4Qkw641zS6MSJrSn2Ao0HWy4P5gaqFA7+hoRe4VpPFy8MkfEj0c7qOhoqDRVhlYAhUvTdBHhSiZrGyfVQYZI0ziu9EEVn8cl6a6kMVbo0KNYlhyWM8ZJ8DT6r2cEHQ1nafgwWi7SARJRKgDQqEWlRqvJDgCYPxqnm6/ZF4Eg0MRLRlD7jmABgUYvmX/aISoGQSP/XBuoYaIUBM1f87qk3TYkQNAs3U0HgyZeSAOj0vRCGhgqoBd6ahgKrRfOtalGIWqwGqdYSCMFJlEDghOhwln+0FSmaEQt+muDACxv0/o2EscFAlFzMoRB1Pr+QSFqr0Dg1IDQSFQ0FBWNQkXz/SPfkC0OQUXz/fAZsr+JUdGkX9MEveTxNU3QSx5fm4GgH7NJTCb6ezMQ9IO2r81AEjINRyXRBJVEF6gk+v/KACZrE7SLjlCJWoRK1L5ftSGoaEJ+7UaiapwVNBwVTcAavYYmXFVbcx5iuI/cV72fn6KiCfah7rq9E6HirNwJEijO2n0tYeKs3qUTJM76PUch4mzYQRUgzpaDq8PD2XQMd3A42w4VDw1n4xHpgb0btfkUbi4w0YSUnnSPc6gDeXVtty38AfDselwE97z3ePejSSQp4jhN7TGEoorU7saMCxukCs65UpRKmVQRRUkipaRKqepze7n+udj+fvrVOYZ2zyfxe8z5klU7WYHWkA1ixVhDNv+m5v9E1ATjH6aTkLYQfrGnAAAAAElFTkSuQmCC","e":1},{"id":"image_13","w":109,"h":142,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG0AAACOBAMAAADJBptJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAtUExURUdwTA8RJg8RJg8RJg8RJg4RJg8RJg8RJg4RJQ4SJg4QJg8RJg8RJg8RJg8RJstyczcAAAAOdFJOUwD15b3SPY8ZKQxlealSXZwvWAAABI9JREFUWMOdWM1rE2kYn7ZJkzSm2C12a8Wh9XNdYVBPu4cNxcPqggyxN0FKi/dQxY9bibp4EA0RQVBY2e5pRShVvOyl+LEXDw1VD96K7yStouX5G5ypWpN5n6/Je5rO9Jf3eZ/P3+91HPW6+fCtk3zde+6CObGcFHbHg2gFC8lgfSHM7BoIgacS4Z6B+f2t89eZ0NaZBLAegN82Hi48g08JcHU4+PUpexim1LBeCErfngvemhr3CvZ+/2MC/lbCcr5piVvWG1ab2WbaSe0Jr8B465952Kb0pmlPL7+pgmXdRvuLs1DS4LbE7eqBQxrcufi/ZdztGlzZxM3yVzU4vxF/s7Kuit7O+Kv+QIFLtUcvWt2gwFVhwTZBUYTloBZ/lQZFn3GRulFkaB+WjYrAI24JceMi7iwgrQ9GFdnidITzsKKBrRKsAKsd4VKoSTKuinYvGVdEU1j0S8H9iOLGOzpeWsyXRbQF5eGp0Mq8Bt6pFqRWhjquW2qEc/gPdwl1m/PwRtJvJDN3ou/vNyUzcX/X+dGZ8Zr4+d1VgQ38jEcHDggl+x/xe2zYCx7Rzrv48J2HY/iHeb7NFw3RXb1P/DwZIr7wVUsFT3BL2mvW8C+zLLU738qR2s/d4FK6aAg6lYWPbEoPkVk0zjJHalStcMXe65KH8LmoT5MdqwBMEeXdJuXrbi7qj6jUjDrjVCfbOW7ApdgxOj5r3HYV6tssM1KY0zk+zcrzbkCeLg1NZjuaXnbT3DrvGvJ0YZKRtVeEnxh28QPxm9k5oGMXVxItMB/Mr/R2twxeQxdDeTjCsgQsCrknoRJtljgShHXi3OFIwHJiqwtxWSayEcwCLx+tz6fdSC7vq7DjF6wmcDvaa9+MRGbiyRKqVhMsSZxr3jrFn2AGH4iy0+pVOQ8GZWbfY5mZgqAiC4JJq7MUVYLOIjO90FDJx2HLgP0K3GzczFCeVzoxM6+6qkhbZp5TeaXLys2y6kplMbCCrjEzB+8tobZVFYUpK3001xRVYws1za2B/8GujpriPsv2ed2oksXOA01yFi2fZ1gas2nmqJ0/HzRmztgtX3EpUl9XKq44JXuH5KusxVPIcO6XNNlGYSOaRU6zHCY6J+VrO9QFi/KdSBEq2IyR0jqPUtg6SE3pMtpHZJyPNvOyhNsCO3A+WZHEIxrgeQGXJfTHpODPFKFxqwKubqaI0mJxeZcQj/d53En4g6BcLC7jByVqai+zM32EzD6uHspkdaa5+uujZVKG6xMT9ATPMOK//YI97rFhxis7mKOvMryR6VkrazUyV7jRUSX5OyOvuFuKgheU2Hp+SQVhhL3VIQZS2uPJNjU4J7ggfNFKpU62CytpO7rdkNAfCxj9lLeL2LVdSq+l020c8Ec7dkYcU2H6Wpr8H+LqrD2CXrwGQ2ksb+c4j+OemYaDCvLl9LjtG4byZVkBczJFaJXsKRAuADfX1VZ5WnBBRfCjEE4D/DLzLeIAxx3l6hsDs/vf6OmNII1j68ZYKBz3HD0Syc51J8G69j98WWaw5iRa11+MDbgDe5ac5OvupZxys8/PMuf7sOzAxgAAAABJRU5ErkJggg==","e":1},{"id":"image_14","w":105,"h":138,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGkAAACKBAMAAABbfHklAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAYUExURUdwTPK1o/Kyn/Kum/Kum/Kum/KvnfKtmiQgcRMAAAAHdFJOUwBXkd65Hj6xrfX2AAACYElEQVRYw52ZzUsDMRDF09qP64KHXgWRXsWivRZE9lqo0muxh73uR3X+fSti2W6SmTdvzvtjXl6SySQbAhj3IvIUnLGU3zgdXNBC/qLbOqCR/EdDpDrHG5HqrPFApDo7QqQS2YDU/IpqXXN1iTtCoMgXIRC1YyBQBKKGkBQANI6oDTEskUeA2kdUDVBlRDWMGYj1sRnSMWYgE7ZPUFvCDJEDYQZAjSlqTlEpM2w3SopKQUKZIZQZnXv3Q1RS4IkaVusp8Jf4ZgRae3lMUQuKSkNGoc8INOphRqBxFGUgoQS2lMDac0Riw5pTw1oyw8oKrBkv1GFlUwmVqqVS1Yzt6rBytqv1KS+wYbzQOpR8KqFStVSqDWGgJrASwsGZMAKVVB1jhVIIF0qq7Cl+q6TKVepZKW6BHzqU3CSjVzEi0ZHP1haUamlKE4pna2pDifW+s6F4EU7XABU1DEcAimraOwINFzykL5rkCQQNJ7nCKErgiRLYUAK/vCswsbtmGDQwHhzWwHhwWIPdBQ6rwzqz61i2cNXs7ZKqIcy429fgaX+1Bm82aIXub+PJAT3i+jM8CX7Kc5wqR2TpXrgotWWoxBm+dhcnkAoM1TguI/oRSQkMlMDgLdSYG+mO0KJq/AHDfMArCS9MqnC3q0p3vCS8sKjC30Uq3fGeSRVuCC/yN3D9hjZiBIYpc1PQlm/BXAbVh5aKSZU99vQ3nVwbZbyMV8zzUUai9QiflGi/cO+IVMn+C3lML6lfCzsmVewHkiq6BqC/xo7YrVPTWAQ0eoY8O37dXTS+uH4ufq5+mdUD8u0Pn8J8VklX1HsAAAAASUVORK5CYII=","e":1},{"id":"image_15","w":228,"h":183,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOQAAAC3BAMAAADwY+/nAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAwUExURUdwTA4QJg8RJg8RJg8RJg8RJg8QJQ4RJg8QJg8RJQ8RJg8QJQ8QJg8RJQ8RJg8RJlax668AAAAPdFJOUwD68eTWxw20hx2fb1kxRNgG8IoAAAuiSURBVHja7Vx7cFTVGb9C9pV9wOYBCLTXXRLCQ3sJCYL4WIKodACXBEEswgbKozBUCYGCWthIoK0WyIJ0YGjFJPgYGZgQHqIzVZIIQunYhjAtaO2YQLUdOp3MvZsMiLRfz2OfYXez99zc85fnj917k3vv737n+77f97jnriDwGgfe3zB37qZybnjGf60bL4LszAnwArwwRwTIKn6xTKrlg/i3SiRg3sYPywWH9xsegPZtLlAmbKcz2tnFAfFKGcgTdlCr+WdgF+ivxZMS5B0OmaltkdAfqnRGtJWBMr89vLetVTDBPfoiXpYgZ2dkb8WCgGCF/+qKeEaEgvaoxI+9JwgW+FZPxOMgT4ohm4MP4U/phr6Ii2J381vxl1dHL/lKVF6I2T3rpHsNim6IeyX57bgbGEPnuFPWi2XNHvnduBsIHqVbA6BdH0RHKcTqcZVHXhjavAuO6gNZDWPjRIYHw9t60c9lsTvGO6wlMCaiQAPoEr5sHrkpDjGGEMwwWw/Ieng4Br8UcmNuwKYL5F4xhmGspZATazB2cYoO1uqVj8bOahwighzXJyhftMbsXIWRke2f9EQULFKfQJ51PxujLCnKop97eiIKRmlknzCNM6s2RsjI9jkJcns6vtHTF5DHsj86VRCZOM/N8NZWFC6b7jjaM1o7oqVkk2A8FpYmA0IotkqAyQn4tC8gM7vRdJnWhPb8oai/vwTk6YmqAW8fQLY8gj5Mj4dkk6vCaszenPDwvoAsxeay7H66s5iwgBGpMf8VQS9IRx6m7KUhb/NibrEfBHlysrDo1W6xGSRM7aaQ1iyEb1sLyoKkRZ3vfs2QzYSmL1LmbBtGGCeJGimkdo4tJe7RQOPD6VrBUgF5r6Q43ve45tiYQzVEnaSzSbCs+1HK7MY/SyukgfihTaQEsBghG1OfoB2ymZQ1hiA2l9Wv1vd+vTrNkD5C4v1uoAp5W6Fz4s5eT6B1gpYS2UkSqTduYkNVZqRxxtaxWlVJg+Mbw21eyHkvrXzz+xohl9wmX18OqoPB6aXh9Voha2hR/GUBdDWld4Z3uEZID/XHxaL8QppnSMM0Wg+0hnLw8IUsn/RCHaBRysxQtdhPoYq0ny8Th6Y+A+7TBtm/m3430Fu/XDRizoTUpZUBNNL6RWqwDtqa2+LMLwpYUivrea1lUM2g0PxiQngNJgm+NUKjnMpbOhX2ktbxy7lfCz4amV+7RfLwUYLQMVIwQSrP87F3RPaVANxolWhy1XE3ZoUstLMLbXmV5O0AB/yAFfE3IjhBXijRfKMDp1AV2ehjV7CgvX+KptkeZlVmivL8z7ZKwTkhK0KyGUvw7HZkO8cKnqS9HaOfue3jxfNjqYT8kFtiK/JjFdYsrHa3L4E1Sc5bBY+ogfnp+UOHtlOyWQKk8LB6ZHptw//Qjoi3S6tsrnF26WaSWsKrNKUPaDw1XsT98RnluGCjRat9LXQRZTqQGbYp+HbGtwrVt4WLSejgY1ARLI3VCI+MMa2IQW6HEAFoVpqFijicBNknoLr9BiqVv5ewKpQUFU2fE0jAxw4dmoqAc5s6qRDHAUYASXoETy0lskzkmrYgEjmYKAaUqhFyhQgTSYhYXSlCro8wq1WSZwh+KuafR/uJMy5F17Qj9rEUJuh7HIeu9JnH6oVIZ/UkEnQg3rgET+LAQKy+XxYVoAUbsvIM+ued8eSr9GMqukg9FEQJ5awI5HoNowiBkT6OrVAhPORDO3YFldQ2V08x90qIgtOnGikuyzgBMpLP8nQrrZpvkYSYhA+bCwHbvp0aiFQMkbFfgtzW9IUs7DEj9YBkcoTuwkMcxk9UuieIwAzfdBy1H+9hP/skCKpwyWvimJ7NJMgNRFuPo8P1lM07BPPEwIyNpT3aZvtEkFWQqy3Svo1SrBQlLruEBfKPxH5KLnv6ifEA98YdfwVAfkYF0b0MsxLQSDBs79WAg0ONcuS5g9Q+PIggJsWGL+N1JOMmVUFj8J0VscUXFvMvoIjDcVCS3SKxD7MypzhcX74eWFm+/MBWgOAHatjcT82/xzBBVyDUI1zoR0aDmEV2k8bD7iFRnUvB9XnrXXEPaNIYpmiPOj6hoAZyDUYJP8axyv7HX1eQe4s2zNBUIB26xKyXylVFxoZg4jtcCjdINEKmbxWJU1pc+EiDsyoceiSYXAjgnNCkChBp8oEkzurBTSWz+CSee+yOglXGwvhoIS88h8IMuql//+ojteF/S9LUqQU7gmFygERs7ByZMrYmJwkt59e5ALpaBYZhlZImiGYRyfZbckNmkkZa4W2UJ2SJxdOK3MhklOlMiEKLnDym+qMMQ/Iri5j7fqnylkQCedYTOxjTY0+KRHcpJXSSgpOYvVZ0yjMteRuKRri3f8aayO1J9YTBIcnRJixm9ZUH3dPLhVKky2PlrIhGX1cgxb8bIWzNdpEIbPwPlhXBNTPXHctSZ52Z0B0hBiUi11QE13yUFdLfS9bplasi1B9hxamIYJurGBFNYi8J2dVwRXwJYFz4jyW1GqSsU3q5WbPYHTIkEO+OTM1sdl2axCG9dtPofDZD0BcpCRpR2dUYYDPXCrlXjbSRatEmwuzmSK6zBN3oWlZzHdXrMWYR085ulGRm0CeWyG4NSru5mAnR4lPSMDsysz5k2OZIo8MhFZctYiuT06of2uBhweGehxsF1H6W44TQyWSwdm9aaacZxcS9vyA+SvhnCf7sZFsGcg3S69R6lXbK4DVBQnxO5B4DmB6+oNw1PddqDhP/YpwTnFYakUoH3MMCmSh3TdIfGx5O2qtQanZkGfKafiyQJuhO05kdIQJCHD/F6LsVyED5wV3jGBzEI/8sbeoPLSFwwMA6mGfsh1j3eQbIq2mwQPTYKaE+qwIorb+IYnXNbNWIKJFqUqGDYZQeQRmKyOdlBOdVH7oqYKEKB6YP2LcAbVTUTRGsTtVxJAMGq0ld/DgD+hjkStITbbw3cTekN9tRNTFtSJn7RZhkIh56SS4Sb6mFbIOxKh1qmHDGPTlgJYlBJsph1T4ttKmxHTIrSJmWP5WjE4npVroK1MbnBvih2qSMeqZNpL7x94Bq2+lW78WzaVBha+4i21F9ooHmebvlJibIY6D+8ZCNmKjRE2SqCkyiwlCheYNE1iEsiEYvzGM4rQavRKlhW5PVAkNZTtuN0BAvs1SwK9S6ZMR+sqd5YhelpW8GpSr6pfE5F5BWhHpF1ifp8KTBPwBqmuaRcUJNv7RnmneY5dSTYpC5Dq1hcS3LVlF5lxVR6GBYgLq6EpTNzIgooVyj6vh/bD77ViFkH2FHRF6iLqdb5RIB8j/RgIi8ZJDKE9x5C8q1IKL8Wdf17wldWurmDYkckztkA2N41jBOq/SSPhht8ABvyAzgbrJm4G6ydk+Qu8lWKAHekC1yO2/IS3q9P5F8LNX99a0EFV8tb8hMfd6fSO2YU3hDWlXmBd9BfgcZZ7Hj+Psldycx8M9E+vMnvGb+wcvH1oHRUiFIt/hbz328Ieu4W49V6uKtymPsi15ZqUdkasFomVaPiscqfTKuS8BXSEs1AMziiWguxMvReCJ+jlfaTOLoIK8fxMvBnuUHuPICFnEMxwhyoAJ3YWfyAzRekUSArh0cEc/ixdYFf+CIeAZP6vy/ckRsQYDBwzxL9WY8qR9y9EbLcYQ442uOIh44idyf56Qaz51DatzJc1K3dHuh6wOOk2qvoK898Bv4daAgR8IRjNcRYi5PSxUueCDmhzJ4DMyqD/JEJC/IcEW8jlfcP8QR0VaJJlWeyc//jadwFpfD0TmulOGcajo//1/9pqSLiJZk//jdmy4EqMzva7uxbL88MdGiffv5Sgwo5/c9i1tdbvwzbp/GGuTKL159qpC8vpb3cz0Mdf94fG3niOK5Gw6h8c76px51h96Wy96ol9mUhd/Hixty8Us62ukV/CuAcXBZxRs/1ZtEz78z99EiNx5F055+8ffcctTleOiO8n+z4rmlve2p1wAAAABJRU5ErkJggg==","e":1},{"id":"image_16","w":227,"h":179,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOMAAACzCAMAAABM3luJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAABRUExURUdwTO7Vx1M5WlQ4W+/DsvKwnfC/ruy/sfG1pPKxn+y8rVQ5W+/Mve7Ds1Q5W1Q5W+3TxOrIulg9Xlk+XnledZV7iZl/jPKtmlQ5W+3Vx+m2p5//mwwAAAAXdFJOUwDg4CBp/pI85PkQRiDDn8Gl/fdo9viItUfLvQAABhJJREFUeNrtndGaqjoMhQVaaKEFFN0F3/9Bj8wotgiKQNs0c3Kpc/N/K1lJQ3EOB3SRNGVZxW1clWVyQIlXtVqU+PjidhQnRHx58cr3Ew0WwqY8tTNRYQfsowgesHgPGL7r5EXVfowTbglDd50lEoadrMsJQ3XWbwjbNkZPeIvgZtbkW8LwOmQSf40YmrEWKxBPJepKDK55JOsIQ2JcU4mBMa5HDGYI2IAYCmOxATEMxtVuA2yYE2nURanYO08hMYqo6yMS+yNCOSXfEbtO7o/YtrAQuy7bHxEGoxwQu3T0VbUdsc0BIGZPxC4aNY0dEEEcIOUs4x6ZCoJRl3GUq3tkKohDsi5jR3bPVAiMhoyd0SBLLIyGjGY5xvswNrBkrA3HaZEw1t1cOSYlEsbcQOyGz5typ0QFwEimUnXp45pAlh3yNVWLqt03KkiO020/EAM8QJqO05E8iXdH9JyrI8e5xWl/RM+eQ8aIUWaBMYGUqjdEC6kaw0rVfybitW7KWzXFIZfjOFXP5q7pcm+YG32oAJWqejGerz8f5ZshPXfHyESUA0rTXo0BdgukDxnzVHIuf/Zv42ocsrQeH7bWQ3qQMWNU9cHJy5DTDRzlE/E2FmyCjN03DsLVI1hG5nR8ftGPs7VYD+keMWNKCzruHJfBbzQdhycERRiIXBlxnWaMs3Y8Goh1SzrviJSoo4nyQIxMGYeNZAwG8eabjHFOKeeMyTSfU/E1XX911BA7aZydvyxJa4jk7ptPDEYmEX//jOot8ng2i3FAfDzO+grSFqJpKoOD9pRUTQZ9mVcv2upjvJL8ArJK3JjKIBlLazUXhrn8a0/HCR2Hfd1SyLiw3/zUVGIugOzOx246Hvs6vyIy9TZmObmxmdNETSce9jQ+Rcy4Uishdeky7bwcvQq55BJLlTjPU02wuc+jidwcI6YL3wOorInI1KaYKEJiIh6LZsli2Rrhgjz9FGNCQ8Tj5bxoXXcqiwMExM9tMqpJvWYfWdk8DIsvVRSTA49Ri3U6eR7xRXgQx+8Qp5WkZknqSp7Fx2ZR2l1obK/FqaFOY2QzwjVFckhuTlQ2tk9QeyGOvPW5CZi0m1PpcBO1CpF+HneebbGLGp+Ae6poQEZGCzEs51w63iXuiji2HXM9cDqfL5eLzJxv2ZjaNa7TjORRnKmHy31ki2gLR7reY+upO1gBZCpdLmQ9d7c1tGJ8I2RUT90zCwKRfhwExmdKDCrO244Xxj0Q6cQH9A1iFKKKdLG1vt4XDDNR6ZuK/F1hIajF+WHnZ6SrsSBOu05EHHdHu4gzyRpNvMETzBy+2HUEGhXNZI0yH72RWEfUkjUSz+utnp7n24pHskqh3cTCk6daska/Pup4xnGESKn2tieZfS8y1FJ8FmR9t9Ha5RznphTvuUqGpcbca5EB5+ndcp57m7qbfU85YER1vGqMIsKIeBt9qLac6iFdIBKXiH3oLirqWmBym2FjjmNx8z7+ACLDj8idLouJD0TlcufvwW1cZ6qXPHWbqX7yVDGBPU9dInoSUXGBXEQq0YvocNdPPFWiciVinvoidNX6M3lV/sJyrgohMlIzn4TW55tUfbi7j+DUyBWEsDrEZSAQ7RYkgcHIbJcjgKA278NJhT9ZmcKfrFzhT1al0CergILIGfb2aHXUIWAYVY68PVo9XzGF3nRyOIhKorcce1MA+QOMgCzHWvOQgBgpflu19gRZ4dcRUuuwVY+gGNn/jCgY5R9gTPEz2lp25PjLEVJ/tHelg4NhtPcEkqHPVDiMNi8fMfyIQM5Wdq+QSfyIIPYAzPJFQP+M3Pq1Fd+MlNm/zZn6BXTyayoeGZmrn4sh3iR0d3Gc4JbQ17MAlxL6YWTuf7RJ4JbQ9SGZstTTP9VkeHPU7VDuKUcdDgE+JXTD6FdCB0MABUBotUFy70lqeYvM0uwAJhjSIrRsOsAILZgOOMLdTQcg4b6mQ0ES7mg6FEqrsGU6kAF3MR3ggNtNh4MH3PaclYKaZiwcIWkQAm4oSB4SYL+3Yt9kK73hkaD4Hr6TSinZb/A+KO1/oJj2/ziOc8Z/vpBMyvDw/gPUxIjoNXkP8gAAAABJRU5ErkJggg==","e":1},{"id":"image_17","w":132,"h":133,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACFBAMAAABoNk0xAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAtUExURUdwTA8RJg4RJg8RJQ4RJg8QJg4RJQ8RJg4RJQ4QJg8RJQ8RJg4QJQ8QJg8RJkDSbW4AAAAOdFJOUwD16RIp2z/Mv2tVqpeC7EG9fwAABL5JREFUaN6lWt9rHFUUnnTGSXbThdSiba1eGqxCqwzrjzXVqmwralRaLNUHKw5hpVAohAZF8MGhYhFBXGr98SQhFgKiuBh88KGwKPSlL6Ep5DV4h0w36Y/vb3CyKXWTPefec6f3aWdmOXPPvd/9vu+cXc9bH8+8+dOlK3XvHoafIB87J4pHCObRHSvVwiGuAfr+xyJgd9EY49jxY57Mc1PArmIRwjjrLoL/bAycLRTiJI7f+VSKkRVJJYjTu58PAo8WCDGEkf8vLqJTIMS87oGUH+MP98WMVnsvB3GrQB5vb7hu6vOuIX7GxqNRw17XEM3O5sRcFzSIljfdWcLfbiEqONO3OLtcV7PeB7XMjTi26D5Ef+t4UA7pvlcO47ZTiMn+Wfhx6kRfrZSCyhmXENNEiK24ea8hHEHeSgmOOewE8lZKgKCkXEB+NJ2hOMQF5ANk2oN4yAWd1PsClcppeJBG8/QmIjKNrdhDnz45/4VqhLwfYUYcI1kmbz+F7eIQS6vk7bKDoBzNGHmRQ2MANEcNy6GxhZOvRMwaw6C3xBvDO9JdxQ3OdnSkCGWl5yI+EoZog3lZSa1IGQNXmScL+EK6JSOc0inpamDVY6fxsSxErKvsNDIZNiZ5AbyAE0LWWeYelSOZHJQNfH0Sso1NwC58kOBxmd3iifIg9FWRTVnmH/6DjsCxhFHGPywp7BNMYw4TJpevBfz1NIvxNcfSlKRSUTeNTyWpxDA9nZWk0jDqn98WpFLhT+s6fvGeHaDayAxjglRqFpO3gI7t2AcWuxpG9l1Z0pZDoPSf1nNiMd6LsDGYryyeJPgcD9Rt9Gd5yQsKnRkLNPZadw3pTDFh7ClUoL80feFluyf5LQKy701E/qC9GPxBATv5IJDY1XAuz+YDtq7AWYmEns6zSc9zLlZYkx05Bn2OYTgltUaLYJSyJi+oTila9AMNcUE1DlptpznrRuLsFn1cIa61cwYhz7YyCUpfKuSJOORg3sM2SZalyKGuG6c3MMF1+TRi0m4OQbu0gbaTfRmHvtbztIuac6hQc6GkWOw+lcrbMIdpKY4c2jCMFM86VKh+nNHA1fIKtUUrx5JD86JGZz3kAPIKfaZcWp6cIWjI+1o+Y98rSr6gnDtqyxe0xVDloLyV/SoDxCAWI/RFuoOytqBSNShxbY7c/QvJK1Q3WI/4iBAY0W22nSDs8gUJm3IT+4UhVni/ImuABEmHZwJZZRjEmQEzoj50qDJDeFEfxti7aoimUTJV07lyC6ZhbhM3IOg8HDBySz4N+6bUzBrcsFnurpv416Lc++yUM2LhE2vXYN5S0/kJHrbJmc0jHoBFD0LARpFti7UfRmZFjjLbjUmBhl+AkQKVwNDkG2to0pUgaZePwfCiAYhoeh44xz/TElIpK6QMwHwIHdHr4LoGuevfI9OKBWB3nT4gmJCFyHcFT1TJPMRGJAcYnqwStbGD5z+FfB4TfQ7Hju6e8Us+jx3fbUyv6fij/FujeZH8fn2D/3b9Ffr01Nr/Gr758M7la4t8ycyOX+e6f4749BXPf+OvY3li0iZ5z8y9WdUNsm10m1779IlXYJSncHekl71i46V3R9cDfFb1Co/g90tffX2lFyP/AQ0AJOmayh70AAAAAElFTkSuQmCC","e":1},{"id":"image_18","w":128,"h":130,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACCBAMAAAB82N3zAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAbUExURUdwTPKvnfG6qfKxnvG5qPKum/KvnPOvnfKtmpAHqr8AAAAIdFJOUwD5Pedsu40ZNqw1mwAAArhJREFUaN61mr1vE0EQxRef7WvjGFtbOqJxCThOtnSEkFyGCIkrLSKBS4cCaC+Ow/zZ5CD447xzM7NPTBEpUu6n997O7t3uxrmqWkui3uSjS64PROR7dJ76fIee620iYPkPUM7SALSt9Sjl+WwHoFPIQWUiQUJO+/Uac0D0YAf8PADYPeT+AGCP8dBBgoSiBjDHWH/eGmP7CGD00DkCGGPcZljuJgQ0CFXNUMApmIHNQ5dAD1GAxcNdDGBphWUMYGnnIgp4QAEGD3ELhhjnccAaGwVLK2QEeugyAH2MHpVQEBjjmMAYuRTVHlqExhhQCWNUAhuCVgIbglpCQCWMUQkdQiV4VMKcl/BSBXjBA3Rfv60GgM5EINDEmEATGYEmmkLQmSgINHHXCFDsQzqNAM0+JBAYw7gZIMfQFQDyWHoCTUgeRBMZgSbaEkA0EUTCORgC0fQz0Iyyi9zLgF8pH3z7NZlMv2IenkZzOkI8VIT+DUe4Il31LrheCkoCDVZxwrf3WsIwuZ+FqZWrAeV16oTYJvnJ+p6uV38hn2YIQ5Hejc8Vi6E9RyVkBkD0hdXyBsJJTMKZAbABmrHkX7rKXvLsDlnpYV39eEQm1B8JI9TD5X/xoG2F6s9KB0gI7N5QGWOfm1DaGDeePStReii46aCNsQLcO0BC4MZRK6HkAbrFteRmtGVh4gDqhYkDqBcmFqCVMHSghHsHSjhxoISGc0OdhKaDR5WEawdKaAKoJCwcKKF5EyFLKIUdsbi2SSd2bQ8CRBNDcVsvSLh0mIRyIZ8shKTVQJuj6gi+wUS5Up0R8SYelTdRvv5ZYb1EeLXfOSHl7Pqq/n1nOWfjY7BcEUe3Y6ZL6vz26PkL463iO+s0EgiDhOvp72HXBptVAuApCP/lb5qDpBv2ajxn+e2bXh/4R4Wqfhz89htIIdE27w88zwAAAABJRU5ErkJggg==","e":1},{"id":"image_19","w":195,"h":244,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMMAAAD0BAMAAADULo+MAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAtUExURUdwTA8RJg8QJg8RJg4RJg4QJQ8QJg8RJg8RJg4RJg8RJg8RJg4RJg8RJQ8RJrjguTIAAAAOdFJOUwD37ODPDnq9H2CTqUYy5vGncQAACTRJREFUeNq1XO9vFNUankt39kd3N6GFC2LLiRUU9d5OqIZI/DFBjEZQJxVosJGYYvlwc6829d6IwR8bWjVoooaiRo2xQcH4yQY0Ek20KaDBaCSFGz94ic2d3b2tlHvfv+Ge2c7utjPnnCFznplP7W6y75znfd/nfd73nBnDWHS9/v77P/caiV19l3oYEbWt//pgQha+66L6tf4viVh4jBZd5QMJoJXmGLU/9+GrfY/+eryHyN2OB6tElemmvXuI7pgGW0iRO7Do3+wgo1vAWDm0bekH/7JpJXQdGeoIYp97mtYgTUy6R0OfZU/SMM5CTnjDplPBueO8KwzRXXQDyoJpLRd+nrXKqOxoIckvHaHLIBNDVckXeUaHMSas32UI9tBaUDxtlH01ShWQKwZkXxUsTG484srjZhzj8BkFGGmCxO3EnCJlJmgLolTMKr48RKsAJmwVoxYYAim700gaKVuZXiOImFKb4DGlT+lOp5qG6YR+RClN8Oy7Rr+qzkaIkzn91Lui/DpLpB22e1caEUht1DVxuj1K7WqH7c42NRBFy9XWaW0DEYWXjmqaaO2KoIhD9EdNE4WuzqjKqx22W69E6KxJV1eI7Ivi6xlttt3FIty5m2Z1/W1vivAWK2vLwfnINk2XbUcrEc4YoeWaJvJRN5mnK7qZYXVHtQeuLtuWonJrSNsZF92BKN3brRu2tDlquKDrDNOJQspxdbvwM1FIjWl3Aa2sO2qC0amtdCKAyDFtQn+ZVvdFOGNK00TRdu9O2BnGWVJDldJvXvcwekAtn3Uzw2uAq8pl2Pq9jOmolzEEUOi7qKrqJHYC5jp8GVuUPDavbYLf55yyZgCGFUWbrlP1ITSgb+MMVVVFRb8J8IhIdaMZyMjzI/qvSk1VASbyyvmTPhPWUliVX+OQ4dRuVfC3ANpjHvwlRYVFMGFNWv5Zbt8GzCo8mlBMsSe0m75aI+8ofDqKSD7DeEnh8Lx2K+NnuLyxwySfB/hmhRQ6jDCRUVD6GGTeaWRtedwANKF/q53y5JuDmFClhq3dLfmMKufCCYAMWcgw6YR5B90EMZFm5ekkZciCEJDFZtHC7JlwtTOfqAypkUhZVkJPY5hQhVQGtQ+XkiKVAzGhNx2aSlSG1FJsi7QHGE4aqRbQbqICKZAMUSFlwraP5UhhZIgSqYuo5JNnXwYjQ2qRM5+sDKkhNS1LvsNJIwVLPo7UtUn2AD6jT0sqHyr5pEjx5OsFmZDWPlTlUyB1GiM7F+52OFHZWUNKnMc5kOxcQEpMqjbsrI40pmBkK0dqBEa20pjKAM+YSWIKMHqORArVZiiQAvrbKImRGsX5mzf6s0n7Oy3OPqS/ZUgB85sjtSppf6eZcHMU6W8JUkh/8/tdk7S/OVK9CftbgtQErH7XZPKapP2dFk5dMrj6bUhOBeRwek2KlA3Ta1KkoP4Wz6cu4PSaDKkUqjn2pbgAKay/xUjZFaSJM6IkmESde/aRqor8PYxF6mjC/uYdRbcgXeaRJvICuW9aUH+btmCLadJF+tsYo01J+zsjSLQUaPLsX1krPBIE+9sYErCeVYWaEI3AJlHDzoWrIJjXnQbtNDRL0HB4ZTdATbSExW0aNl+r679Q0TBtrL85eZ9I2N9cnK0N5zfW34INtxRSEtaKRogKc7CHihqwbAz5ew5rIh9O8Anto37Bew71+ReBLZ9PhcMhjgf7Ozywy2EfGxROy9H+5tk8EPL3QQOc4EHoR6AtgCHaxIXnd7gVzqlOO8XUOkHeY1fAJjIh4Vkqg00UrGCQzkBbAGERaoG2fN71UvAXW2FbMs26FGCMLJs10GEb5BCngjYxHkzncXDJ8NI50AXsQJcMzrbzwVqIphAj+ER2gaFDyngzCIwzb8CdEeiNhuAhVQwS3w50VfKIbzrg7xN4Z5wI5Pd1aBOZICuV0FWJV6EAoc9U4SaGAv5N4f29LEDoWTiFGAX6X6BOLYcjFST0R+Alg4ft0nqdcw182C51hulswodtAJmZCjymJgKiMK1+ciNe2C7lELNURS8jF2zBL9Fd8LANEHrRqYCbAGMkIDvMPHXAwzZYI/YqjsDHDNu1IUENrkxmWBNkyIW6o+gEdpJM7wmwCrIPyFoCAn+L5qaAQDFLcD7rHOv4DOjuW0UDtf4e9yGYCepmot3Js4xu7EWtYvlJwTKy1rcO3QIzkWLhCcuFysGcRddi1sH+nT0Z2r7Ielazn9Pt7yFMWP/hjeQq8UAkY7XfD+B2+3J4rlP0u5t/brdowzv6jcys93jtUhYZ800ObU73UHm/bgtYmq+x68NLqqsfxs4WI7uP0YpTv+hVb0/XFmx3uFn4mN/K5No8bvmgh6j9/u91dG1NrR0i90X/dz+nOpnvWpAj/U4bUfmF+CbOLwxwniDygsd8m5FbFyElP9AeX/PpVuY+HNvEH3wB+DG5K5/a8zRR5at608T81bx52TD3MTe2pG68m2uQ338XudsbGX1ytf/nuKfn3max5U++IWvT99627rkmXR1iz9T1ei2kBymuGM01B8/ZH8xFn9sd9fU4tV2BYil2zyweS5gfl482cn1BQaStuLLBEh5m2ce2NUcA/k0MxT32Iny5zm7WfINg45xIS9xuc0Yw2fyOrZ5qcuJco8GJGVPLwpPslLuhWUF2NuLBZDF1SWs4GEcXvdrRdJpAspgSrhjemWy1bm78fcRtxpEVVyXa4RMug/V3L5rHFo97rLgcIngFUPEYlb/pNfrO8Yr0paG/imUCtW9eIl4lPBI/YABMiJ8OfP2498rQB58yECYkT/WZb/z26isBIojN52dkTzaE1FXs3iZ9leWmoNE+7aWO3qtyWvxZEm/vtl1V66nRPGVYXYAoa7DW3H6Q3Oh1jGmNDrkKpz9F8WhJb+Bd5DZW7lc6vZVpHg4y/9bFs1klkY/EV1KN6yeuXleckhnJWYi95P4vOPmt2z8lxOss3Qfpwj0ZTitEbUvRRg3Dih9s9Sg8nCUv0924Zn/P8R5yD4RmJZVpA3j18wi+YyqQm+iB3jmL2rf/sngoUp0CmzB+9N6NvcGveea7lvuVAb/6j/NUdO988pW+Pb/+gwGHLouv147x6u1ef30XuxqOjGvk76z2xvIVnxjJXYW/Pvvs86eanv4/OobD+GFfsjcAAAAASUVORK5CYII=","e":1},{"id":"image_20","w":193,"h":240,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMEAAADwCAMAAACOuvCmAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAA8UExURUdwTO7UxoRhdNu3ruvQwWdIY+7Uxu3Txe3Vx+7Vx31Xa55xeqZ0fO7TxLOMj41jcr+Kiax6gO3Vx1Q5W0o1D90AAAASdFJOUwBY/f0g/KdAwOLkgD+A+azVv7uyF24AAAT6SURBVHja7Z1hc7MgEIQRhQMTTaL//7++aZu+E6vGAzplt9P7mnbGJ7t7h0bRmK0aQoxTjDF4P4ihqyFOy4qhYT78B4QnOX4/7RcDQzO9rgEdIEyHha1DnBQVB3KAewViC32W0DWhVSFOh26ayBGmxIIzUpNKENklgOtIQzoBWBSmnOrIJcCaznHKq4G2Ef0vwvUEaEOK2QQoac4HQBGhgABEhIlehFiC0HD3IpSOOhQRIKxSuyICiFOFMgIEH/kyguFPhOpZRhgKTaEIHXs3QuiohQQAkzlO7GH2pQShq5wFKSWYYmC3UfXVhS8nCNz9FECEoZwgVg5zoPfRd0Sh9qlCE9lFeOmkSCFCeUeqL4JnT0L5bK4vgrCLIJ59bdEN9DPhN7Sj4uUFwDU8/msvpRdfEC6klvVUiDvZyvJsIBBKhjPGLRcNeZYLmyrG/VMS6UUQehFKooByw0VDL0LBWIC5P9tzT7WiwdbQI+DczSnsWc6fzTgiZPtI6BGA7msWehFyowAkQq6PhN5HSHf4B3oRMn2E9PxdJgIQQWYUoB4UCexZzvSR0PsI65GpQC9Clo+wRBB6EbJ8hCVClo+E3kdgj/YH8qVFno/AHscW9ixn+Uj+RPgToTzMaHulCHtDzfER2v4W6T6C2+tF2LOc4SM4EdJ9JPQ+wtt8KrA31HQf4W0YJOxZTveR0PsIcCM5Yc9yso8AN/9K9BHiRnjCnuVUHyFuCpnoI0PvI8idagN7lhN9JPQ+wtzgNbBnOc1HmLtOC72Nknxk6H0Eunm5kI8E8wu2OU7xEeqe38Ke5RQfNfQi/II9y1HfaaEPM+z+/UKfZb2PYF8qovYR7msghN5Gah/hvptG66Ng6H0k9D7y/CIYehGA3zOlDDNwlrU+EnofeX4RDL0IyO+M04UZOctKHwm9jzy/CIZeBOj3P6rCDJ1lnY+E3keeXwRDL0JDL4LnFwGbQNNRwV8JLOwjQeUjoRfB84tg6EVo6EXw/CIYehEaehE8vwiGXoSGXoTAL4LQiwCf5eNVtqH3EXyWD30UO3oRAr0I+O3oUAR8HwV6hOOOCo9wPJnhEQI9guJsDR0h0CNorgRH/t9EpiDkIoAzaO8jxGVIuLlcyEVAZZgvl7mlZpjvZbXH376VABLMow7Avv+x6094BLNt1QDvf3474xC4j2NyxwjtvCgBI1Ag2AWAbVuPcTWjn5UIXyS4flwWA4C4PH2tLwHckuB/+KtDPBHMTg+wwPVVM3F6Pqw9J7V2nl8QvA0K39Q6jTgvjsuNihC/1xdWsW+Dok6TXX25i2NrRzvb0+r4V367PT6oMe3cvM9g1x9uKvCsUn+u1k6fvdSO8xjHvePfWIU8//epPsFRrdvuuPi87+o1I1W5w6hfu6pRPqyNZvWV8Ypso62xN658Jrg2spqBffcRpo3c9sDbAPhhEZQ22jsL2gKY7YBoo52F3+bUcB7TRpsm2vwCYLuRU636fj7KZ5fQi9rF0ds9C44VTxLUDPalWtCLI+ecvTavsX9YgyQf6epq2BF6Q49g2BF+XoM7Qv+dBHWuDp8cs4m+WYbe1KpTz2yiTwbHLMED4mbLABzADyTnEjs5lF94cv3kgH6iMt3plowBBfBw1CWFAhDgk4IbQD0roAE02UYHOJwVPQHAY1ZsXuS6khz/Tn+yNzF8db7cOdz9xL+/rFdy/wDxEWTVBoKr+QAAAABJRU5ErkJggg==","e":1},{"id":"image_21","w":101,"h":347,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAFbBAMAAAA+VV2VAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAtUExURUdwTA8RJg4RJg8RJg8RJg8RJg8RJg4QJQ8RJg8RJg8RJg8RJg4RJg4RJQ8RJvCXA+EAAAAOdFJOUwD16MjZD7Qlnl+Jc0k4GV7VgwAACh9JREFUeNqdXN9vI1cVnvjX2LEd7WazWxU2o2zV1RYtGqUsbRGUUbZFSCxg2e4KtRKsQqgWKqQoRkBZgVYp8IAAWVkh9QGkyIuK6ENkpYiHSkVWFoGAB6z4hQeEos7Ym938un8Dd8Zx4rlzftzbeUrG+cZ3zvnOd7577IllxY+fvH/7OxtVy+B4bcnxhRDTn9NGlH4qRseFFT3IZEWcHrtaoKIr/3Rm483/vf+6I386p3FTJU8I/0vDn++EqI/xmPsS8u2T396Wb/pVDvK1GMSyXnWFv0ZDsnJln4+d+ZHDre6mEFeVUw+E3yIxnhiowbVd8SQFyQmxmDhZT15n/GiLXeBsRcwTuXHAV1Pi4zgmIwZQ1svuACdDU1wEz7/lr2KQsiPgqL4iPoFh0qIPv1BwDjBMR8wirywH2A1VBLbshthECkcM8FXPYZHewzC2OMJuB0935THCT38LxXQCJDu7OENuiRX4di7imBSMaVDsTQtw3etYDiLNE38wy7U8/gMvwiVCIG92ATqN8zDCQEQoiyeMMUX43U9iDd1PHlAcDpMWLWNMRqwZY1I+JXwTCIYS2BqIqZOYHhjVWkBhdj4CpguvjcQ8+AiYHphxOm4NUPoyJKYOsoTDQEWc9inD8Q7IrJzYJpvmGqgSWxQG1MsCJTtWB8TYziqFAVeedak6XYfv1lswxzQvm2Pas8aYbLdP1sI2XPKbFGYLlsp5CgOqUl5cpmobxJQoa9dDFu48pmoOxngDc0ybqKAGouY9QrExTEqsGmpI2E0WCL2GMXlx3hhTIBJUR7pglkgQhrEqfXPMckD0xkVMkLbN+mmU1JYxpo5bBBRDJDWDvUQkFcUUcbOMYmw8qagpt9y+OcYLcAwmME3U8+TQ8ODWN4e6yAZaqXkUg2ZbYo6MozMpDtGrzaIYLN0FgXnsIvoKToSC2LdMiVASKK1QIpRxKjax6rbxTVgHI0LW6eOtCSFCFqc8TgTXfL9rVdAywYmAY3BF8NAmiKfBw7cgaHiWcV1Gl93ErecytoQ23qA72Esd3EE9wIiwjveMOkaELm4EMhgRGnifQXWshrs7VCtqeG8qOfsY41EMWifojRJEyBDGBiNCmhgVYBzJiVnCFGOm69AyJUJeHFimRCji4osSoYCLL0qEssBHOZgi2LiQokTIOoRjx4jgEnt4TGAqAbWrhAu/Qu4MFk1FES2UZWJvjbmhJrEDySNjxTaxRcS6eofYtWCds0vNzZBEkGNNpLpr1EwPSWqKwsDjH1KssAtSYoUlNU0ID2YJc4TwSMl+DPNjzzKt1ElBzWlhE0cJT2jitkCnuEvOS1qGwhOyZNFUeLCMU8KDGTJKeDBnTokI5nEJZxWuYmAqIljVtemhHnjFDjkUh112lxm+L5iKCLJJJEVE0v5J8N0JQUD6IykiiGNOkx90yKqrmrmXKH1bhoKADEZoQYC3QZR7wWSRFgTYeNGCADtZWhCQBJGCgMhihcaAkytSEMLtSctUEODRGS0I8OSKFgTJk1mjbdMw5wC3dkhBkPnbNRUEeF5cJwUhTNCKoSDAs/SMOENioFktIwigLJIOIbrmeYNZEv56kRYEywaKv0Q6BHkAhWw7uzTG9U1mPLgFd2lBkEndNC1u6xZASI/8CA8mF1PcMqmPTOYo6HSoQxe3lQXUmSlumdRA0wPQQaoxxQ31uhRT3Nbd5EKYzh1+9LaQjD+DAao/xxS3rLpHyfZ3RGPKyarjilsmaKBpVMmqK3PFLRlZNS1uSEpdprhlghb1DDFddVxxywyeSRYqXdwysofJndGKxVTdYy1fxyR1ne72UdVpWQ1FMrYTXZgpbimLLR17oiR1XsdzMqWc5gQBqLocV9yy1x0kCvWyxSVoN/HOT3CYBCULtP0H6VViBUHK4qZaqJwgJKuO+sT4JEFqOlwWk/xstMKJiNQm9ZY9TkSAbyQ0Bywm8YF3O2Axia/edYIqh+mq05QuJyJhA1Wqrse4CqjG6qzwyATNqVne5DAJHqdZ4ZH8OlALdZUNtvqdxTwrPDJBA9U58ZiO0ggKrFiFVbembFwXLD5Bq0qhzrGYtLqWCitWUpyU63rnLb7qlMH0MitwsuoUA9Oc5TGqAHSOeIxazN09HtNVCqahgVG/qJXSwGQUgqU1MHlFSvMHPKbgxJNY2ucxWVdZzC6PsTzlwgMNTFORUl8Dc09RW0cDU1eS6q3oJCie1PYWj8kpSe2uaiRISerdOY0EOfFqvvWhRhDceKVOPdJJapxhExoktd6L99RMXwMzEWdYTocIqXOKemlgcjPVeOyrGgmKY8oaHcjKBtvxgjqjsbjpOMM8naRej5O0qaGK1lvxtruuU6nri4pF0MDcfU5pSWs85tYVpQ3Pa5An3j5s96EGeS6SRIcV4VD1cDwmfaSqCi89aivQ8SI3lfVnKzzjMmo1d/aNY2DtBOaYHm8wE+0ww+7qrMyB6ShF8uAgIcdss0sdJqqddeYJjDVgdSRpI/rslvNUoe1/ffCXcFUXXE60J45jcOdnl5zh85gXmlwQJiKRt5eE8J96+dpLT529sX8vYIIw1Y+IKYLP/iP6/Tdnj9htw1Q4euiIcxs/OA71O3OsJtyV+4qc+MqYIlQtl7GlXeehtfxJxcoyQWhX9osz6mCE6VzNpaD3XILatDAu/1o8k7SCdBC81b8l6FViBgluyz7udPZvP31p+sab4W8urQnuKH//vB49YTu9ES64T5uX49v9vSTPy7/64OdO6M7aZAllh4qRvS+CN6K/+7E7hz9nMJrYRD34z+KZ0ZV3ziR9txqi8G9fOfvi6XTsw6TvVhUjxLz+4thE7WF49gq51Qpj+8Uxk9B7FEaGKtV8tN0cNz218M89apqSCzHZGbXY16kEpSMKT4+ZnomQA7UBizm7prwP+UhbJuoc3lg6pvY4mzDEdMaa985RFE5CSzPRwqfGirkZbonK1M57iMmMPVx9aS6iLmHOh0bXFiflbfeje6OkJzNcVeXkgexXn47e0ttjMbXgeHHZ+5+JctUkiJAeYorBMSl/OPP3Ycfvsxjr2SF9XvOOvzfxgCBC7hhz0w+fZf/60ogRDcIl5EfXWwq+++877156YdT+iBHZ5Oh69l+nn7720gsnLZOYzRdOpfm/v/zFH0/jSWBKY69VYzysMhoCxJPAlJ1NBEPoG/JcXXpA7eznCb5jvQS2knVKRJCNSINqqYj9XKc6UANeeJv6xwMZWJW8K+TopWUQzlFSIYUpOS2ycUMrn6SnuPf6hjRQtO00mvQuCHziusnMKyr7QGBa3Iwncb/f53apOaH6KpszfdKMqpr5PX4m3fPjtTrpXNCYwsXSWqr4/JbOuu+/MRazb4ova+y5i87o35DId3lWXNWYb8jYCv9c9K9bstLFXbX0jj85wp9+/va3PuWcGiz2ePu6E9lE/4Y2xLK+8bt3b1/7wvMbp2f+Dyp6XsCMme1sAAAAAElFTkSuQmCC","e":1},{"id":"image_22","w":97,"h":344,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGEAAAFYCAMAAAB02mJAAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAABXUExURUdwTO3Vxu3Rw+3Vx+3Vx+7VyO7Vx+zOwO3SxO7Vx+3TxWdHY+3UxrCChoRecO3RwoZeb3RRaJdtee3Vx6Jze9OspaZ3gMaWk8WPjPG0ou3Vx1Q5W1M5W0ExlaQAAAAadFJOUwDNQr2cbPgeW98z/ary/Ync8qLrdPlC67v2gNcAsgAABrFJREFUeNrdnOty4joQhOX7/Q4BLN7/OQ+EJGAC8UyPu7bqqHZ/pDbrjvSpeySh2Ll3Le/iKJimIIq7JMzc1i2s03nR0iKKww2fH80vWjpHIfP5txZtMFzZH8+/tMLcjbCYV5qtGysd+OqGQSIr5pkqIRTAYYgFYBjRrGg1Mos0AnPKHaNry7ljhEyocNa2iDtG1xZSx0g9nUJAQDedkC6ophPUBRVrrAsK1mAX5rmTKtSogniYUlQhFfo6n+FWkwfp0omSO0iXlpEHSagQGwRkwVEYFCZRblsGKaJjCCQKHV3BAnouyH4TKkR0hYDOoaArTHQ/zHQFUx9qOoeYPpc6uh9ytqdF4W3KJREGU7aKQsMlFg4hdUkpJm2qogl9uZTT1xoyhYBN2mQImYJlMskWxhYQQoWOrmBwhPRsI6UrFHQFfL7S99NiBRyEWCFgc8CrkFihpCvAIDI6iFKsENMVcmp9sISf4kAUjCbFWWJMVwA9l8gVSroC6DmNAua5zrFRaxQw1LFjo1Z9QAChVn2OAqEOHBt14dioJ0dH7eioMzrqjI66pKMO6ahzOurEsVHrFGJyfGOoY5VCyI5vaFmmClfo6LXQKUTkcMUmk6NPJt2Nh5KugOSG8o5OQFeI2cGEoFYqlOzoQ1Br7zHpUSvv5wColdEHoFYGE4BafdsrZccGgLqko9ZeHtQfoWjvxGXs2ACOULSxoQehvv6YsGND7zltbOg9N6kV1J5zdNTqu7Q5Ozb0ntPfOS7IsaEHoY4NtefUsaH2HHBrOiXHhtpz+tjQotbHhtpzeoWMHRtqz5V0ECEdRE4HoY8NLYjOsUEgv2yRs2NDCaJwbBCTo4NAFBK2qZVVCPr9o5RsamUVSuioEVPrPIeYWuc5xNQ6z0GmVoGATK0D4eggSjqIkA4ip4NI6CAgU6tA1I4NInBsEJipNSBSRweR0UGUdBA5HURCBwFaTgECtJxiXQZaTrEuAy2nWJehllOsyzI6atByCs+BllN4DrWc3HOo5eQgUMvJPRc5tudgy4k9Nzm65xwdNWo5uefgl5NkbFPLPZfQQcCmFoOATS0GETg2CNzUUhCpo4PI6CBKOoicDgK3nLQK4ZaTViHcctIqZLCcsAoZLCdEbbCc1HOWN0vRLSf0XE4HkdBBGCwnBGGxnAxE5NggLKaWgZgcHYSjg8joIEo6iJAOIqeDSBwbROfYIEyxIQJhig0RiMCxQUyODSJ1dBAZHURJBxHSQeR0ELbYkIDoHBtE7dggjLEhAGGMDQGIydFBWBUSdmwItoyltRMpOTYEW8acjtoaG+ues8bGuuessbHuObOpV0EUjg0iNSusOsL+bu6aberVaDJbbjWaEjqI2K4QcOvouiMmR0ed0VGHdNQJHXVMRx3QUW+QfSE9mbL/Q24UdNQRHXX3z4tQQk+mmj6ZUnoybVCrY/owJfRlWULfRayu8SO6grmUrr+GoyZbzs5acAzEP2iyDhP91FLyJuqcGn0bbOgE56IJXSHnxve1lPYfxLXAZ25UPXNDetmoHL23KLS/H7lv2qHy3n/9U9B4PxoU/NPjT6f99emXdj439el0ye/W+8GQGu3h/rP75tB9jF8Cn60dj/7oz97v8PpQfQ/Tvr381P7z70O7fXk+46w7X90E2u9nPyvcJHDWxy+FYvR/txFX6D8Fyublc+8dgofp4HeX7DtlTbXSB3iYGn9q/HU+rrYRVniaPG8aPJuyyosE8NlUvnhWNdaNb25/6rE1DlP4W6DdL1Pkwzab8sVAtGPj98852Npm024xOqdX4W0cpgcnV/vX5eHHithselBo3hSgw49ChSj0dwhvunDJ9J9v+TAp+LdV9G5JBMRwV9i/VTDZ+p5352Z9lJBa+jhZ10hfWmbpw9u59Fg4diYO7xQqW4I/FIZW0IfepOAPr/cnjxwGpACtduLoTagX9f9l8EW9N6Fe/Pfx1f4nb23FelgUt9+2LsrDooL0Fj9cSZx+Cyy/w6rgd8v9yrBbLqOQZBqeFgFNd9doD9+r1rvCYCN9G6mmOeynKQgO/sVCvLLUuKfV9laLpvGvxfAmq9edVza1wodSQM8hUyoMzmoIgsKgUwAKRE9XGHUKQBlVTiZk465CXSGfxapAtNYdxGo7QpsUzXzFzuN25EHSdOJ8BBXEnWjhDwoGKudP18k80RouJojGqTHdfBCM02C7WrE+ToPp2Hhdoj3aL4f8JVEdNrgacpF4y6LaoANfM6qvKAQWp03Hpl12pep3buOW5d2x79uhqoa+H38//j/b+QOe9QfMkAAAAABJRU5ErkJggg==","e":1},{"id":"image_23","w":587,"h":678,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAksAAAKmBAMAAACvScdtAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAkUExURUdwTA8RJg8RJg8RJg8RJg8RJg8RJg4RJg8RJg8RJg8RJQ8RJgEEaqYAAAALdFJOUwDw3MatEZNbd0Anrz/kswAAH6JJREFUeNrsnT1TI0kWRRuVvi0coqMpB2eMGTk4a5WDvXJg9w/gy6GNteSwdjm0LQeti6WlA5rWn1tjNjZmePfdfKWqilhuqkyGJkJnsjLfuycz9enT/56HT8cn/czujwwCz/Au509/Hf3F4jZnTP+I/uLfLnPG9Ncwpl+OmCKYvuSM6S9hTC85L/PhV2nwnDGm6W9hTP/OGNM4jKnYPeaLqfg1XF7uM64vB+H1a7zPuL7cnodnsT2qLzN5Eb+GMc32F+CHmYyw+iz6m/MS/Orfr/LAtApj+rR4sz/7ZyaN3jLeqS1+gH9+kQemKv45q5dW//xDPwvnc46u7cgB3Up1lgem0sE0e7CzPehWqvMsKM1LZw6e3psfrQGmRR6YJh6msS2INqCpW+QRQk32TuEztD/f7h9yxTT1GrXCYjrZ2xdx8ZoFJrefLezLOAC/mwmmIRghvzOxK2ABXtDqRxaYCi9E+tcvAOllrpgGYFr+fb4+B5guQpW54HPiJbffvoDp/tRi+p4Fpu3uGv+Hr19A8WA7k2UemL55uuTrZ9u/7N9CfZ7gs/YwrT+Dxsau/qs8rFTtjYa1RTIqf+SKaeVhqkHduLATUb3LApM7BQcxrb0lQOtx654a1I3VM8D0mAOmhVdFr1DwbSeijVeeaj3laztM2yyM+bx8a4BpZSeimywwzfZeSLsEmGo7Ed14CYPUg/oPHxOYiAZZ7L+Yon0BLiYwEQ28kFjqGcJdJh6mGzt0csdUQUyGSeH+AaXHHwzVa+i3C/et1cJ02wjTpR2OOWDy13OkTMDQGYNEU+/Zur0GwjREmHLYa+F3rhjTqa0octhEULs5CMI0tkwm+7cMMPnhI8I03X+x3U4O2nfpY/qMWptXiykHn1m5YgRFB4DJvMwB0+J7E0zz0mSdozID7et/yBHCNCot1TIDnzl3w0uICTFZZOAzZ+5yPi/RNjjAJAdMfnE4L9F/WdiFscrAZ/od2QxiqvLE5Pf3OCRf7iI/knv8UG0GW9ql7W2WGWhfP5XDLmFlO+VVBtr3xk3lMKba5i51Btp366ZyEzi5r61aWWfgMzfuZ5xCTBuLdZ2Bz6x3Dy6mCzj6bgPk5J6Vu0yNISZgoLYZaF8/bgpjusnAZ1YNMQEDdZKBz/T71qGD6SJATu0hmRq25gXCdKGOiSS0hYPpNENME1+LYExDW5sX+tp36ku2Ai5gQNQN9bUvMdsDB9ObxSSvfckLgzFN7Vs61te+ZHMS3tEzsaJuqo+J1DwnENNs/xIYYGoPaTQwJlBoTfTtuB83OfvDgM8EA0ztIZGaQ7A03c1M346TgPYbJmhF3UjfjpO4fxPFBAaY2lP5js05AAb+RSnvM4mxXWNMwMot5DGRbRLO3lXwmi7UtS+bfWsHk52yKnVMc7KWO1t8a4tJ3o6z7aWOcwG6abl/1MbE2rEVfpWebA+zUrfjYxIVOftxQBdYq9txFjw6Bu/GZgrydpydhXNKKiAI1urad9AJpo269r0hJtKpPEEsvFXHxHZJuJjOmsCWeNieG+eUBvAoJ+o+ky3lTh8DPIq89iWFodfugYp0oK59STfmbcIAgqBQ176kt/e6YiAICnXtSwI1rysGL+NQ3WeSFNvbqzKy/2Ys7jNZKudu6bEjcCruM5mIdHcGWEwTcZ/JtLZ70M5O++qY2KQy9jG9LyLme22fyTZwuVHU0pSkc3GfyerCoVdaA7Ui7jNZKuf+tzo7TKxndf8byCrFfSYLilxMG4up0hZ1LHZ0txsCtpX2MdYNCS9PGmBaaou6moSX7q5M8DautEUd07VuTA5CuFpb1C3JnOK+kKDYEhd1bIVybQIo3dfaBoptc3P3+AJn8KRtoBgmd48v6Je30phGrGVdeZuWQPqiLermbEO3uxV6ZmMTbVFHT1G4bgrAHUgbKJphu25qZPMAbVFHjYg/vS8App/CmOjpU4JpZ/+QsoGi74q/CtqidCxtoOgWCR+TzQOm0mqFreOkWLB5wERarbDwcu4PEJsHzKQxsfCSmE6bB2gbKBZeEkx24+5IWq2wNI0c0wDvqjQmls2SqypAoyttoFjST06zgDpioWyg2Dk4cpoFVKWV8lEx9qqQO2ZAB7dUVissvCSlJ+iYV8pqpTwME8hfamG1QjNecksj2BynrFZoi0EwgX+nfFSMbpkkjQwYhcpqhWa8rJGxc9qNsDOgGS/DZAsJZQM1ZAk2O+Zs40tltUIzXnbSrjJNjjImmvGyPT22ZVZWK9TVsgs9bACjrFbovMvaYhtfKqsVeuCbXTZki0lltUJLZ5Ye2GJSWa3QrYAsPbBv62yv6wxoW8/Tg/dLpLJaYVE4TQ9slaSsVlhpRHeIDe2X+wpjYkcoaMgCqiRhZ8C2O9OQBUQLwpjYmk8vtwYMhdUKW/PpVengjRRWK2zapd9PAJZ/XbVCax1+n4cFrKtW6GLGb4exs5quWplwTKcU07XpDy9lMb006Uf4uqarVqhY4ccr7Lqmq1aoWOGqxMaXumqFLmb8jkYbweg6A7qY8Rs/baCnjOmsCQg+YRey96bRxYwfcrYzka5aoYsZv9vaEtZVK3Rx4jel25lIV63QxYzfU2Elr65aoafil+5XkeOZSFet0MWM36FjZ6K5LCa6mPEbmexMpKtWaETET1eADEYWEw0c+bdfgZlI1hnQxYwPDvCKyWJiB3tGCdltMVWqF4KxxSy1J8COHVm1wl6T1OFdi1hWrSwOlb7whZVVKwdLXzh2ZNVKSaXvj4Y111rUGYy49H1NVPBXTTrED/y0kL5Iy6mqFdrTDxPb4W0Io6pWEtKXGwALRdUZtJC+CIoqpmm3mFRPrdCQPzXTWN+kqlbomp9atyyUoahaoWt+aoOJLT/HomqFetqnROthl8mpqFqhWwg2jTGpGii6gqcuALciRdVADfhJ3/uGDeFc1BkkTvreNYwXVA0ULY2SmGymJ3ohGD/pmxIANuUVVSu0gkweQbEcRU+tbPmB6MTQsCmvqIGiG96TE41NeUUN1MHnxv9bWF0lx5fEQ1VIcnW3kEUN1PrQc+POzCZqoNj//VHyvLxdJ0UP9zBM6WsFbNUleriHTbnp+79tRyhqoFg/ksZkY5iTRHz+QR9W56S/9tmGeqJqhbVt6e9at2H4gB57/bBP1QqT9TKih3tYqzpO2iRr+UQNFNtTmP7INvoWNVALeqd66gWy0beogWKYCnvzULIAFTVQ/Or51Kplo29RA1XumtTY6eZY9HBPs8vj0u+sqFo5Yoo89FMFdgjaskvSQM1bYrK9jqSBopFSIBRBauVRDxPdGhGI2FYm1ZM0UBRTYC98JgaKJm+B7wPJxEBNWmKyhkDSQFFM6/QnzsRA0W3hgYGRiYFKYEpOM5kYKJrjBmZj289IGqgxx3SXxnRmxtdpZpgCJZCNpCQNFI27l+mCGom688wwBfoO++8lDRS1AoEu1ooUSQNF/9/z25ucuU3yejkqTwLRka27JA0UlSeBIDKTwz1tMdmEQfJwD61yAum/9U3zIyaAKY/DPcwxRT4w+J1yd8QUGHGKaoU1qqHvB7PT/CJdbWlh2ocwXTdvcT4gposGi32oUldUK+0xmbGzFFQrLGsM1dN27CiqFY7pJYLp3mC6ksO0JZhCd6TbvFxRrTAPMo1EIvYVU7xejn2mUHJk7aWiWtlQTK+HYFJUKwxTKK61f0BRrbDdFCFMW4BJT62sKaaAI7EzkaJaYZjShwwgJkW1wjEF3p6TLL65pzUm9AVHL4KYbgmBswims0NawQ/21BRToACyQ05RrXSA6f21qYr3pnWA6f3yP8oMU+hSa7D8C6qVDjCZ5V9QrbDtlaFWf4wwPR4xvXtAdieoVhim0NZlgElQrTBMoRgSFJOCp1bYR9rEMD03WRY+LKY7gukq/QdAzS14amXZFhMw6IJqhWEKjQpQc2/1nAHHdHsQppu8MNUHYhroqZXWmD4hTOc5YYrVP3YfmKAzYKd3opiu06HBcTQhTHLOgLWpsd7M5gGCzqA9JntMSvBCMI7p4aC/IOgM+sA0zwtTLF6zr6agM+CYHg9bK/WcAcUUyrRB2aDnDKrdQ4OlPohJ76Yr9olig8JedCXoDNpjAg2ynjNg80/szkGwW17PGSxaYwIZp54zYKOpPBSTnjNgoylWJQJBoOcMesGkF4YTTMGeA7hhvXMG7TGBnQYDQUzXLTGBN0zPGRBMoYPjEJOeM+gFk54zYJhi6RrYeqh3zoBgCma1YL6eyjkDiun7gZj0zhl0genswHGogWlyMCa9cwa9YBrlhSk0EaPjZHLfjkE+0DSK6WejhjpbTLbklgvD+8EkF4YTTMFaGnUmcmF4P5jkwvAuMNlfkwvDKaZQn49oyoXhBNPwcExyG+i7wGQXRDlnULbGhOoGOWdAR9NbDNP3SJ8niymYaKMOWS4Mp5i+HIpJLgwvd416WvCgDE4uDO8Hk1wYTjGFpCQSMHJhOMEUXK6QzpMLw9tjQomuXBjeD6bREVMIidoGeoop1nEgTGob6LvABP6EWhhOMEX7V1TIq4XhnWCyL5haGE4xXRyMSS0M7wmTWhhOMEUjSLQDXy0M7wITOB2kFoZ3gunh4H+bOSa1MJxgir44qEZSC8MppsuDMamF4SQLf2qBSS0MJ5iiizqquNXC8J4wqYXhJcN0FcRkGxO1MHzRHhPq39TCcIJp3QKTWhjeCSbwe0dMod8TC8MJpmhmBDGJheEdYIKFg1gY3hcmsTC8A0ywqRELwwmm6CeFLbJYGN4BJphLiYXhfWESC8P7wrRVw3TtY4otVlBUiYXhBNMyjOk0+MOsMcEtGWJheCeYAJHg/lYJTA9tML1lgqlqg0nsavVOMIGN0WJheAeYitwxPQYxgdlazBkwTLsoJjBbi12t3hcmsZ3hBFM0p8UiXAzTvidMWmE4ufQljulH3phifwJvq9C6gb7qC5OWM+hkNKFKUssZkNEUFbe44NZyBp1gQgW3ljNgmIKVD+5LtJwBWZDaYdJyBv5oCrcb+BpRLWfgj6YGmFCXe3LEFAkDtJxBF5jKnDGFt09inlrOwE9yg5fPe5i0zhkQTPtWmLTOGfjfTxePaSEmLWfgj6b4DnjY1Wg5gy4wwShB65wBw/Q9jOm6xQrwIZ5lX5i01Epvo0lLrfijKT4H4/ZZ6qL+TjDtH8NjLGtMD43aIDFML63+xlLp1Ir/YaYNMN2Bn66UDFSfmO6VMN21xoSBrJUMVJ+Yro6Y/owJjRspA+VjigdGWPBuj5jeY0Kvl5SBWnWACc9CUgaqi9GEr7+Q+g7kVSeYLiGmsyOmPz74oqdC6auifUxxg4TXtKGSqOsCE17TpERdf5ikRJ3foLbFJCXqusCEK6SJEqaaYIpOwbhCmin5zFVvmKTOQHUzmlAhOSqzwFS0xCQl6rrA5NTbR0zvfxPeOaDkMxmmn2FMbxjTtRCm29aYnMm+EsK07gQTLESXQtqXYTpvi+nhiCnd5Cpp3x4x1ULatxtML83+tBKmeJY9PWKKYYJZwEbIjvufJY7J2TCmpH17xHRzxPSnxwnglLRvN5ie8R/IA9Np8G/Mj5hCmMrndn/g//956gCTc+6iENpE0CsmnU0EfnHTGtNQ6CLVLjA5qfdYaK9FN5h2GNPrEdMfHywHpv9h73x+2kiyON7YbjA+pR1FGdIXbGcu6wvBKBdf2GBZSL6YaKzReC/RDjKMfAHNLBi4sFIGE3HBWkXG5GLPiGVtTm0YSFL/3Fb1L1e3u93V7jaBqn6n/DA2/fF733r16lUVRb0W9jOKKa+YZgJMZkxFS0y3TGCa94aJpl4LXzBZb8+MifRgsofhGRNNvRb+YAIBJiJMp5bpVIDJYDYLl+l+gMmIaSvAFGAaVWL0jikrBZhws+lzpahzxx7TmmdMhQATGaY2PZieeMdk03JXpafBKcD0zTGd0NMH5gsmm5MZDujpAwsHmO4Nk83S8Sd6+sDsl2Zd9N3YYLoKMJkwWb60Q0+7nC+YrHfYw3egCNML75g61GOK+IHJ5qVT9HQV+oRp3jonCzARYZqnB9MXd4LDJib77hoX3jTFMKaOZ0zhABMZpif0YLrzjsmmzBBgIsIUoaeVNxpgukdMz6w99UWAiSlM9g2S3jFF6el49gVTOMBEhumF9XtT0xg+G2Aiw3TrB6av7r4CVjF9oRxTzA9MNtWYmEgPJtvmbT8w3QaYnDHx9GDi/cF0F2DygIme3Ri2Pe4uMNlVYwJMRJjS9GBK+4LpM7OY1nzARM+mFdutAJ0AEwkmF94UpR9T1gdvYhmTK2+yziOzFGGSJoiJni1QBR8wzQSYAm9SMRUn5k0FejBV7bYpBZgCTK7txG6bkitMNwGmABOH9t9secZkd2hMNcDEGKZPASYyTIcBJmfrTBDTCQOYpgJMBqd5F2BytqlJYpIowrQ8MUwHNJ0lE2AiwrQQYPrWmIq0YLLdpuTi/Ca7lrsAE5E3faIHU2SC3hRgYg3TtN2mt1CA6Z4wdejBFLXb9BZgMmJ64RnTDP2YZsBcgInkEb8EmEh05S7mHZNFf1Mqv08PJv4S3Px9bgLeFAVAEsGH9iPnU+rWjnKZpCACaEX/vekKyCakNvcfo/eUWzKehAAwW/Yf03Y8ob65FF+qf3wsfGLdWmVlMSkY8KjfuOWuQReYrHov03f8WUH/CITq/EHzKct8EhZ4gCQklzbFW+u1/rAnTFGUZ6xJtZWEiKHa3Cs+PPFpHq/b88nkN/fO0S+dvuXeWq38usI0tBlD7gNegyMdf7m+KGAfnMpt7rW/se70Wq3d2nElZxNdCE9qqVJX+GjRccPNiHN+Y8oi8mtqQlCurSRF05dUPy/eZ0Q1a0frucxiEoqyIIgisDbcfcwPdIMW1A79xRSVbx1dw/Km8o4BFZJE+StrXUwOF99rKsO5ABxM42P/XoVrVHTqW2B6Mj6mjjwFmjKll+UaHoAaLYgrk6sc755flPxynV0YUZlFZzySoIbXheO7IkxcejgncIFp+KysrLxIGrLIwvnuERRMS6+H4RBPJjOZpVyuUjk+3t1rnfcuSiUyeKVSr4neWRBHYBGUj0hlMrk8/GL2XAS+3DYSGs6jvWCaVrwzZDdZ4cvy6CsCx2AQ1SeDzwYfDhGED6hbHv51JaNIzgg20GNkKq1eaewIlzHxomQe7CIeMDXA85GYNFhoLEbS4czLrclw1Vj2JZSVfojGUD3FFSbjD/NppTEhRDb15UtdJCYQmDwOeYAjQTZLecVvfB4Ofs3LKiz2i2ZMz8gxfTX9qLKnJ+S+QsCXYFYDJfi4UpHjKbO4iCJO0MwkNKrU5JDbTHLMhL+Y8uZV8yKvK0zGCuiJ6l0hPwspPBTzcq8HU0PF4B97pdIkyXCWc5ObsTGZTqydFdVmIL7L0WaanoyH6Zlx0nzNUWsN8J0pksbFVADf04tpRpROfcEUBdIWvZigiP/NF0wNiu7ztXxYQ07g4jhGQ8IORW6BZkxwIrbgA6Yw6LepxvSHIVqibjDN47H7XHcsSkUcb6WPWp+r54RpRhwkFnRigtnzcxzTl3EwdWhOmnQRb2OY5sbBlKY5abIQ8Rlyb8LWqiJ0J02KvcUmdq4wLQzi9pZ6SmjSeugJE3yDZfox6SUQTm5VcY/pLegXGcCEZeJjYcqS6z4lIu4Ck76LKgLouQdypHV0CR4H079ZEHAlidYGdBcHD2sX0UEBX2AD06Cc4grTO03A24xgCmuTjTEwZfHJDt0W0+v95AcPd5QfmWZFwJFtq2O6K0yHioDfMENJT51cYFJOxmBIwBWFUcYtN5i2ZAGX2gxhaqidlOSYlFN7GBJwZFHVK8jPZz5AR2VBAX/HEiauoGgMOaYTxHWbJQFXssRb95iggH/PFiZ1/dcNpiJrAq5EHXKMLDGmKsRUYEvAkYVkmSE/n7kqsSfgSqK45QZToQ8F/Jpjzqoo6txggjPBefYwyWWCggtMIWDs+mGmTHDoAlP2umDqIWPEDsCcG0x9BgVcKRNcuzi1MgtYFHBOaVglx5QGrGXgmm2DOTeYWBRwZNOgT35qJaDnkky3lgbEFzZMAyYaByytAUCfOED7rFJCLkJ4HCOU+ztmMcFRnhBTGJB3adJnHUC4f6kAyHt+6bMoAG3C15HvR6Ay6hbItF4i38dJoV0RZUOxNEiyWETRbY2ouh0GUoNpTFOAJOoK4PMUU4viFpic132hgL9bYxpTCIjOM9oGuIYitsw0poKj6MTQ3otPbNbkdEz/cVzvDqMSygFD3V9WCPZFpw0ocg28CraYxrR14lCVjMo18AI4ZRtTxKHG3ZD/v0A2q6HUIuCQT4+UHV7ZPJel50zZ8TDp/aojBJzj0hLDlLhpiGl6ZNQpXSi82Gcb0zvt9LNRAs7F2MYURRD+GNG21FDSqllG1zJxTDOi7T5CKODzyutu2Ma0LOvPsr2At5XgvGUZ04wMKGxbnNOOr4iwvLCiYYqJNsW5qLYHKEy+d5pGmxXlcNu2qSY1NEkKsbywgvxoWYmpWxsBX9AwPQswobnIlqWAa0PgGtOlcI5Xx7iOZZmgqk9jGkzXeDlO9aaoeGMl4LqPHTBd49UxcQWLqMMOkDthung5wBQejjoeOzm7ynRVjuPSKonY8CafMDaPY7sqN8DEbQ9FXRVzsCzT5SaOe6PBmTZHXRRfwUv32cbUG8TVrVnAsfJK+poLTJWiZZOADwY3XvwcAFLsB+N8xHBo9qz4JQAU21lto7HuL6OAL+CFhL8YZ8TX3ggAXEMlr94ZBPy6iP2N6V45jmv+rF6d9oLj/oFnTmuGo6CZxvTTe+0WlPhrOPZf4YN+1tDPE2G2QBDbWVQZCS8/yPF1hS3sho2LLRFGZ77/04JNSm209TgbONAJjMIiPuwdshhsr7Rgy2OXXk5hvTlZGGWLrwf/WS6yNrLtvFEZSWqwaRbCXAZNdUUgPV39yHiwPV09HUrDDw1zOJXlL6w50k/rg5HN4oZZ3JvQuU5/JrQX/4slQdJGNky1DTaFSXj6Th4MVQ2TUqttJhgdaYygatvJzRRWesuqc7jLnwXASPA13w8YLX2wf1g8b0p/Hc6vRv7wI3ejnZWEfrHby42Rj1nFakqGafClpvtUkkKIBvcSpzad5CWN1ZTSX01ZBOaQdWp0ir88whAhRs63JsbwNoH0V/ucFM5uNh5/OtU13hgrxZc2iL7+CF5gylqV4QbBB8Hn9x5t+KE7dQ1Xn8ZTq/ukT7OGz9sKNkVdSEp///jS5qNzqnJzPWMgJEFErr7wE7zz+0SpPVldyXO5briJ/dHEH7psOCkYr7Be2nR73Tdv6CK40kY9y3fpvsdvYo+7/7B7R9Q0hZkUz+T3xrnl1ni52FundblYzTBGxFP5DxcPNM7OjLd7o9+1Pm4IzFbB7zg0kjtCukeLCZMP75ceFKLujjHOBEjofPypDFo1MIj2bLxN6M1HRm9GrPYuHogT4b8Z0gYPg/Ol6pJPtwz//ObUxVsYkjTEKp7KfTtYPEyJjMOZ4CHMVEaiMh82T0L+PPSYi6BLr1NLlfp5axda6/xi4irPl1u1Cgwy4+XmENGep2mDzsiqnhTN10/dRy/6GgX7O+Yzuc26z9dhQza7taP1lcXE8N3vsgB4+7QfVUZSfNUaRz0RH6/IVG4eQccSRtw7j3ih+8N74xPju83jSi6zCH1HtPwQPyRS86OhcjjuGT+I4OnG2M9RbsIAsPqKDWGJLl3PLOXyleP67l7rvHdRcv7AWG30t5DM5OvewkyZFWtZtNOCwG/wZalfvH1arLt7XFnJJBOCAJxNv68eWiqVMVkK/XPClrsQR3x8SXT5s0HpyKocbrT/JtAc94NPGtJrQTGvHVVgrBBSIzPJ5xxktqaX6ISXROW12X+Kcunc/0GK77Wgm+WgnyWh/4hj0IFel8rkN+vnvia0l4NKr92SgaVDvZI9b3Wfm5whR2vuHh9XKuu5HIouOegSiYSAWUILRKRkm1D//U8w+Oag/CGQVOjwn/0toRb26F7YxKvh8Zcb7mM49j6h1SzbdCJC9QOsijZuuV+vhNO4YtA9whZV4q+9PeCP6ggpxfP0LAEbVwyklB8KzJ+p1N2MAA/XTHNQP6uwMa2Z5XHLlHmWPoHlD70PURhnNHgAA5qp5iMlX9cnM4TribzgYtnmoYz5flahnCefb4RBSfBRoCrXVpKiryUWsonPIBuTS/APOQBRQVw0FnvvUVljZ9iCnfB04+MD9KquUa0np0SjXfnsFaaGr/cuHgopVLVbN9Z7oRfVv9186//dmrFugzAQhrP4AZKO3eANCE8QrMwsN9RroqpvgJM5QukTULKjymy8Yc/XkBiMqkbECcDAhBh+353v7vu/04vjdY5nlZfwXKnEV2pvA4cAp5mSK2M39pja2KlQdgisrd2QKicTV/+TDit//dkokuA8xES26ti5hz3gpbMx2zQWEPdxok0ct34LIMx4pm34/QnOfWfJg8kRF77DpoqhPKVeHMs0asxmQ7d91M2ujK5h5caDwUDpHXHrLnsZ3fgk5Mbo6IgJ9T9kTLcYQGVyGwUWcViE+9kon9YIVWmxPm5rrTCvCoA6u5LjMTXWjEat9kdum7VMGFqtM/M9FTYTEQq1SHanUuUYNMErCsAJJHhdwAqvCfoaZhN4lGXCuDBfIpeapYScE1fha47vLf8L65KJQ6fxBBnGW0LNcQ9qSRx9GWLePsLd8tzKro0FmED/5ZdVVc1/odkepq1Md2km5vvOeVTDS89rhtrZTeBjn7ibevDcGmu1YQyYwBKe5cVga/MPIXZ9Z2IxoukAAAAASUVORK5CYII=","e":1},{"id":"image_24","w":568,"h":155,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjgAAACbBAMAAACdTPysAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAVUExURUdwTMKEqdCQpM6OpcqLptOSpLN4rfQ1/FYAAAAGdFJOUwDnQ3q0IJ9STX8AAARISURBVHja7Z1Lc5swFIWxHbq2Wg9rBmLWNjhZ17Wma+qUfTEJ//8nVOTRJK51zUPYoHvOKpPJyOk35xxdEQqOU1sTxx7NTS9oE5w/phf8YhGcg+kFo9QaNtNH3+h6buitbGETrsvym7nlZqJU6/mjx+IGG1n9U5TMdfLkZcF8EY81W/tQYfHKdz0ZW/r+fVEhRwUoCxO5/UTlVYWxjzhafASA3EAD5Z9MlcTsxNpDBXSeyqtMbeeRZn0hk+VQmOxVfqQQZX35vaTqmNAuSK/DIwgTRWQr6hilL+vMzn9QrhDFy0tkZlP5o5FD+rVOVPvjhGKUGPeRG7xExivNat57qjRGElJhSoIg61oiouxNxWVSddZQFaxKO0VMKQyUskxZzM2yvfo6fv52snv5KfMm6S1XUWmrulfytLRXna0zsRhO50q+txhOgVT1l6vIajiHSw85Y1LuX3fIsdg6keVwurTO1HY2XXbzifVwCgw5feTK/lR1qOSIAZy21uFgnNaVPGEBp0Adm84Vj1S1rOSICZxW1vG4wJnjzGm0ktmkqkWupnzYNK9kRsYpc9QxoRXq2FiuIlZwmlXylBebZqMOM+M0G3U8ZnCa5GrGjU2TXEXs4BSoYxO5ihjCOaCOux8hZiVH1TlCTHimql6u1izruGauPKbGqZUrz/eYwqmRq3LHlE2dXJV8tcJwTOXqBjOOPle/aDg3JedcrXFnBSHcWUEoRR+3vHDBPFX0bs48VeV3pEqvOS4B6lXAOMQc6KOO9YU8Rx3rh8ACqdJqqp10IsC50e1XMA6xX6GOiRME6vhZB6SKGHVQx80OnzAOkSvUMZEr1LE+V0gVkSvUsX7UgXE+ao46rn2EQB3rc4VUEblCHetzBeMQuUIdE6MO6lh/hECqiCME6lifKxiHqGTUMTHqoI71ow5SRexXqGP9fgXjEKWDOiZKB3Ws0SNSRTYy6lgPB8bRC8ah4PwEAz0cDwwAp1UhAw4BBwwAp92EDAbE2QoMtHpCIes1Bxy9VoCjV4rjA7GT41IXsVnhVE70Ma4ga+UDjlZfuT/XQy9xhz93nt6mFvHb7SfYy4/I3H24HfA3gHxI04+j+/pvweTNNCf+A+MtjhCnTPP2mK4tTEM8N+fBY03m7swT8Lhm6zyZSu4aZKgHC21BhsTDJVxi1+ZtaLeCA5m07YtN3Y2wOkxxt/e3WxuvdmFiEC8hY8ec7ImXkMnSMa7xxytf7GKnNz2Ml48yjO/0rekI86UaJnUupXALMNS7MjyAGW/9iF67tw4fOcD6EULuruSX/8afcDCA8oVMgmFQ+dTPm2tH7CL7dAcLJdeykDo8ps7wdfmMqZHXd8ajiwGqtqPUGZ/6BTSg7ai19qqETNZ0XkHp4zx9PQ8FGyk6MFJExEIxCVLHXrlBspEKk6hBqsIhkyReZg5PZfsgTJJESrndCk/xyqvUSEVkuL/zX51lLjGIZMDnAAAAAElFTkSuQmCC","e":1},{"id":"image_25","w":1100,"h":16,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEwAAAAQCAMAAAA73BoXAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAzUExURUdwTA8RJg8RJg8RJg8QJg8RJg8RJg4QJg8RJg4RJg4RJg8RJQ8RJg4RJw8RJg8RJg8RJrvXL1sAAAAQdFJOUwCdwSLe0bD68+pdSIgQczMT+aKaAAABxUlEQVR42u2a67KCIBSF8RI7hcD3f9pTHcGtgFAdupzW98scGmcMv1l7mRBCnKxxjAvKY2c6x2lBAADAjGppKoC2B5TkGDCs6VccOK1HttLTyMahGz1jdChBNW4d2EUciB8dgBou6afaUPFHyn0/toAof022+MJU5MChigMjCmQOtHAg+FiaCezIJ7ViJbhbHEjlV2SrHoiBZQ5kCszkwNGEs7BFDgRCdD1E8q8cGOQ+SsZAyhxmfEdU04F92oHtIZYDmQL3HaiKHAg13I6FTMAbKrBoFKZ7U2ZqfV0HRnNgfBQuqgPfLgeeJPY2AM+sA4lyJeHuLEwvc2B6FB67q03GI7YEAF+UA3MnKD4k70bCQV8zkRlwvwEAj6F/axMtXaRZh51NFAqzUjpX4d4C8FUMqkYL41n6IdcYKes6JN8rmXFumrRx5dN5CnOcZzNPK9n4xqe6Hg4E4NUYvM4qceCiQCZBh/4bBw45BxIcCCAT8AQHMgV2GwUyB4YKTDqQK7AtzYGIgV/LUeFpBG8WA1WYAyOjcMqBawmW5kA48HEa/M8PgOp1YFSB6Rz4iQ4kabE/AEAdGK8Do69EuAN9HSj1Zcb5ATo8WiVMHoMzAAAAAElFTkSuQmCC","e":1},{"id":"image_26","w":48,"h":94,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAABeBAMAAACX0oqeAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAwUExURUdwTA8RJg4RJg4QJg8RJg4RJg8RJg8QJg8RJQ8RJRERJg4RJg8RJg8RJQ8QJg8RJpPY0ycAAAAPdFJOUwDw+dnOuuJkJU8PozqOerrmGqYAAAHWSURBVEjHlVW7TgJRFLwGkRXQ0JEY4zbGBCygtEMaW/iDJbGzgfADrn6BiaWFa/QDjIWNBWhhZSLxB+APdBdYY3gcLyuYsMwU0HFmc++ZOXPmKgV/6w6uq1IF1xPyg4FV+WbAEAMROcTA4xOub+6TZi8PcN0odjAQ3SUnfaSJTmYZA7fuBQYafVyPmdvkJCFXNNwm6anPhM1goE0UN0wPs4hKD5/0wqZdkjymnZMWsYeLPVgXQq9A6MVEKkQPcve1eDZhgXkbORmTtZAtCKwIGeupSI3c7cJ6PEcE2RAyjAhr6lyIEdpMqQJRSjfl410V0m1USIJopVIQeF+625IIXhmTaJsUMnBNY7QcDS16lvGrsGlQi7QYcewdixsaE1dV6SoiVZ/ZcDBfsf81nLfh3Z4928thaO0qM+NmQ0p8zbYpFUqP8Uz1kIZXx/YUCHvkofwXLwvivu5M53QfXuKgYQ2EXw2jOvl0DajeSAfAYnw+95wAWBhHwmtN7vCcxTg/mQBgTtYoiEkQkb6jAR+ZsKMl8VFW5LW6PnoCMtrsyAvWQE8QAfWeSuYQcOM6cRMBUa+pql0YYTVldeEbV1Of0KFHtjqD0fOm73HxFqhksUke/uTcv19puudJ/g4pnAAAAABJRU5ErkJggg==","e":1},{"id":"image_27","w":27,"h":75,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAABLCAMAAAC2hAyQAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAA2UExURUdwTA4RJQ8RJg8QJg8RJg4RJg8QJg4QJg8RJg8RJg4RJRARJg4RJg4RJg8RJg8RJQ8QJg8RJhEbR1QAAAARdFJOUwCI1EmXJV/55PGmELfIejhsz7gv3QAAAZdJREFUSMd9ldm6gyAMhEWQEFk07/+yJ8H1qFO/9qYpZObP4jB8P9M0oMenEQZnkYhio8gCQnmWER0rIWakhFeock7o1DClAo85aSiUKyP9Q2SofyhSsBKczhFPGCVMtzBOp9VxKJaEPMJMAmHqlfVHwWekknCjBBHoXK9MiCVjKauIBFgekRVCgVQsHQMqUbBMBQaLp+5g8RhbMJjIgkkRD0ELAdJVY4ypQHuM7XWZFRcIWTeZyLoVD/W00URY0g8s6Y3FBzed9ig/+6AnyfRCZj+N9u+J3sgabb21yAfOQtUSennjzIn9WdkHzkjbPnngjGvujdensVlsvq2L2FGN2/a742x9RtOursfa1R+GweZjOUoUb6tkx+iOmL9WCe+lGZ8dWCm1fUBs/sMNdaCbZ7fF+Ni8h9G9Ld2Jc0mSllurxyuW6+Uzpw6yHajLHavrB+OOeqbzxmNIRr+hduos/l/tipkM9crC7fG6UP36DV5ZPVtbG0P0ExTxe30GstjM/DUQri+J9t3XvjDe/noUv0qHx474A9GgGY8CJIFRAAAAAElFTkSuQmCC","e":1},{"id":"image_28","w":26,"h":30,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeBAMAAADA9RPrAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAwUExURQ8RJkdwTA8RJg8RJg8RJw8QJQ8QJQ4RJg8RJQ4RJgoRJQ8RJg4QJRAQJw4QJg4RJDd5J08AAAAQdFJOU/8A8uQauXarzkkLh5ssV2Hpoh0+AAAA8ElEQVQY003QO04DMRCA4V9eNiu0EWjAJFmJlYxES8SjoyLkApsbkLQ0lEg0rOAC0FBHdHQpoA5ngAtwA47AjCMRuxl/9sz4gcTh5zGw0lebaryRapCn2nOp+kzTPc7TOrYT7ZInusSNorzVPxPb4AcnGq5gYnq7ONBwA7bI6NfCPRya5o2e5ANsxcxwJNIDytiFjl0FuqaaTORVVUj/kwqe7AC9zPLR1FpLiv3Q0UzKKljdjC71Me4F2wvk1A2cmjItRRr+h2q5VoHsrFUivSzEqXNs6ts/Yq67u6W1n/DX+ryhVGc/q3+p3h8WIt/yBx/1KZf7o2fOAAAAAElFTkSuQmCC","e":1},{"id":"image_29","w":107,"h":87,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGsAAABXBAMAAADxKabpAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAwUExURUdwTA8RJg4RJg8RJg8RJg8RJg8QJg4RJQ4RJg8RJQ8QJg8QJg8RJhESKQ4RJg8RJk7AHnQAAAAPdFJOUwD2687evKdmUZIrPX0JGZHC8voAAAQTSURBVFjDlVhNaBNBFJ7an8SkiWJtrWLdFg8q2m561EuC4E1ItCgUkcSfIuIhrXrwIBiweLU9eE6qoghCK3rxZKQgemqxgj+nKF487ib90Yrjzuxmu++92U26p+7LfjNvvve9nyljjH15N3b2/SLb5BPm4tkxOrcpVKzI7cc4WtoE7Ct3H/Na87BH3PMcqjQLa+Un9A3cznKTsBc8E5nfABrnmoPleY6x6GXNBZ5sCqYLGGOfT7u47iYYDXEbxtg919OuxiFsd2EseqqOqxYawbZwnnFfbtRPWGuE++6FsV96k/vd5zzhFehwHRd8vgUIY/GLDm65Ehw2noKWmw6uJwiWJTB218EdCYAlOe/HtpcO7pg/LK2A1bPCyAXBtlOrs59Z8JekCsYmbdxKAKxPZb9u4w76w/4pf5gOPJ4FW1eXpqytloofbFW9YDQtcbv8mPzt4/9WOx9yPrBlP7oe224uqlVS9Q2qTcthtSZNX5h9PGOc/mKVcsNfeh1yu93KNOUBlWrCh5VZyzruD4tLN7uJvcWP4o3KxkG5cSsXyVPK5jLtHCAFnhGHwzLoCSwFDrT8qovgHsqYK1qwR5SdGukANitou5gGPc/zHqz5NtXprBSoeV6XFBUrqSAzCWUStXY/L/+6DWjD9UEMCgX4XpPHG0Hbwfb8BsVbLN0rtt0PbXyNyCSFvBSa76ih05kVzFMfaiZ8r2X3fia3S+HcWMUGo8xmjDlYBGAMokQDSbnQAkiMH4QUDSeqDO94FhAlTsz34MWBECOiE/cmoZ7ucCgLaUigwchyQIdEdeAsb8FUOrmCApVEFkHuX9LQiZw+itAtgjkIel0vWJBfSUoG5gAuXrJtmFS8a3BYwGkhY4DWakVezXLSUWM61by0leHSuOvMKDJTRKofcmLSeZG40I7Y1RWVuUgTWpQdowQ5SamqcYGGMwOGQ9qJRaoMUn7X4co1piAFFVURcY8pohG2HVLKZBz0Op7liskrjzPM1mUCOuSmfPjD2MiZq7cqbdT1TqgvSVs9BEsD9rXlinB9ivBUhRFxaYs9vWQP2hr10iqq3sq0AGl77l5BqrQbZlAd9DgUc68gkMu4ZdnnedVwxMPOhoMkEVeQbgyQX7F5TdFoWmB1lFwOwU+epMlasmfnkARN1EdDadp9LRf+4LwcUowRayShvBoIiZOYJZphSCjbkAZkbeylNyCUdK0wBPKwokGRj+DhopjdomKOECm1TiYLA3NLRtUiWUlMkuBu91a6OYW9NGllAN+EdTr4x3XMSYwc96fCzQkybhZJJZim1ygrninCLqq7kSS9Dk3gYFoTH76DSRWaoEKHdHwb+0SvbqFhst0kuV6kyejMIg+ODxyAuhjF31yYUg3V3xr9i+Z16T+d6eIOq03mFgAAAABJRU5ErkJggg==","e":1},{"id":"image_30","w":106,"h":87,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAABXBAMAAAAe683XAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAbUExURUdwTPZtg/dtg/dtg/dug/Ztg/dtg/Ztg/Ztg2S3F38AAAAIdFJOUwDhwh8+qI5d2+VbKAAAAapJREFUWMPFlz1vgzAYhN1C2o4l7cCYkA6MQeqQkTFjFZWEH9DQjNnKWEiivD+7oKgKGH+8vg69FT2+s32yjRBesQqq8fpzLlyU0EXVxoXK6VenPZ8K6Sq2nUddnVIedd+jqOalHJGkdw71IFP0wqBKQrAdIZiKsmNKyorlhGAayoLFGopmEFWlzPJK5UoRiuo5QtGzliKTZhClXREjpZ1aaMaeIEqT0UJpMsYWSp3RSlVzh86bzeyUymxnpVTFYlCKYnGoYcaSQQ0XZEmI2YIQsxtCzG4JMbvjUbXx1tMqNdyw7IghIeuRQ2YlIWYLJkUT921udDQ+HVgRuRsmrcfga8zpR842SxUPRLeIXsilaqBTUsQSishuRy8iux29iCM+1emiz6fOLrfRtYuuJ+lFe+fTrdX3P00sgXbMh3bMIeIRititog9NzCHiBIp4/PsxkEATa++xg/thuoQi+lBEvtkbZPYoELODQMzOAjEDXyx7gVzRfTNuGaV3zoKFDd6YCWDVZIwBq2bPiiJbRdOg+RhEUbYuPrZT3s+VrNevYpu1IwXjdpzG6gftaC/iUZIH6QAAAABJRU5ErkJggg==","e":1},{"id":"image_31","w":191,"h":246,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL8AAAD2BAMAAAB1k0uRAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAnUExURUdwTA8RJg4RJg4RJg8RJg8RJg8QJA8QJg8QJg8RJg8QJg4RJg8RJujnRRsAAAAMdFJOUwDzzeKbtg+CS2YiNhVJDboAAAqQSURBVHja7Vy9jxtFFLfX9q4/UoSEHAnawpEQkLDFESAJYQufUvAhF+FDCNAWdwkfjYsLCAkJFz4iUUQufERpiAsfCIXCxREFaK6xfUfucvNH4Z1d2zez82beW/u6bJEPe+3fzrz3+73fvJ11JvPseHY8O54d5OPfu8f7/WWPnfpg9RgBHMbY4P1/jg+g7bpjiOGxQdj+MLMyRmBnfjyeecqz/UzmpxCBXTmWQWyxG+M/vwyniY0eHMMg6oNe+FfJ54P4fOGDKLu70T8qH3KENx98vViAAjucRJuHmo0WnE59Vpv++zuOwF75eZEAwejIf+5FCHu/Li7W9nSG+BGlK2Ov9hYXgmXh/49ihCvbCwLIsvWMEuHNBSE0mfzKBGGvtRCAsRBBCKNFIJRDIZKPOzHCcAGz5LCTilfjbGVn5gewWFX18u0Y4YW5AXZYR/n6SoxwbW4pZWrO2kGMUFt8Ek2dwCJSqcKeQG8V/ZgOc5bLQzjB3Ajh3DwAOUmJhOOrOAw35ioGuk/HhBu05kmiju7tlbnD4A96BlPJj3fSV5uhQUnc+djgGEd/M5a91bRJdGA6ZXOuXD3BXjTOojfPJHV1NBDDkG6SPLVYi8fv0RDOpkkiFzXyeupJKjGGIWkxnqQ05WywijsvJd3W2AjrbbgmdeieCKkylag27NKTaBc9mfyokpNoHy+7vH6uEpWILWHPjTPpLDGJEESeHLdSxHmNNKkBPc5dEjsdeoEOcESeHBtkPrtIIk9bDhzhMsF0YYkskGGEXr3lyfoV0FLVInPfoaVqluGJLBToF/BZukQEqHA+D2poeVkmAsR8Rs6sT1ZHLsBoto21NEWZtfBmdVyQGblETVK1iqMBS7EOzqMFIzdOh3S9B+QQslSlENiGGMJOKqczZVsVM9TdVABR9Rxi0uEgFUBcGKoInh2mXFzjhjA+67+UC6O/MEMYlxtlJwfVZMIMISTyckqAzBZCkfJEJ/hncgh7RtWiWJCPFEOoGZSC5IquKKLwxKAUFDG987IqkToGALztss/XVFzY1/ZZGEM7nEw+4YY4nQcavW+P38f7uo1ExhT5HC1pPQVYDu4nkL1zqi/QCn5TA/Do0wRploG6UNWJKQhfeqsnL/ZrwKpqLxVA5t4X0smqrlpBTzZPB+Cc2hZzcgR6pHOacqCRw5XXxGvdhcSAgT05XytWBaGzvwEwiq9IluF6owEoe1eFuViGVXsIA+hq/p3R9lFOqbOxqAuzAcBxrx5Nl3WNCVOveGyT2gazIWyBHpNnqnolWTYB3Jy1h+ow5z2QzSHAgb6DMx2CCyd0DlyPVEwAY4d4bWoPdvUWaRtIgH2DK4hrgKW7lCZEBTOA7bGXJ7XvKcxISPFKRoBx2Y2asW2tQ/OB2hwCHBoXAtVYlqsGG3lSvYwwed8gGrun9TcOMEfh60/Ni+IbEedbpoVtJxVAlJ8VgzvIqucojwAIq956eCkjk4tWzBEKYC0sWAWTUQ+UBgkF4IS3uHKmtVxWyTUUQBjAy1mTppSUPjgEMK+gxkk+7BuvJMyjQboRhGd5xqXWmqqu4QAiITAttTjXXkwH0Ea1h3xFoiIBIve2bu5KJIoCEsDmBcW0ULEUhTPPcAv9JkN0ffhlHKYDsBim61NPGjAHCVDEjCAi83YCANWWDRBBjvps1QS/Ud2cNYbp3yaDgAZwUM2nZuKsksnZCSzqYIIgWsgiukPcxfR9nAThK+jNBhbqTFe+DBt9Oybse+hW9DMmPEkHwBO1ikm2kTwmZF82i0m4QkKzXHRn2cGoRTlBNR/fuvYxvStPrsEevtvSxZC5K+d9gO/u5zCJmpMnso5vqXFf0sPoXUtSj3VkEDxEotpylNuEtmYbUzw8ict9QmPWwrCyLXE5S2gtVzCVPytdRZbSHMcEgUd5VUwrlTldhYzPPobL66J4KD5TvPTu3dV0QfDFSXfUJc3+/vXnLn0ib1CvMAQtm+KclCB6Pvx4rFKnX/qhRw1CQ7zkMqiRlW+5X3zu0nurQg4+JYqFRq8fx/soT39GkSNHKvzhl4Dqcz7e5niqM5tQ0xYGW0ojTxe3yvUYYXABXxN8MVB1vdrF++wZO9ObpIiJl3XxnK5B7Sa74NmwFRPfZNT6IrX6JjH6251s8O5EQjBCpNEeRYy+8WcIfI3RMjuLkYhnSO3i+RlCgLu5eKTyFRACZl+fblLfQVDNFfLGQdnfXyZb+TFUEwWliDOPf8Shfh6xlpJymeGs15eTZDK7hIZYu32k9crPEJbNeborzlgrQ0LYN+fpUJwxnHH5akpqs0MbiD4DaVx+myAYplQsfBRfsYl7WMAXEiGH64fMvLL5gkS6F9Ar2cx0r+MBZUVaIm3LszBRbgiTYjPS/pzbzFw2c+IgXdIt5eiJihplTe0RlggTNixT1otN4taKrpHLZXHW+8TdJwWzYot1L0shQlyxBuaKUBNC8oQAIBEVci5VYq8pQwlaW5h1IhGijsdTI9OWxCG3CABWoow/VCzU9kVtukEAKCXc18c97SW0qbukXMkw568oVoJDcUCkjWTykOsXZT0Rx2hRd2rviEPOuzXFGmGgm1OEvT0Sw9vJHcyu4B5tl7QHKJrimVg47q6Six2I2YgOpDADm4qneALxG5vUvXBHL9BxFTkueaEGI24XPPr5TVU7tS1eco4qd41ZGhWVewkaUp5R08iaFd1bSo8hma0yI6bREQH2lOGTzZZPTCN72h/Iqz9pSWW1Tk2jqSXfUHsY2c1tUdVomka+WmXykvpY1GcWJ1niAN1guUvkUItaLh7yGlBKKnIZdokb1J34CgNgd5ctJ75HNF/xF5TBHVxyG6pN9EY8sXs8WZZQADlqlOs8/7fAai6vXfPUKEdNmgBUAE96h9ecGjGNToYTMYTLdkt+geqADzS3WhP3JfrEwh/6hj0LVpjEfQmLGoQwTfqwC+7KbxWpz3SGUazDF9VOfJ1HDEI4B5qNkjuJBG4Tg9DQ90X6CQCLkRab0d49eNDJWzcV4oN4Bf2je42kuHm0ohPtAQXXFSeSAH2itYie6MrgAQqMtiD3tE2LbBLAdmmJWtc+MaYA4JlNkOwdbfdOBZCj/R5CVtuZUgGUGMkdWdrTVQA8bHgyO1riZFVvrjHKs2kVbdYpARzaHGlvJTSUw/NJeeRp7l9xgKT6bzGK/6rrPL+6FuVVO+W0ROgQ3/QoepTVZVFbHaAtimbndCnRVSdkiRGWg3kdk5tA+QoYvndU0vlZyA9YhDDbuiZ2AABwzcb+kICvURbw4ZU2gc2ehpbgwysO4Rn5pian4SczAvzPOezANVkTHws/hCwMUNFkmIceggWLkaPhSA49BM2jzQVNqkQ/VYAZQhEmpfZZxlvoIbignGqfZYyGcBlHhA6s1jBdb2F/bKEJAjT1su8hf/+lDwJ4en9iIX+TKgcG2TXc5glwP4bkQDfUjA8l53G/F1F2B/Dn9SvKTdxPXvgjeI71Do7/So55/2owBGlgItJNFBeae2DJN+7mXsG4vA1Y841aU/ERK6rfD6B6Zp5evglhz1CdnYtQlmJ2iz/SPM45OdQXcA+5mnz8xoVMmmOslm8jz8ykO+6/FI38f3F81AyRkO+JAAAAAElFTkSuQmCC","e":1},{"id":"image_32","w":182,"h":234,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALYAAADqBAMAAAD9kqK7AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAYUExURUdwTPZtg/dtg/Ztg/Ztg/Ztg/dtg/Ztg1P6lZ0AAAAHdFJOUwDdtyCTPlwlXJ6YAAAEHUlEQVR42r2cTW/aQBRFB0NgG+pE3hraxltQFLFFKSrbbCq2SK3iLTMB3t9vXEHrgMef73RWUSJOru67bzweezAmNxL73UBjKCLuJ8NOJBt3BP1GTuNuq84O5O/4qs3e/GPLA2L3abgtYjcgPbhga0rfyNV4QOw+S39B7NaEB1IM3zJ2q/VR4mPL585sL1psV8+HfnbnggZSBp91Yo/K2HLfiZ2WsruFJSlndwpLBbpLWIZV7A71DCrZ7es5qma3tjytwW5reVKD3dZyqTXumZi0tzyoybYzJiZtXUnrslu4ktRmN3dF6o97KCZtXAmasBu6MmrClhCKSfN5JWnEbjavSMMRQjFpWM6BcMJ7wglfNGbX7860Obt2dyYt2HVdkTYjZCLYQPhAOOE94YQvhBOeCid8LZzwSDDhfRFM+LA9u1L4QDjhPeGEL4QTngonfC2c8EQ44ZFwwjuyy4T3RTDhndklwofCCe/O9gsfCCdcge0VHggnXIPtE67B9gnvCSdche0RPlJhO5AtL+qXtApTlNiF1dwIJ1yLXSQ8VWJLDLIP2kuIclPU2AXV1GM7kH3dm4rsUHfJVm6KIvvKFE12CLKd7lKz1BRVdgiyHci+MEUVfTHR6rIPIPvjRCugKRFoijLbgewPKYxAwxPhDNdmO5CdN1ydHSPX4ivD1dkOZOcM12fHIPugv0YuMFyfLer3JLmxBdmx8j1gYTFHwhUTYIvuPkRxMQPhikmwD3r7bN5iEmxR29f0F/NGuGL2CfaOWWz+GUdoYZUPSgIGZQ0GJSXYS+ziIHKLXRxE3rhJ9hxCYiI8hxCZrAScrE4hRCarcwgFDGEEhnANhhBp+j3Y9JZbWYnMuKY/BXwAhpBpzB3YmDuwMQ9gYx7BxtyDjWnBK6aAV8zTlsEAbEymef7DlScBGzMFG3MBNmYPbEwkhA5cWlnwfsqS9zwzMIQzcBmxBdf3WzAoSzAoMRiUmNs5PU+ySFB24I7YznC7P2+GK+YB3AY/gtuyR8MVc2+4Yu65Z1859gZk6xvuDGe4Ax82OsMZ7gxnuDWc4RZ8cmwNZ7g1oOEGNNyAhufZc85vbVOs4UyxyDunReyAmk+y50gRx9Y1xRnOlAu2qin7i7cJ5yD7BmRrts8VOzMlgtjZo9JfymtNIOJH4MzN1doeeMHtjXsB/++9FBHxW/DkQFx08ivi2FqTytJwwou/5UlHuOesnYZw5zmgNUda/iQ8QVrn1EARE0ElV/zfftG5nK7kOOkcKqXGuzo7hePSdvn49PT44/V1tZpUXBkaxzD/pvpgUisntWMYegJQfvB43lT2h4+UH5iuFcPQ85GqE+rzprJzH6k6Wd9fZeN5Op1OJuPxOMpERe8/jCfvv5o+Z3/8dvWR50lkP31ZZf/zN2hWl+pHzkvwAAAAAElFTkSuQmCC","e":1},{"id":"image_33","w":89,"h":91,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABbBAMAAADq7TSXAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAwUExURUdwTA4RJg4QJg8RJg8RJg8RJg8RJg8RJg4RJg8QJQ8RJg4QJg4RJQ8PJg4RJg8RJmN7w94AAAAPdFJOUwDq+/Tdln27qkljITQPzPlUNIQAAAQ5SURBVFjDjVdNaBNBFJ5i+pMmKa0i1FaI1VqrVqKilOJPigc9iCSUoscEETym1oMgQouihyK0tkeRVnv00FQRpSLEiuChYFq9CVI96EUJ2U3aUKTjzu7Mzpuf3XRO2dkvM9/7+d57i1C19W1p6W0ebWUFr/zYcXyvtTpuV8WGB+MxTJfxpwr403YGJf8pZf2wkUF6rnHiwROE5g0/dOgmPbc4ZptYi0d9KP+k4LMz1N5Ye1WwcZ75LhIte9IYdsDmQ76XKHmh71HKabA3gmf04KcOuCS8TuFVLbheB0ZzuEcb7ahDQ7p4EmvNHFA5k/UCFzXg7443kvL+F2xMePH4q7zYhg01mldtcJt6Zw3G/fJeg51K60iLPiPvFWzSaQ06gPGGtPXV5nER6dHdUjJFvXgg1ITxprjzwc67tBdadHgwTtC7kFc+mMLGrJ0eHtWgwbo1rxy9ijzROAeepwi4gnzQIPRh++ikF7rWegnScp6A15AfmnsrkvD2HmOShLHCuAv5oY0kUKnv0bb+kpAW3u9TvJog+hlB03R/55FVLjoUB+l0C6IW8hydhjayMN7l1oSut+RcNbjocet3B4Nk3MQK3th3x9WlG51GIrBTbgqwRK47h08igKaRXybuc+O6TD35KgpEt8KzqiDkUwDbtfpNHIr/s3We0x7qxFRtwgfIpgUuTYA6iA3OycyDIJs5FBkW9ZxytUOifkhIt1H0iBTDHKzf1GlB4pEh/sIi1kx44D4QpQTTPAkN1HOjdROptCYsk3HmhwwW61DQMo/YvRu2zxiTSlQSb9jpq8WseB/+x5LVhG9CDrpdls4eli9il4irhYXY1sxoN6vodqnYU7YJQc1kxWTWCC1SUBAr9VA9moTSTqp6pYwsS2GkBExm5FGlQfRJsozTUE5z+XL5G1JvbWQErHQxcnLNL2uqyREayQ6ZorGqdEunAZLAVWQiSpOeptWE6KZHJnJQRjO69bJLCroqHqf3BSSW5K5OGUxc0s34p8UOzSsLLJmHnblDdGBKR2SFuoQoH/bBCKkLSoFNMQIZ0V8NOo+QmJjsb/Csl0T+H3+0XHguGbnOqiscA6xH8xrJb/NXVhBOD/N7RaRt0hG2dQJGsp+hy2LY3dUKAkaTckTQQo0LPfb7/mWmpZhrm4iepNjOsbyo9w3XrDUheyQLnZCweS0loO1RqTOtaJK1nAxE22rvlQRM8qzEvVMWIrkzr8ykPLyLEB3QyMa2ZYgrrgKP2VAm2xhoMwEY+UW5IlL/rQHtb0JfJXXZugosLoE3Cm0yL/DqbrWIIkCXdSLrghovgnxVaM+J/S4DlDaO0xrZlASR8zY8XtINdqeFZ45OdWlGevEjKsE/NjKXZHRGns2m+GD3XvF2QiruViq5Nofzatil+T9SaPOZAg35utetnuhZzafPY0/0QG8WbX0tiDr6DxmMoWqtapeXAAAAAElFTkSuQmCC","e":1},{"id":"image_34","w":85,"h":89,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAABZBAMAAAC9GXUSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAhUExURUdwTPZtg/Ztg/dthPZtg/dtgvZtg/dtg/Zsg/VshPZtg6zo4F4AAAAKdFJOUwDgwiCnQIxcDEzztAWqAAABvklEQVRIx52XsU/CQBSHq0gkTjRsnbAjkzA4E0McmNA4MZmYdGDCxYGJzYTJzZUKiL6/0ivt1Vauve98G+TLL7/37t27V8+ri8Z7dHMpfnj75NVH6+VSdMRXtejrWArRrUMfpBS7GvS+jMoHR0UmHJUhR+XLjA4MqHwb0WZgYo3JNXpiDFNyd2bUlNygAjUk1wiq2P0R269C5ZPVwFiIqhoc2hI7ULGEiR0XuFZW5lxWHrlsibXIlg7ZIltkbbLFq2yTLbBWWWlz2V/WLitrzZ4KZ6ecBRZyv/bMcpbI6vqCzHJ2Stght5CxyELWv1POMgvpfWMW5I1bSO98j7HJLGkyNKa9oFloYcstHObvCWSTub6C7EaxC8gmrT6GrGqzFkSTIz6nrDq2M+HlXTmUjJYheWJnvAyYnTuUd8nZrUNH7hzYrpFde5UXM0BsujwwNl09Hex6DnPEQ7Ms23UCXF1Y364DO+GsXs1I73QcWL1tzbgFwmoL5G7mC9+KWwCzZMN3ouIn1gIMHB0XdM3JXsKevcfYA9v+X259XDIlvH+msjYbnT+fCtdRNBqNwjD0fT9WUrHvqx/qryiKCrI/PdaGVqEjP2MAAAAASUVORK5CYII=","e":1},{"id":"image_35","w":119,"h":114,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAAByBAMAAACb2lMKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAwUExURUdwTA4RJg4QJg4RJg8RJg0RJQ8RJg4QJQ4RJg4QJg8QJg4RJQ8RJg8QJg8RJg8RJmr5n+UAAAAPdFJOUwD47cbiEqIm1Ga0U409egyMdCwAAAV4SURBVFjDnVnPi1tFHJ+mm2w2yT6K6/qrP7J2kdKDvnioehCSi4hdIWnrH9Ai9CKyWShePLgIIh4024r2ImzqxYOHBMFj3QiCCqJRBLWldKsIHgrLewnbNNvN+GbevPfmO/Odl7zMaTPvfd585/P9fH/MLCFTja/JlCP9192L79angs7+8yT1xvvTYG9wKKUPkkPzn9NgJLb7hh1iaSchUd9RaRxKhJ1/NkIu36H7ibbbCKEPv0lSdJgAO1cNoM5HNeKBEzBmhdjH/mW/UwkYi7Cv1ogALya12f1CzHjg0YRcBdjBRjA1Q2lvMh8FPC90w7msZ8VE2rgmsE/UosmDHuu1CcDfCuwj8mTOm9gYj72CYUnBmzk/FnsOxRLLm1ofh80U9f1yB3hzS+OIFk5aUMmZnyCuBNGDrpaMvNl7E5HV13lNe9u5H4s9KMIIC4HimDQ2J5LOKYKDd+PALR+7gj6048X9FepgCdwf6+GBIWFU48BpP5TcbcPzRlxYXYkhS4Ado9E+9hiZAiyM7plDtmwG+0w72yQWjH/a8pl+mcSCaS1GHrEKKpsKZdb3Unsa8KwfxO/FBk3DAP4NGv1HEvAcZ8sJY/iFtkGeGPiOwnRrxQSuGbQlhdvmoIZHFSKSVQ6WcvJZNEGj4BzHHgGOOxr64Xs5kzio/6jTBvsYhh3N8zLYxXPe04B96opNf3y6LqfePrpwHzA0WxQl7a3jHVAxBujC6yo3Tb89eAbWqh628EATE6tK6QvuBnToLkZ1SYsxRvef9KRi4gjxsZaOd1hhsWx5YdaT0D2tYlN/g/LYYgZeAwuTA1qhu8ywelu45s2dU5LwO2qJnS2iC5MztOfV6WOKNUpxT6E7ZvO9v9VSuap6tEHxRiNF+0XVLw2loeGxiNWfGcR/ttJK7bB3njLkQ0U4aQrTNqfLqRsahBNKqqIwqLhxj2MZ54xeO3KKMS3TkSVd1fP/DJS2ZfATIZcQHzCB7QPbKK1462ALu2oK3IQCawi6/lMtf817cBgrZhVoNevKfl+o63LoILlT0kgqkHWhuKL5SaOCuZl2gR2+uhogbrmIK1r9pnLinWcKeVTE5Un1tW685rJRlchSV3r5V3FUfvvuTz9fBZ4aAer7ofJeijbHmCnlX+cnbmd5Q4rmRVDzDod/Q4vcH4rBca7fiZJsBTiqFEVXR6bLkQ7N/bbuqZQcYamAOj944OBnjTw49u/IOs9Ejl3TwPRD4XsXCGZJDux2RIUy2HHjgLyWBaOxHERRLjqrP/fj9Vu3bl6/+dnFuu+be3J0uiCt7kWJyWPj9FVd7hU5CY9ApPeiPE6XP0FONpGhDZjBC4J6npge+lLLDgXZN3yFbfjljgiWYRfL41KgZZRUyBirCCc3kbx0W66QKbVQb3KZnDXUAC7OJYLK3P/aA/+do1g2LcriLKvVJMeitWBKxRlQLdiX2srh2OXSHGBWA77U0sHl6nSrhsrF9bUvp7hdLbN+SqH/YL+7bm4vGIUX0A5DnNmj6rql50dvW7bpUgDGY0tn1W8EHbTFXwO3h7be8FsxRyMgEax/9eOpgl57AokUsDWqaK4PduSAX/vYwQe3+jZ4ksJorZqs5k+WAHsl5C4Ct1pR/BaiJMtotRKnq8jRbMZodRm2ymXkmLKlxhkQQBMQO0Bajp7Rahe2F0Ok5Vg0nl3vwxdHiIrOG+8wmhC8R7TOEr9AuaxK2dZvxQqG61TeJ5wYs7+M4XIwCw7lgoNDGhgP5VXtHwEtXdoZ3FH5onbZuamLyQr7Cs3JQy1fqXExb5cMVy9OU6NWqwvf1AxWH9E+6E52O5/FLm3m3pjsivwX6pwiU468TT+YFuuVzlemxpLMizqL/wMR04Ao3xV41AAAAABJRU5ErkJggg==","e":1},{"id":"image_36","w":117,"h":110,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAABuBAMAAADrO0HXAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAeUExURUdwTPdtg/ZugvZtg/Ztg/ZtgvZtg/dtg/dvg/Ztg6hj0LwAAAAJdFJOUwDgH8CmP4taTYK8sgAAAAI1SURBVFjD7Zm/T8JQEMdroSIbrS7dQBMTN0hZupnYmHST6MKmSJq4ObjwJ7hRQcj9t4KY8t7r+3F3Xb2VfPq997177x2t51GjMx/F4XjmMeIDfqPs00Vz+Itbpug+ljQyyI8obGloKqCwIi1VQgEe8OgTKIE361FF8WZd1VC0WUFcZzcch0lGa1GABiimSL4BhXc3OzGg8MypDpb1Yz47MKLOprTIOtkW8Nkplw2yS0vKMLQ3xQUw2QnYY8hpCidrq84heuyMLawzYzPrztjMHtp4a2WX+LMNyRqPCgQ7ADaLMcrkFU5WyyJltSxSVscGMZvF1Ue/j7AZa1isUToWL1tjCbK1c5Igq7IUWZWlyKp3WcpnA+CzAz5LckqZN2iy0pxDlIU+8p7WRIm9px0zITXlDd8paQZOiewXt6fk44qasriNqCkLbUVOWWgNcsplg5TXDVLecntZun2nwC8RebnHEtGXC/wKCTanfJsZKVc2t4Fvc5fOVofkgoyu/q2SIuZbtbLIfjusesGMR3qrNjFmA+qtekVtwAXVKWED5uQKVVZ5MZmtrPIbdEanwSY6bbDcNn+59CtBeCXa4qfsnfBTJu9e8S1ul5+yd8NPmXp9Si+eP2lsJI6gC76s98aXJV4K0qB/BnyWeBf17H8w1jnWqtq4XvYtE3xk/w8YWUYX9YuEorL/2SgcqX+1r4vsLglDCMNknBUzy8yE+hDiF8V898BktHsk7B56niRZdl8oH2B+AHCfJJtRpnsaAAAAAElFTkSuQmCC","e":1},{"id":"image_37","w":216,"h":280,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAAEYBAMAAADMkSXeAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAnUExURUdwTA8RJg8RJg8RJg8RJg8QJg8RJg8RJg8RJg8RJg4RJg4QJQ8RJoZ4WTUAAAAMdFJOUwD26tpKtchnhBaeLfM6b38AAAzGSURBVHja1V3PjxtJFR673W7/4BBEYDehD4PCahdtHwYUxGH74IkEQsiHCAmJlfpgsVxW6sPMHjggH2Z2JSQkH8bJsgeYw7AIJIQP4yBAQj5gOzOZhPqjcFfZ46ru+vG9tj0SviSZ2H7dVd/73vdevdezt/d//fr8T5d3ZuvfIfv4jkw1f8WmH12d3Ymt2qds+tda9Lc7WcKIzS729o7f3MGu/TBi86PFn41w57fW/CxksxP+19HNjnet9lPGph+KvzfYb3dqq/Fdxtjj1b92e2u/jxa23r79Z50d7c7WP8KFrWsJg+FbO7P1u8zW9ET6SX/a2aUt9oH8I4/t78ZWi9t6qGKTXe3EVpBhg81yy5ayXaxjO85sTZ/mfjxh39mBsT9mtti38z+u72IdP+G2il/cZuxk27a+YLoNE5v2zW2TFAcie6r5rwmb7wIc7F3d/9X111D+dcptXWtJt8bYzfY3bGoAQsy2SVmB2LAPDP/dZ+xge8YSVqQp6VVlW3S1F0bUr8I12xplWVC/imlsa9Sfclu2GDli7M12bD3htuY2qTFcvOFyi4t4YXuPz7aEx0TP9Sq/hLIGKv96LqjDva2zLQhSYBEXrzHwHvdr5ETiios3jzO+G4krLnYutTODiF3uvObijUlEuBgSP/obg1+QPRQ+vMUbX20BHZBQC9iG4PchF1u+Mv26ichKtZrU8BqwjZhfcAfKQlW2iRJpcmE/RVO91kabNuY39j78/nCDTROkSFCfyQabdsxvrId/YFh+0xqGLMLuKCU3bQBFllwyw8pVDlowKapuWYoeRyTYi1d38ZGXpW/sPu1DHg29qsihJgsZF5cQdIKByWE+ovmKfGOzyzIIflDuxuj1hgorocLFjZ2VWv1ZKSiWKKSUcetRyRsTEuvgbm5MSKz/0lmx1I3xaE3Kdxvlb4wvypS6FCVvjIwQEaDf3yv3IiLkkLNi2ZSVxiHtkG2S/FRIQfBZGbpX07Q5adFZ+UJ9FmWmZ4QrY5scQVDEY8LYZuU8gg5pkSWVzkvvEZhqo/paBc4JhUP3NjHmwQndkJXURyqzYuzIc6T9jYxxduyguHcx1R+AC75Ace8Spj/bTuIkApnDI4N3AQ0OYJ/zvUuJfdHbCvabEO6/PAGwfwV5iBP3tUdnAAnNMHi4pEf9oZMYEN5vQIFs4NYLIRA2DpECSztyl3tid8lQVFhcX+UDuejIHWQgeOwdA8QJOFoC0WIMxNWKM7MOIHi0EKHsLpiNITlwiBSL686IBsFjL0U0XsPl1T4EjwYUWNuu8Mm1h1M2P8N0V2gPn0Jzd9yEBsl4R7G4igSXrO4OaaHUvv3cyQ4ATENS2U4h3MkUADX1X4LJJjuFcAWnOH39QruxmHw9t4ItLmjuxntaZ8Xqe1a+ammc7KMj3epgktLKV4eaEP3kse7+sYyjboN2pEnJ/PllEUVgpt2ykKOvc7Ja9HFxccAswHbe1NU6WXJdZDQwSaxZyDHSCvxCNIngJK9pNubrI1k9t7INhrfOZEx7RljFLC88yW0ZXLCIjKweGURlquq6ASFLjEzKsWXSA4fqEUJEKCLEphgzNmUTnpKqBXgRQASRC9NVaKV5oNQBPQI+eIx5alL4N6aV7ykwukSNDQyLVTGHzYGcZ6WUKoLpMD4xp+xVCVOZSLkhGdvXM4uJoQOpoOpT8MHXfN+QTuybETyXVhvGx95E/6UDm4TrrxE8IBU8J/p1CG263FvXbyPSGcu51phvFcLBrVoIaEXIr2iNje1VlniFxzoJH3yH72m/bQagakgrDGqNBcyeJN4qlxGtPycz9h+txO/Z8w3OmzR8cGOvdcC31kcS4V4B8XRRayx0fclQgL9OPDfVGfOdBYKlAiTiQ2ts7D4vCDlNj4jnChXNSqTuPFqEwYh4AqdBY425+w64x9SotX6Nn3lALTPbtJs69dRUY6wPFAaz6uq8Qq2/a4g4QlYn29cB9XimaIxLHSe7ZvQYEo7EDPGswpCTLs5o1COTYqQeQYVj0T9BPFErapAQqr+3hbF7JGMFdeUz7AgvZPRTroJuHIKnQWmJQ9CCIk7AbRctUSRb/DO9nLdCtNBl9J7dJKcyfXQnhozeuZXmWGCMtkhV6WAsJIMJujgeY+Shl1yay7cMivQ+o3c+5xJ4H75ea3tw+8dnQGliCPcbBObY8K+/fO9rHZOYyG0ZFnzrBjA2f/2LkL1zZKK4ae5GMXGmj5zt33xr8fN3Osba1SxX/MD4rqvb3J/wquHXDa7TUMmpijciphowfsb58hsdrN7YJ7WP55nxSxFPj5z5yNrFMQrSTDOIKcXphZUHbtSIeLCH+rQaYj8V4fSxneFeqi6NhahqnhnFRKT1JFaV+hW853GSg+0/hS3rTL+q5AZ4vjVQCVyM5rJ5B9c7EZ5vxQqtLSci50fOCzxQ8AFKmFBZ8FPrlKI2UBOihprgig4w9iEldhLw4csorkXAbFg+dvZxiasgXyziG2Tp1+EsxlXFubS7vmMiUhthmgR8yMiPwSEZ5Zy6RVAV6XpFXmAbJlbgWt4HtF6zRr7obENChSdv7ATPx9vrtx7D/YHKKWSC95y2bjlfjF++hYLqtewGYD7u3eJ2gDfwyyfHNYY3clZWLCeaLLEQKJ+J+4QW1e5qm0aEJkv5tL9CyMdXRc0GpXtUZqsuIR+Pl1wwoCTxTGKrhJAChWIRghAILLJEmso02cM/l7nnIaWRuSVtU42Qj7eEe/L+L3jSSCYQn5CPL93MI3Voy/2NVQIYl26WkooTcoPGhIAr4WY+rZ4kl3dGhEq2cLM+rUM7kQBImUvgbtYOaVV9uTcpJFwmdzOPWLsK19kYZUSszW8poZUbZZ+mjDZljPgyIA7JyD5dJVSi+KnZkDhyIfv0OWHEOruw/ZQ4ky2LAsKgAC+W/Jw6mSDHacr8bHZhp9QCoBynI20Z6XPj52LqAUIsrYS+o/jJhcmnyRM5UnOjoXGo8f1Lw+eoZXbZgKkL/PSXep8mV75lNzPNdjQeHWkTQfJ0Y1VyM+MQ1el7+rImdT63ItW5J6aad+urFzouIE+1y35s9un0oe4iyeM/qbTJiTGaPS+434QguRUEn2hcLofZ6EqzItRhYGUMwTIlcJp/yGRSYuxNRn6TGVvmFuC7LhIP9aEHMvJtnYfNOHdrYYmxt3MJ7Q1biD9Ub61ZZuxNfpKGb8NyS2WmoMx0mDzM4VlXJlVurUUeIFY5n++fOcaPlVBXp58uicFLmRRe29TUlQosokerEw8V+9UqbckV+lGWOqE1sRs7lAvNkxKPFlGot2tXFL7cETgo8XQFmYZdTwFqyk8ay9iqDBiP5Kvt2XXYlXSV1EcQqAQ1cmy63D8Z0X3aV3ggcTBQIO1pSJ+bVccFUxfC4lsL7RI0rA5XpK5MvHv7hqAEW6k6wPkArPrt21u65joKGLkxq++su2rr9CndQI2WkdNRk5WGKEGNuVmwyKwK1swvnKMENeZmV93G/FUB+Zwep3OiNHJSUMZY1ytcdmjGcjOXQIddsjTSJ/NwMzd3BhgbLoExIjfT5NMxwNjq+JbOw9Vc2Qkw1lyWamMyD3dzJbgIiFHLTaPzcD5piZ3QF57W48ZuNiErzFidK7A2+WF7hQcWxACeRcmbTvpeviyZIp4aZzhskCVqIYNOEGOZUDnyycYKSS3UEJzxaY8eYQp55gARntlNPfCo1Zbi+G8foXKuPqpU0q8WytZdKEjFy3bek034QwQpd/jNRkUm1AiTFtYdaz/O3jUiRphmca65AgE6QyK1t9wvJsUeZKwmilbkRvZXxWsGSCii1/40D9xsYfQ6ondFa6bDwcmMCbkeF2iWvYkVzj2wy8RC+UsCm2HUQ4udXd2pXIyBjNe9XxFd+qlu6zvYZynNw21tC0Ef41feFv26dEohSdAeiBBC7Bxq/beKfUmDaCzR3oMP6piIFqhDLW2j83gDUipoGHq/zYiAuIurgqoBu+DYmk/KO03rAAbFgCRBTJPhXUxbBBQJYqwmV7CdDyh9Ep6JbsDKb0DRO10TmgKMYQMg3VGY9NLkf0BUrBEkiOWR8FiuTDFmedg9VnJoE/TO2OyTFciDFkwD653E3A5XR+elYL0TmuUK+LSDCNY7DVuAiCDsp7AE8Wxkk0DYH8ESZGKTsxMIaH24Xyq1nZt7UC/lEFUFNWswwji2iqqCF/aFihBHq4OqIPvVE/ftTuiO+C3QWN3BEWPEqwNQgriwXUdUWjOCjLVcwqgdIpufQBLk2CnWEsTYj5BaQS2aRo5fe/lsa79o6O/s7T9fuhb6wZaMpfOOe/Pvb8dW+xHwmxpHr7Z0Z8i+Pt/q7w9zeewP7tDY3tkd2PgfTbu5VIv3YsUAAAAASUVORK5CYII=","e":1},{"id":"image_38","w":211,"h":276,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANMAAAEUBAMAAABDsx5SAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAYUExURUdwTPdtg/dtg/Ztg/dtg/Ztg/dtg/Ztg1eFWmwAAAAHdFJOUwC63Ukhk/JJHBAqAAAE3ElEQVR42sWdPVPbQBCGUWxMq1BELWQ8Uaswk1ELmsnQQpG4dSjiFiGs+/uBxLJs6+s+dp9clWEIz+y77+5JJ93p7Ex4fNvenjHjqzFLBDT7ZIx5IcKaJeZ9LDESEFZD0g+rJZlS2Xob045M23rtWCLiKSt4StJTsEvSUrCHpFRa8x6SMbEG6qaPZCqdVt43FBS8MwNDXMFZOoSqAPPpKDgfJkmXVjFCkm1Ow4mSbk6j8skqeDNOEjTGnZkaUqU1TydRFSSfnILT8kkpaCGflII3NiSRKraST6SK7eQTqeLCkhSu4Mw2qGAFp3qfoN0Le1Kg3eepA6rEggpL1ix1Qi0ZTwQq6CZfiILz1BUVY0F52909KO9kuQflmyyPoHyT5ROUX7K8gjK/sKBMjQXl5YsbP5KHL+48Se6+8JXPo4gL4z0yKijnZEX+JNdk5QGoEtPPsYgDTOHoi6Cg3HwRFpSLLwKDcmnugUE5+CI0KAdfhAZl74vwoMwaC8rWggJB2bamKJxka8FcAGVnQQn9jHmATPE2rrCgzCsWlI3bhYKycXskQ7Jxey6Emna7lH4Wbi+kSJNulwvKPEOmsCisXA5VYfqZLWUKY16woCZqWNAUb+MWMsVEuxDVb7xdFKKk0UvBRBY1cik4kyWNtQth/UbahbApxlCRMGmkM+XSqBLTzzxRphhpgok4ykBFNdJvCwVUhuk30G819KsfMP0GokowlIZ+A6iCQyUYSke/3hlfR7/eqBIsKiX9+lARh8oxlPz8O3iLqqVfT1Ra+vVElWAoLav3oNRS1b0/yDGUmtW7KD39Ousxevp1okowlJ7VOyjFVJ3WVc6hEgylmaoTVKFIqq8w/Y7nK1X9jlERh8o5VIKhdFNVx1iqjq7Zcw6VYCjdVB2hIg6Vc6gEQ2mn6mA1RjtVB8tZOYfSTlW7HqidqoNVTvVUtWu3C23UC+eKknPFlnPFFnNF+/hlwaHUXdE+KlN3xf7+VN8V+7sDfVfsLwP1XbGfGfVdsZ9DUg6lT2qmK8CANWfAkjPgljNghbWlPWqjj3rmDHiFGbDpS4ABm2aRcyjAgIYzYIkZsGkWhAErzoCvnAF3FbziKjjFymoOkHbTPeH13X3cueNscOFfVh8AlF9ZeaF2ZXUPoK64Cn7gKjjjKvgWm612ZUU0iy03MVZezcJrrLk5OOZQmVcLDLmNu9BHNbdx95gBiRb4yqGaNR+g2zYLMT+51ZEV5nUAVXKoikOtuaXUmENlGKrmnlC0D0NSzID6qDWHijlU+zhzg7lCHXWwl4dzxRnnCnUBD7aHKDvwcCtPihlQG1VxqJh7zyfDUDX3olnJoY62GK4wVyijMgx1vJlxhaVKFxVzqAx7Lfpkh+Y95grVxYSTPcILzBWqqzEZ9mL+6W7kcyxVmkuPMYfqbNvFUqU4N3Z33q+oVCk2we4O6wWWKrUarv7rRtA5liqtq/be4xhWVKq03N57zMkCS5WO20vs2IKho0cSKlUqvhj65MEC00/DFzF3HMjgkUgbxuoqFlxiR9+MfHIjwoIS98XYOVmUKcSjGjkULtpgKPFt6jF2TtbY52WEw1pSZ+pNfDNHNKyJz1J8/7Efj4+PH3fj8vLy89/x9Ptt1MbU9fs/vvz74fX1dfOLb/+n/QNDQf0BKbgAsidZ48sAAAAASUVORK5CYII=","e":1},{"id":"image_39","w":156,"h":137,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJwAAACJBAMAAAArjUxWAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAqUExURUdwTA4RJg8RJg4RJg4RJg8QJg4RJg4QJg4RJg8QJg8QJg8QJg4RJQ8RJopBEywAAAANdFJOUwD42+zIg7OaET5qVSlQ6G/4AAAGZklEQVRo3q1a22scZRT/ks3szl4ebEzbpMnAVi0VZSCRGrywsKlBCjKwrYJPC0ErKrKwVRAfXOia+iIKhvogSiGxCD4YaGpfBAMb4+2lD3tLaPT7X9z5ZmYzO+cyM5uZh7K70/z2fOfy+51zZoUQQtf/EQleJUOeungvKbRJaV/tCzeTgduTTyzZgN2L3yYB1+gI8eU1YwD4+KV3fjsxnNmz/y18aKhDP/fBydB048B58fd5hSenPz0JXEEeuq/ybzt4cvnr8eGyQzhR+MjF674/NlxO9o/feHhyuTUmXF4e+d5d8/A6lfHgtBE4cd9w8dqvjQWXlv+OvP/Gw5PPj1djc6MffF7y8M6M4cBmEE7kVzy8mfjE8BDACX0Y4OnYeNtyAX74g+fAXtyMrsn/kE//8hw4E5O3THhYlT+mi3c2JhfLR3h6e3gvx4IzCDhR8AJ8JQ4/SQpuiNeuxClZEk4ULLd+WzFKloYTWdd/p2OULAMncm6+PB1DFhk4kTHiuS/Fw4k/3OpICE7cjZV9E2FwuhPedj0ioQTokwpHtOPeCYUTU85xX4wCtxsOJ7aiR7caAU53svkgSsMTAc7LvmIU9hwVRvz6xWkOWgnBCStiNKxocBknGpsJwYkdhdePANePAldwkjmsNsyIcG4yHyQFZwdtcJWTgtOilO4A7jAil21FyOUYcHlVG50wuIOIcGI/3Lw4cHop1Lw4cOKzUPPM6LLi/G/ePCvMuUguF5OCc5ilx+Z6V8Q1by0pOMe8Q47c2yK2eRVGetqx2l8V3Hm6cZcyRALym2B10G7Rsi2R4SHre32rHGimB9cLBNxXuCc2PvFNpaMUvM6l8gQed+2p4XySXRoVnKzB0GiKuHX3wrA/DcrrDpMrtmcXsb5p6T331e0OSsubZB49ht14fcY1qtFDVWOB1ONZvC95xk20QzSVu8Rmgep5at26Q+lHeCqX8b0HJWW35BnHfDgCrtPBMCg6Huj+FRUrGCknVzbxiZHKyR01Pa1jbFklg2GSDJVRHdgGluVpsjJqNKVYsrs5MKRO8UoZZyhJLBDW7eGugfooRbVnd+g2K2cM2vVaG9suqGBgdyaYtmjgiHMWzm0qGIu42YuCPG3b7FKDKyppU1SVuSVDpZGJa4YmmcnCouGaeOplOaHbp0Wastxg+gBN0jJcwwXc5JTWJInSkbR59FvIxdUeSZRCN1DTt7lxQWNUaxsttCbbYpl0h5NGCy1FqcXwtEfkNgyhjzSXeEpLugTjbGC9Y56fjUy6pjMoxxtsi2ebcI75KsAQJttEpZlMbmKnbfBLlxIdWw077UPwFfr3P358fXV19d2fXWabYygieNoUoCjtSXfRe+rST6qYQCYXfBxfhN4Zzcbsm5ePN/mKxwPElrvcOqaVPqQo8PXfveVu7trP1oD1ufNn/ae9CZyNaOOf3mZ2JZiY2ZX2ml/RypBTkIZWf8M1MCBa+o1jdLsGgkW4S5HAF694u3z//fv+VbIF0zJFk9oDLyRH/oWUr71NQU5OM3LhPQzp+u2ZD0jGHAgtWbWai1fxCWmdF7sSrQjDbdsiMbE2od5WWUL+3b/fyQTPpup2FjDDAk0CN3xj2BZQFhPw5RQ/Qjur/LK3rOhA+h+Vwqzkx1DlvjkvCRYQTi5G1ashJXe8jK8jhNgHkjnLjbRep24ibLEL8mxShqyiLOdAGkalU6AwtBDnqdP2nZJaQ7uLWcBRnPNcAaqi5dMAiVENcZ6yoE4sD1MgVVJhe03bgtk8Xj15kCo5bv0w/L40MYNYoC8xQ9akqjT3ie6sCVjFzrxHYesYk2iO0mCAnAzbG+5KZtlWCg4neclx3nD5RGyfqkCALGb6UbRi0BsAdbYu4Bk2VWrMDh+eLU2MgKPJusgEqgjcWQxLlTpT00cgVVhWKTF7QDtQ0zB09xi4beawKlAtsLPmYjvJPU6pAeqqhjw/YNW9CaaTKXZJ6qZmhSHEPvT1HAO3x3hDh3PsDjPhhM5HcB+TCVmo2xb0OOdVoHN6PCWTApWGhDnJL9RVnVUY0wOOVanH/CYjwzmjAdum/ZAndSVG71IwTuphE1O43MNhDZmjd3jzJrmHdBaECzFvMFDRN/cRy2/z5l1lGDtnwJJSvyo4zTSOTF5ayC85cgOefon+k6sM3ANMCXPXX2UkQ1sWiV6/cjf/B8FwcW3CUm/1AAAAAElFTkSuQmCC","e":1},{"id":"image_40","w":155,"h":136,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJsAAACIBAMAAAACDYSKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAYUExURUdwTPdtg/dtg/dtgvZtg/Ztg/dtg/Ztg6hNFG4AAAAHdFJOUwDgwB+aPl/o2jT2AAACfklEQVRo3t2YQW+bQBCFiW3KGbupr67jiqutRMq1SilcLVUJ11SVzLWmpu/vl7RS1bALzM68U+dmS3y8t29mYYmi6O4h3RX7iFUZujqzgDH+1Ln4wsAt8LeWxZGJ62r3zYi7wut6+0zFAYUFd+/gcDEIrOCpgovDRZtx7cWhURouMVCf9TPmrQ8aHMDkxaDy3oDKW4DKm8DhJgw3m8Cdj8YdoN/PQbwEk7y9bUPp17V5B1DHUQtw5z0VF2C3lODkdmU4cffJcOJuEeKw4uKE6WZCnDBdMU6WrhwnsivHidIIwEnkrUGVF4ITzEYITjAbCKoVFzeZBrjywJW35spbc+WF4ibkBePG5WWgygvHjcoLx43KU+AawqPn3zpycSsubiQMDW5Engo3LE+FG5ZXq3ANFzfYKxWobu91uKEwrkCVNwNVnhaHjerEOFit4ngc7DbW4vxhzNW4hvMoG5+MjOu2BDWMWo3ztl6lx7WqjwFBbmd6nC+MhQHXEKfM33oxuG7BdZtx3ZZct7UF57ZeYsG5g7Yw4Vpq43ncguu25LqtuW4TrltbtI5bW7Tu3NpwztzaonXmtua6TbhujdH23cbgus24bitQB2MG6mAY58LZBsB1W3LdVtxWsWbRa5WYvHgZd/EO3MWLuYtndrvhtkrLbZXenP3nrXIhtwp5h3/mut1w3bZct/3H44E7tvO1Dfcxos7t94g6tz8jqttLRA3Deas1yuOeHt3DbcKcWut76DV58TbUbN3DqEme5zPIgSnOJO+H7/PgXZ7n2+37NPVd8e5r4NfBV0pvbx8fn06nU/6wTZFud/l+nue/b/dyv3PHSNPlsvv18uen7opfI/SWaA+ckLgAAAAASUVORK5CYII=","e":1},{"id":"image_41","w":844,"h":654,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0wAAAKOAQMAAACvBAv/AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAGUExURUdwTO3Vx8dfoesAAAABdFJOUwBA5thmAAABMElEQVR42u3Y0QmAMAxAwTiZqztSBxDqr1CKEBRLe2+AXPKbiEx7bTvik1AoFAqFQqFQKBQKhUKhUCgUCnWfUVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUJNQSU2QqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCrUStdV+BYVCoVAoFAqFQqFQKBRq2BdJ794ThUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgU6h8qFwqFQqFQKBQKhUKhUHNRz4NQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUKgXQ6FQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFGp16gI+hOHAfebiJwAAAABJRU5ErkJggg==","e":1},{"id":"image_42","w":1402,"h":985,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABXoAAAPZBAMAAABdQI9IAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAkelRYdENyZWF0b3IAAAiZc0zJT0pVcEwrSS1ScE1LS00uKQYAQXoGzmp6FcUAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAPUExURUdwTPKtmvKtmvKtmvKtmuqpWp0AAAAEdFJOUwBFyYlLnn4yAAAWmUlEQVR42uzdW3bbxhYEUNLKAEBRAxApDoCvAUQk5j+mq+Qux3GWbIGvRldj74/8i6i06xwA5GzGbLb42+4X/134gKg1uYf9et3/zmn9dvhI8Hwux9Rj/pHcTT/U6bRef+R41/ngGO+wXR4Oh7ePJK776/x1FIsw5fvt4erM/ifBzmBK1oTlYb3p72h9kF8KJbe/v9ObMY6HbxUeEd3vAd5JMA+z3PeP9RFgFYKHVIZ1X8BJBebu2T1s+kJUYO587hbLrvxy575bNLt/e9v52LnHnmHdj2Etv9xcGvb9WOSXuNLw7wJsgUbiwWuBRvLBK7+EZ/f//cHF4LJNw76vx5vjl0sK76avivwSVxp+OKsPZGwaHL9c23g3fZ1MbwS2hh/Hr6d3+J3nvmZuvhFXebVfWgjvx/Ervnwa3mMfwPDGJ542fQbxJWnZ8B8rV4ufw9sHMbuRsykTX9oJr/jyw77vxZfMTVlgePv+LL6krHmdvjQUXvElOLziK7zB4RVf4Y325hJOWHh4+/7sGtrzBsdXeRBe3Zcsz30vvmRa9o0wugmv+BIj5k0K8aW1Ra+3LawbxBel16uaFOwNm+bSe9q6rBNx7HvxJdO3vkW+ZUdvcPqiN4wSX6ObfYPNA3qDR3a4t33fiy+ZnvrGeVy94d5wbD29Nmfteu578a3PYrFc7g6Hw+6wXCz8tswkR7bI+M4Xh/36p8uyXh92XfeR4sVcYqd29Abdt/hI7vqX58lms/4rx07iaR29KfH9iO6Qv+UjwgtVvv1tWVR8F/sLjpLT227yAX7qJ2RXeXYv/XvWU8/vcUrprfmhh8VV/wieJv1Lt5M6eiuO7+LqAjfl/B77iakyvvPbflrsbefoNbqNFt6bJ+dpFuDJHb01nr53+U3HCeb3qZ+iVWMHb8BI6ui94xOTrR28/+S3c/ROIL7VXOU7v9Qypfy+TDW9tTzw+4BfxZvM/mEyTzjUunpYbtr+h+WhnvtefJs6eKc0vm36SRv5Gj/w62ZPEzh+v/UTN+rmbPnQs2Pd/N3j49TTO+Lm7OE/Yt56e3jqGetf2MWm3b/Nuqzxzdly0/L/mtZl5VYPXXutoaqtoHVZUwVxWe7YaDe+Zrbvl7jo6mFe9vsOG53dzGyjFMR56Xdg2/zlGTPbGLPbCD+I1+LP1pnZxii/z03/r6k4tFx+5yN9c0Z730BoZit+RJW4QzGN+26KwyfX+LHD23LEj7yx+H4T1k+sd22Gt7XNmeJQeHc2+r2hhuI7l9Oy+a3gmw53ioPlWdKy4ee/a6s4OH4jblG0HF/FoeTxu9zU8md1ioPjN681NHXXTXEolt+nTZv/U7pVUXl9ONzhUtf2EHUDT5x5xmFo/e3aaQ3NxFdxGJzfm/6prWZca2ntqziUyW+V4Y3fmykOJfI7r/WHxMLj63XMi0f1y7+Y5mlT7/+Ondorv79tDTX/MclrX7X3uvxeMO7M15X/LWrv5Ax9+nde/0/nrtRe+f3MRb80bHJTe0te9i9uwC1CfrI8dXJTe2/eoB1+NcIt9zF/xZvaO90Af3YPOSi7sdXX05GPqRDLddgfsFV7Jz3D/WgQ80NeHzsnplftvXMH7maLQ+SHGtgdvBTEd1tDG7n/csStzf5w0YjtDoY2cruDoY1/7R06QxuxdoY2DG5FvLhgxA5uhjZyD19DGz97N7Rha+YBM0bYmrnThsPX0IbD19BGe4evoY3cw9edNnIPX1/lwGdO7hPj8LVyQPP9dGizciD28DW08Qvv0kuuzsqBWCsrByzNrBwo79VTDliaWZhhaeYZHZpZmlmY8bu5re6lmdeCyF2aSS+/nduqPnxfXCBi57aj60Ps0kx6yZ3bNq4Pv/UqvagOblZQXr3Vwc0KcquD9JJbHdysILc6eLOCL/3pVhuxTtKL6uBWG+WtpBdbB7faKG8rvagO3slEdZBewrcOHtIhtzpIL7nVQXoZpMo3LKSX3J2ZByTJLb7OXnKLr7OX3OIrveQWX+lloHfpRfGVXsrrpBfF1yvFFLdy9qL4Onsprr6Nr7OX3OLr7CW3+EovucVXehlefKWXXJ30YmyTXiY/tkkvuWOb9CK9TGLp0EkvxjbpRXohdekgvVzgXXqxdJBeyi8dpBcrM+mlPOnFykx6Ke9VerEyk16kFwY7Sy+5KzPpxcpMepn4ykx6kV4moqqFr+8xI3dl5uwlN73OXi5yll5inaSXXNJLrppuV/idYi6zlV5ivUov0iu9FFfVwnfjenCJs/QivdJLcVXdrji6HlyU3k56iVVTel9cDqSXidhKL9J7B88uBxep6WablyvITa9HJJFepmIlvUivh8worqaHzOYb14PU9HpMh+D0Hl0PYtP74nogvUivm21Ir/QygfS6XUFuet2uIDe9Fr5IL9LrdgXSa+HLJNJrZUZueq3MkF6k18IX6bUyQ3qh6vQeXRGGW9WV3hdXhNj0WvhygVfpRXqtzJBeGGw7szJDeq3MmHp6rcwYrqssvb4/ndz0esqM4WbSS6pTben1LajkptfKjOD0Wjow1Lm69Fo6kJtez+mQm15POjDU+8zYhvRKL6W9ziwdkN67+cNVYZjtzNIB6ZVeSuvqS6/ndBimvhvFFr5IL+07Sy+x3qWXWBWue91sQ3pp3lZ6idXVmN6j64L00rQa170eMmOYs/QS6116kV7ppbgq172mNgapct1r30vuwszzvQxamFWZXl+mQ+7CTHEgduWgODDIysYBKwfPpmPl4FYFg1cONR69ZjZiVw7WZcSuHBy9DPSq9WLlYOFA8aGtvpXD0VUhdeXgNhuxQ5uRjcFWtmUY2hy9FNcZ2TC0Gdkorbb7xHoDsUObkY0L1HWf2F02coc2IxuxQ5vfaCN2aLPqJXdo27seXKKmO21WvcQObXoDuUObVS+xQ5veQOzQpjeQO7QdXQwurL3VDG1LF4PU2qs3kFt79QZia6/eQGzt1RvIrb16A7G1130KrlBJcdAbuKL2er6BWHV8B9STo5fYfZmRjdjiYNVL7L7MqperVPFNDl5lI3ZfZtVLbnHQG7hKDTfarHqJ3ZfpDeTuy/QGYmuv3kDsvkxvIHZfNj+6CKTWXr2Ba43+fJlHy8jdl+kNXF0cOr0B+zKPllHa2LeJPVpG7L7Mqpfc4mBkI7Y4GNmILQ5GNnKLg6OX2OJgZOMGI9+q0Bu4wbveQKytkQ0z2zVeXABu8Gpkw8zmhQomNbMZ2Yid2Yxs5M5sjl5uMuZ9Nu+ykTuzGdnIPXp9/MTObHoDsTObkY3Yo9e2jBtnNiMbsUZ8xMEvWxG7LtMbuNG7kY1YnVUv1mVGNqazLjOyEbsuM7Jxq52RDesyRy+lrRy9OHodvUzn6H3x4ZN69LpRwa3Gez7n6MPnxqPXPWK0XkcvWi84emneebSj95sPn9ijd+PDJ/XodY+YW432XK97xNx89Ho8B0evo5fS3h29pBrxOxwcvcRuy+x6cfRiZHP0Ylvm6KVUbxjv6PVwGbEjm4fLyB3ZHL3EjmyOXnJHNkcvsb3B0UvuyObo5cbeMOLR++LjJ3Vk82gksb3Bo5Hk9gZHL7G9wdFLbm9w9HJbbxgxvNZl3OQ0Zm9wp4LY3uDoJbc3mNm4qTd0MzMboXYzxQGl18xG4dI7am+YzV0BQkuv9+C5xXbc8HoPntjSa2bjhtI7cnjNbMSWXkcvuaXXG0HEll7rMnJLr0cciC29HnHg6vBuHb0ovdZlFPY2fnity7hyYuvGT691GaETm5mN3IlNcSA4vGY2rlJFeBUHrrGrIbweS+caqyrCqziQG14P6HC5tzrCqzhwRXi7meKAk1dxYJrhVRzIDa/iQG54FQdCBzbFgeTwKg6k1gbFgeDwKg7E1gbFgeDwKg7EhldxIDe8igODrSrLrrcqGGxXW3i9jslAdbyAqThwTXi7+sKrODDIucLwKg7khneuODBkUzar0d6FITW8vrOX2PAqveSG176B1PBaljHAamZiw8lrYkN4PyxdGVLDa2IjNrwmNnLDe3RpCA2viY3c8JrY+NK50vC6QcyXanwY3cSG8NK4baW9wQ1ivrSybiB2YuusG1B63SCmcHgrLb3usfG1ndKLic1tCgp7rzS8Nr18XXpnegOpOr0BpffO7Bv4sjd0egOptkY2Up31Bhy9nm+gNKtebMuMbGi9Vr3Et14jG1866Q2Y2YxsKA56A4MZ2bBx8DYQxf1pZEPtNbJRXOfo5X/t3eFt40YURWF6twE6UgEyrQJoSQVYUvqvKTKSRYAsHJPSmJxLfueHCyAPHu67M5RTuRi9sLSVxK+WYRA7oxfslXphaTN6kby0Gb3IXdqMXgyjwgtmP7wVDKPCc+KTt4LUysHlMgylN3rB3mJ1mXeCobTqMrDXSQVWb6/Ri1x77WyItVddhtzOQXBA7Oy1syHXXsEBufZuvRCk2is4INdedyOR2zmcvA+kzl7BAbmzV3BArr2CA2LtdbMXI6noyyCnxMi1V3DASN4FB8Ry1jiAvYIDJqeaX4JyVIFce12OxGiq+Q3JrXeB0dRir+CA8bSCA9irL8Pk9PoyxLITe8FesReTcxZ7wV6xF5NzEXvBXrEX09OKvYilF3uhMhN7scbSQezFnVzFXrDX3V5MX5m1Yi+UDr6Fx/rstbQhtzLzE1DIrcwsbcgtHU7eAVLt9TskeKAyUzkgl1blAPaqHDA5vcoBsexUDojl3S0HxHJWmCGWq8IMsVwUZsi1d9bKzIcVeAj2Ipde3YtYdupesFfdi8k5q3sRy1Xdi9zKTN2LXNgLlZnbvVhV6bD19BFr78nTR2zpwF7klg57Tx8PMt89Hc8esaWDwwo8zLu6F9Y2t3uxnrWNvcgNvluPHg+zYy8EX4cVWE3wZS9ig68vK5AbfNmL3ODrqA25wddRG3KDL3uRG3zZi9zg66AYucGXvcgNvuxFbvDdeuyIDb7sRaHg27IXgq9LOpicF/ZC8GUv1hB89546YoMve1GKyRtf13uRG3xd70W54MteCL7sxfKDr+u9yA2+7EVu8HVBErnBl73IDb7sRUEm/o/F/lkbcte2rSeOgrTshbWNvVh48D154IgNvuxFSS7sheDLXkzPjr2wtrEXy17b2Iuya1vLXljb2ItFr23sRe7atve4Ebu2mb3IXdvMXhSmNXthbTN7MTkvZi+sbezF9Gsbe5ELe5FLz14oHdiLyTmzF0oH9mLBpQN7Udzelr1QOvgtHbAXGMxkNx38AiqKM1ll5tenUZwre5FbOvifQci1t2UvYpnKXv8rE+Xp2Qv2+rANy7X35FmjNDv2IpbJDtu2njVK47AN7GUvpufqsA3sVfhicqb7NsizRq69ew8bsfaePGyUhr3IpXVcAfYqfLFcexW+KE7PXrD3y+OKvYeNVHsVviiOn/AFe1VmWLK9KjPk2qt0QK697kiiNBP+v0ylA3LtVTog115rG2JzL3tRmvfG2gaz19qGBc9eaxuCZ+/W40bs7LW2IXf2OitG7ux1QR25s9fahrK8NNY2sNfahkXba21Dbu61tiHXXmsbgu39wwNHrL2CL0rST2qvS5LItVfwRbC9W08csfY6r0BB2kbwBXt9HYSl2yv4ohwTyyv4IthewRe59gq+KMZlcnsFX+TaK/gi117BF7n2Cr4ItlfwRa697vgi114ftyHXXnd8EWyvj9tQhmsj+MLs1ZlhDbNX8EWwvQ6LkZscHBYjd/aKDsidvTozBNsrOiDXXtEBwfaKDsi1V3RAbOcgOiB49jqwQPDsFR2Qa6/ogGB7RQfk2uv7IOTa69NiBNvrCwvk2is6INdep8UItld0wIOc57NX5Ytge1W+yLXX3obH2M1or70Nwfba25Brr70NwfYavsi11y+a4RH6ee21tyHXXqUZcu21tyHYXnsbcu01fBFsr+GLXHsNX9xN2xi+MHsNX6xv9hq+CJ69hi9yZ6/hi2B7DV8E22v4Itdewxf3cKnDXr/mi3vsberg4FUg1t6fe+8CY7lWYq+PLBBsr48skGuv1gyjOVdjr9YMY3mpx17ZASPZ1WOvxQ0j6SuyV3bAONqa7JUdkGuv7IAxXJq6kB2Qa6/sgOFcK7O32XgnGMq5NntdNsNgdtXZ+yT6ItZedyUxlL4+e0VfDKSt0F6tLyILM60v4u3V+mIA14a+SOVcqb3Nhr4ILMwUD4i315kbvqJv6ItU2oa+UJjRF+ylLwZyrdzeJ/riU84NfaEwoy8UZvTFguylLz6pHNomAfoisDBzWx25hRl9EVyYuTCJ4MKMvkiuHH7xbHdDYOXwqzkzfpG4tBm/CF7a+Ivgpc3JG/5D2yRi/uLPnJO239sz/uLaxLLpvD6xN9hf9dm66ZtoDvwVe3NRP6yYcxOP9U3sTeZZftD2JueHzUEBoS9LnsBHAq+L92ZRiBD6svAIQWB9WfAAloH1ZeEZmMH6suQMwWB9WX6KkIP1ZcmLnCG8RF6atfD0vDl2FBYcohWWIwQHyxwEhzmjsCEsOKR3whQWHIJjxN8cjWLBIb2V+ODwz1/ZWHAIxhcbgkMw/j99xez4+ZW+snCtXASHL/lJ30o5k3PAKkffOum5Sd/Y4MBM+goOi9f3RBbBIVdfxa+yl75Q9tIXyl6nxoLDWvAvkgUH+qJA2Ss4jEZxJjgEr260UfbKDhAcZmDPnBrwSdBd/GCO4ODCDuxs07PljtGrdsD9o9fOpvO1s62Pn+xRlynNYPQ6sTB6YW8zeu1tMHrtbfiEHQHtbbGjl372NqNXdIDRa2/DUNxweBz3JGfC5bISla+9zejNZUukOXhlnr0tFgcV9rZYnBGrfHPbMqPX3uagAqKDgwp7G7RlMyA6OKiwt8HKNsPexihtmb0NQ3KD0Wtvi80NVjZ7m9wAe5u+wXkb9A32NucUsLcJvYYvhN4MfN8m9CrNIPQqzYReKM2E3nWwJZjQmzt8Gfad8gq9SjOhF04spsaPjxi+uRub0Gv42tjgxMLG5rgYA3ljluGrboDjYnWD42KQ1/DVlcHwJS8MX/IavnBKYfiSF4YveQ1fyLyGL3lh+NZ8SEFew5e8MHwdDxu+IG/9uOf7EK5EzsuJgvfjMvrM+MLt/jMK8hq+DthgcXNGoTWDssHwJS8sbuSFxU3NKzuAvBY3ZxSQHZxRQHYYIe8zW6pjw8thZYMzCtFX5IXoK/JC9B0mb88SR26p8oq8oq99Dd/CgaPkzY2+NrdPywby0lfZgG/c3BQPUgN9DV7Q1+AFfe8fvOSlb+rgdaMsjQ19JV76huMDIPqm0gm8sdl39ccWvnkP5mnddx4k3nB913zjTMerOYsdvNY16SFW3t6rlx6kBqjOrGu4d/x26yp5pYZlcZAaID1IDdA9GLwYN36X7++rwbvc8btZ9vbWvRm8y56/nbmLXJ4PC527Xu1K/F1c/6BoWFX/sCx/FQ1rW+D2QgMUEHOHBt9PKICFBsQtcMfsAawlW3mAuAnccRfBI3hzU3jPXeQO4RtPT5uMUXzx6074zOPjjcOh2nF8OXIXX0eKD49fu66qXKHfxV3ZuNvvZ9a4M3Zx9yx++jjnmGvHu6nbegkosuN9hOPJNO5e35iL8pHi0H2/uYYuvm8UH79pCHev0gKmGMK3HNGVLXXfrGiYcq27UeTE4yLnYrYo8ZDC3ZG6mH0SH0dvdBfmoqqN7paHL19Iu/840Hs9Hp8lXdSYh3/727b//v04BsH/8xchcY8IypDHpAAAAABJRU5ErkJggg==","e":1},{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 2","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[716,508,0],"ix":2},"a":{"a":0,"k":[716,508,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1432,"h":1016,"ip":57,"op":95,"st":57,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 2","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[716,508,0],"ix":2},"a":{"a":0,"k":[716,508,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1432,"h":1016,"ip":5,"op":43,"st":5,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"gai","parent":4,"refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"xich du","refId":"comp_13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.662],"y":[1.451]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1.628]},{"i":{"x":[0.655],"y":[1.345]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[-2.095]},{"t":100,"s":[1.628]}],"ix":10},"p":{"a":0,"k":[724,-112,0],"ix":2},"a":{"a":0,"k":[922,-96,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Layer 8","refId":"image_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,878,0],"ix":2},"a":{"a":0,"k":[550,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"cay co Copy","refId":"image_26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.586],"y":[1.796]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.473],"y":[1.527]},"o":{"x":[0.167],"y":[0.095]},"t":50,"s":[7.171]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[543,877.5,0],"ix":2},"a":{"a":0,"k":[20,92.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"cay co Copy 2","refId":"image_27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.586],"y":[1.796]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.473],"y":[1.527]},"o":{"x":[0.167],"y":[0.095]},"t":50,"s":[7.171]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[695.5,878.5,0],"ix":2},"a":{"a":0,"k":[12.5,73.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"cay co","refId":"image_28","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.586],"y":[1.796]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.473],"y":[1.527]},"o":{"x":[0.167],"y":[0.095]},"t":50,"s":[7.171]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[839,878,0],"ix":2},"a":{"a":0,"k":[13,29,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"la","refId":"comp_15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[716,508,0],"ix":2},"a":{"a":0,"k":[716,508,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1338,552],[204,552],[204,880],[1338,880]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1432,"h":1016,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"Layer 4","refId":"image_41","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[739,453,0],"ix":2},"a":{"a":0,"k":[422,327,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"Layer 7","refId":"image_42","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[720,503.5,0],"ix":2},"a":{"a":0,"k":[701,492.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"nhac 5","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[100]},{"t":28,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[460,349.5,0],"ix":2},"a":{"a":0,"k":[148,192.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.495,0.495,0.833],"y":[1,1,-15.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,16.667]},"t":5,"s":[0,0,100]},{"t":30,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[78,211],[-20,211],[-46,109],[52,109]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":5,"op":33,"st":5,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"nhac 4","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[100]},{"t":23,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[460,349.5,0],"ix":2},"a":{"a":0,"k":[148,192.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.495,0.495,0.833],"y":[1,1,-15.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,16.667]},"t":0,"s":[0,0,100]},{"t":25,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[108,111],[10,111],[-16,9],[82,9]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"nhac 3","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[100]},{"t":33,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1047,316.5,0],"ix":2},"a":{"a":0,"k":[735,159.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.495,0.495,0.833],"y":[1,1,-15.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,16.667]},"t":10,"s":[0,0,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[870,155],[772,155],[772,263],[870,263]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":10,"op":38,"st":10,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"nhac 2","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[100]},{"t":28,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1047,316.5,0],"ix":2},"a":{"a":0,"k":[735,159.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.502,0.502,0.833],"y":[1,1,-15.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,16.667]},"t":5,"s":[0,0,100]},{"t":30,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[872,17],[774,17],[774,125],[872,125]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":5,"op":33,"st":5,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"nhac","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[100]},{"t":23,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1047,316.5,0],"ix":2},"a":{"a":0,"k":[735,159.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.495,0.495,0.833],"y":[1,1,-15.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,16.667]},"t":0,"s":[0,0,100]},{"t":25,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[794,-33],[674,-33],[674,81],[794,81]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":28,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Folder 1","parent":7,"refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"toc phai","parent":7,"refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.618],"y":[1.112]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[5.526]},{"i":{"x":[0.833],"y":[0.85]},"o":{"x":[0.835],"y":[-0.355]},"t":20,"s":[13.451]},{"i":{"x":[0.32],"y":[0.673]},"o":{"x":[0.333],"y":[0.321]},"t":50,"s":[-4.561]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":74,"s":[3.584]},{"i":{"x":[0.833],"y":[1.082]},"o":{"x":[0.485],"y":[0]},"t":86,"s":[1.076]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[-0.375]},"t":94,"s":[6.58]},{"t":100,"s":[5.526]}],"ix":10},"p":{"a":0,"k":[1009,200,0],"ix":2},"a":{"a":0,"k":[1009,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"toc trai","parent":7,"refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.547],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-1.94]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.856],"y":[-0.264]},"t":20,"s":[6.345]},{"i":{"x":[0.405],"y":[1.08]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[-7.992]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":74,"s":[-0.474]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.386],"y":[0]},"t":86,"s":[-3.915]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.717],"y":[0]},"t":94,"s":[-1.689]},{"t":100,"s":[-1.94]}],"ix":10},"p":{"a":0,"k":[853,197,0],"ix":2},"a":{"a":0,"k":[853,197,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"than","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[934,532,0],"ix":2},"a":{"a":0,"k":[934,532,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"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],[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]],"v":[[1172,286],[1103,300],[1075,305.25],[1045.25,313.75],[964.5,332.5],[949.433,337.568],[947.951,334.416],[940.919,332.015],[931.064,330.338],[924.247,330.982],[916.249,333.553],[906.5,339],[890.25,328.25],[877.9,327.55],[858.225,327.825],[834.125,330.375],[770,303.75],[716,286],[716,734],[1172,734]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"tay trai","parent":4,"refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.544],"y":[1.262]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[10.265]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.488],"y":[-1.491]},"t":32,"s":[10.265]},{"t":87,"s":[0]}],"ix":10},"p":{"a":0,"k":[876,349,0],"ix":2},"a":{"a":0,"k":[876,349,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"tay phai","parent":4,"refId":"comp_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.447],"y":[-1.407]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[1.12]},"o":{"x":[0.453],"y":[0.198]},"t":32,"s":[-2.832]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.582],"y":[0.283]},"t":50,"s":[-18.819]},{"i":{"x":[0.526],"y":[1]},"o":{"x":[0.201],"y":[0.141]},"t":64,"s":[-13.171]},{"t":87,"s":[0]}],"ix":10},"p":{"a":0,"k":[981,352,0],"ix":2},"a":{"a":0,"k":[981,352,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"dau","parent":4,"refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.604],"y":[1.231]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.396],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[-5.635]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[-5.164]},{"i":{"x":[0.53],"y":[1]},"o":{"x":[0.167],"y":[-0.046]},"t":32,"s":[-5.164]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.592],"y":[0.278]},"t":50,"s":[4.266]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":57,"s":[3.21]},{"i":{"x":[0.252],"y":[0.722]},"o":{"x":[0.167],"y":[0.167]},"t":64,"s":[3.21]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":82,"s":[-0.222]},{"t":89,"s":[0]}],"ix":10},"p":{"a":0,"k":[926,331.5,0],"ix":2},"a":{"a":0,"k":[926,331.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"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],[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]],"v":[[1172,286],[1103,300],[1075,305.25],[1045.25,313.75],[1002,325.25],[971.683,327.068],[958.726,336.118],[947.984,340.978],[937.064,337.838],[925.497,334.732],[914.499,336.553],[904.439,341.586],[888.959,331.104],[877.9,327.55],[858.225,327.825],[834.125,330.375],[770,303.75],[716,286],[716,734],[1172,734]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"chan trai","parent":4,"refId":"comp_11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.588],"y":[1.293]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[3.871]},{"i":{"x":[0.739],"y":[1.318]},"o":{"x":[0.167],"y":[0.043]},"t":50,"s":[-9.145]},{"t":100,"s":[3.871]}],"ix":10},"p":{"a":0,"k":[929,614,0],"ix":2},"a":{"a":0,"k":[929,614,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"chan phai","parent":4,"refId":"comp_12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.588],"y":[1.523]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.631],"y":[1.369]},"o":{"x":[0.167],"y":[0.219]},"t":50,"s":[-2.662]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[918,619,0],"ix":2},"a":{"a":0,"k":[918,619,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"line gai Copy 6","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[997,253.5,0],"ix":2},"a":{"a":0,"k":[18,6.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 3 Copy 5","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[997,253.5,0],"ix":2},"a":{"a":0,"k":[19,7.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"line gai Copy 7","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[860,258,0],"ix":2},"a":{"a":0,"k":[16,7,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 3 Copy 6","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[860.5,258.5,0],"ix":2},"a":{"a":0,"k":[15.5,6.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"line gai Copy 5","refId":"image_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1023.5,252,0],"ix":2},"a":{"a":0,"k":[30.5,63,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 16","refId":"image_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1025.5,251,0],"ix":2},"a":{"a":0,"k":[28.5,64,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"line gai Copy 8","refId":"image_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[842,261,0],"ix":2},"a":{"a":0,"k":[35,67,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 17","refId":"image_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841.5,258.5,0],"ix":2},"a":{"a":0,"k":[32.5,67.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"line gai","refId":"image_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[943,406,0],"ix":2},"a":{"a":0,"k":[221,318,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 3","refId":"image_10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[943,405.5,0],"ix":2},"a":{"a":0,"k":[219,316.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Folder 2","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.449],"y":[1.126]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[-5.48]},{"i":{"x":[0.722],"y":[0.943]},"o":{"x":[0.388],"y":[-0.057]},"t":32,"s":[-5.48]},{"i":{"x":[0.788],"y":[1.034]},"o":{"x":[0.455],"y":[-0.105]},"t":62,"s":[15.503]},{"t":87,"s":[0]}],"ix":10},"p":{"a":0,"k":[814,439,0],"ix":2},"a":{"a":0,"k":[814,439,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"line gai Copy 2","refId":"image_13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841.5,399,0],"ix":2},"a":{"a":0,"k":[54.5,71,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 3 Copy 2","refId":"image_14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841.5,399,0],"ix":2},"a":{"a":0,"k":[52.5,69,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_8","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[961.375,539.875,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.25,-0.75],[0,-1.5],[0,-3],[-0.75,-3.25],[-0.5,-2.5],[0,0],[-0.75,-2.25],[0,0],[-0.25,3],[0,3.25],[0,3.75],[0.5,4],[1.022,2.993],[0,0]],"o":[[0,0],[0,0],[-0.25,0.75],[0,1.5],[0,3],[0.75,3.25],[0.5,2.5],[0,0],[0.75,2.25],[0,0],[0.25,-3],[0,-3.25],[0,-3.75],[-0.5,-4],[-3.5,-10.25],[0,0]],"v":[[-142.75,-140],[-147,-139],[-148.25,-134],[-149.25,-125],[-148.5,-115.75],[-147.75,-103.25],[-144.5,-91.5],[-142.5,-84.25],[-141,-76.375],[-136,-76.25],[-135,-81],[-135,-97.25],[-134.25,-107.5],[-134.25,-116.5],[-135.5,-124.5],[-140,-137.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949005126953,0.678436279297,0.603912353516,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"line gai Copy 10","refId":"image_11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[723,382.5,0],"ix":2},"a":{"a":0,"k":[106,91.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 3 Copy 8","refId":"image_12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[721.5,382.5,0],"ix":2},"a":{"a":0,"k":[102.5,89.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_9","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"khuy tay phai","refId":"comp_10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.417],"y":[1.585]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.735],"y":[1.177]},"o":{"x":[0.518],"y":[1.013]},"t":32,"s":[4.747]},{"i":{"x":[0.833],"y":[1.074]},"o":{"x":[0.893],"y":[1.325]},"t":65,"s":[-10.131]},{"t":87,"s":[0]}],"ix":10},"p":{"a":0,"k":[1064,438,0],"ix":2},"a":{"a":0,"k":[1064,438,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"line gai Copy","refId":"image_17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1031,397.5,0],"ix":2},"a":{"a":0,"k":[66,66.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 3 Copy","refId":"image_18","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1031,398,0],"ix":2},"a":{"a":0,"k":[64,65,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_10","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1061.647,428.514,0],"ix":2},"a":{"a":0,"k":[101.647,-111.486,0],"ix":1},"s":{"a":0,"k":[94,94,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-0.75],[0,-3],[-0.75,-3.5],[0,0],[0,0],[-1.25,0],[-1,0.75],[-0.75,4.25],[1.5,4.75],[0.75,1],[1,2.75],[0,0]],"o":[[0,0],[0,0],[0,0.75],[0,3],[0.75,3.5],[0,0],[0,0],[1.25,0],[1,-0.75],[0.75,-4.25],[-1.5,-4.75],[-0.75,-1],[-1,-2.75],[0,0]],"v":[[93.25,-143.5],[90.25,-132.5],[90.75,-117],[91,-106],[92.5,-93.25],[94.75,-83.75],[96.75,-80.5],[101,-80],[106,-79.75],[111.25,-87.5],[112.5,-111.75],[107.25,-126.5],[103,-132.75],[98.5,-142.25]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949005126953,0.678436279297,0.603912353516,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"line gai Copy 9","refId":"image_15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1168,374.5,0],"ix":2},"a":{"a":0,"k":[114,91.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 3 Copy 7","refId":"image_16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1167.5,373.5,0],"ix":2},"a":{"a":0,"k":[113.5,89.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_11","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"line gai Copy 3","refId":"image_19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1027.5,750,0],"ix":2},"a":{"a":0,"k":[97.5,122,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 3 Copy 3","refId":"image_20","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1027.5,751,0],"ix":2},"a":{"a":0,"k":[96.5,120,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_12","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"line gai Copy 4","refId":"image_21","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[944.5,821.5,0],"ix":2},"a":{"a":0,"k":[50.5,173.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 3 Copy 4","refId":"image_22","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[944.5,822,0],"ix":2},"a":{"a":0,"k":[48.5,172,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_13","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"line xich du","refId":"comp_14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 6","refId":"image_24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[937,677.5,0],"ix":2},"a":{"a":0,"k":[284,77.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_14","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"line xich du","refId":"image_23","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[931.5,418,0],"ix":2},"a":{"a":0,"k":[293.5,339,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_15","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"la 6","refId":"comp_16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.459],"y":[1.709]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.444],"y":[1.556]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[5.965]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[298,874,0],"ix":2},"a":{"a":0,"k":[496,890,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"la 4","refId":"comp_17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.459],"y":[1.709]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.444],"y":[1.556]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[5.965]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[390,874,0],"ix":2},"a":{"a":0,"k":[588,890,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"la 5","refId":"comp_18","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.459],"y":[1.709]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.444],"y":[1.556]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[5.965]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[438,872,0],"ix":2},"a":{"a":0,"k":[636,888,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"la 2","refId":"comp_19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.459],"y":[1.709]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.444],"y":[1.556]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[5.965]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[1226,878,0],"ix":2},"a":{"a":0,"k":[1424,894,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"la 1","refId":"comp_20","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.459],"y":[1.709]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.444],"y":[1.556]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[5.965]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[1128,882,0],"ix":2},"a":{"a":0,"k":[1326,898,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"la 3","refId":"comp_21","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.459],"y":[1.709]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.444],"y":[1.556]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[5.965]},{"t":100,"s":[0]}],"ix":10},"p":{"a":0,"k":[1058,878,0],"ix":2},"a":{"a":0,"k":[1256,894,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_16","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"la 6","refId":"image_29","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[481.5,849.5,0],"ix":2},"a":{"a":0,"k":[53.5,43.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 14","refId":"image_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[483,851.5,0],"ix":2},"a":{"a":0,"k":[53,43.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_17","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"la 4","refId":"image_31","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[555.5,771,0],"ix":2},"a":{"a":0,"k":[95.5,123,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 12","refId":"image_32","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[558,778,0],"ix":2},"a":{"a":0,"k":[91,117,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_18","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"la 5","refId":"image_33","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[658.5,849.5,0],"ix":2},"a":{"a":0,"k":[44.5,45.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 13","refId":"image_34","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[658.5,850.5,0],"ix":2},"a":{"a":0,"k":[42.5,44.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_19","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"la 2","refId":"image_35","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1443.5,844,0],"ix":2},"a":{"a":0,"k":[59.5,57,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 10","refId":"image_36","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1441.5,845,0],"ix":2},"a":{"a":0,"k":[58.5,55,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_20","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"la 1","refId":"image_37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1348,761,0],"ix":2},"a":{"a":0,"k":[108,140,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 9","refId":"image_38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1347.5,761,0],"ix":2},"a":{"a":0,"k":[105.5,138,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]},{"id":"comp_21","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"la 3","refId":"image_39","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1238,829.5,0],"ix":2},"a":{"a":0,"k":[78,68.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 11","refId":"image_40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1239.5,831,0],"ix":2},"a":{"a":0,"k":[77.5,68,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":250,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Illustration","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[716,508,0],"ix":2},"a":{"a":0,"k":[716,508,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1432,"h":1016,"ip":0,"op":250,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/360º_degree.json b/external/rlottie/example/resource/360º_degree.json new file mode 100644 index 000000000..810b9a592 --- /dev/null +++ b/external/rlottie/example/resource/360º_degree.json @@ -0,0 +1 @@ +{"v":"5.1.13","fr":30,"ip":0,"op":76,"w":1024,"h":1024,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"360º Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[390.977,552.004,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.703,3.281],[8.276,0],[4.43,-1.239],[4.229,-2.916],[0,0],[-5.105,0],[-1.623,-1.02],[0,-2.114],[10.973,0],[0,0],[0,0],[0,0],[-2.516,-0.602],[-1.13,-1.184],[0,-2.188],[2.169,-1.33],[4.739,0],[3.627,0.857],[3.5,1.787],[0,0],[-3.664,-0.62],[-4.302,0],[-5.888,4.266],[0,7.438],[13.344,1.677],[0,0],[-3.027,3.555],[0,4.959]],"o":[[-4.703,-3.281],[-5.724,0],[-4.43,1.24],[0,0],[5.469,-3.427],[2.734,0],[1.622,1.021],[0,5.615],[0,0],[0,0],[0,0],[4.047,0],[2.516,0.602],[1.13,1.185],[0,2.844],[-2.17,1.331],[-3.062,0],[-3.628,-0.856],[0,0],[4.266,1.641],[3.664,0.62],[10.463,0],[5.887,-4.266],[0,-10.938],[0,0],[5.723,-1.604],[3.026,-3.555],[0,-5.76]],"v":[[51.625,-76.18],[32.156,-81.102],[16.926,-79.242],[3.938,-73.008],[12.906,-58.57],[28.766,-63.711],[35.301,-62.18],[37.734,-57.477],[21.273,-49.055],[16.242,-49.055],[16.242,-32.812],[21.164,-32.812],[31.008,-31.91],[36.477,-29.23],[38.172,-24.172],[34.918,-17.91],[24.555,-15.914],[14.52,-17.199],[3.828,-21.164],[3.828,-3.227],[15.723,0.164],[27.672,1.094],[52.199,-5.305],[61.031,-22.859],[41.016,-41.781],[41.016,-42.109],[54.141,-49.848],[58.68,-62.617]],"c":true},"ix":2},"nm":"3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.439220024558,0.439220024558,0.439220024558,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"3","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.323,-6.125],[-9.443,0],[-4.959,5.086],[0,8.787],[3.919,4.576],[7.109,0],[3.281,-6.198],[0,0],[-3.537,3.172],[-7.219,0],[-3.646,-0.692],[0,0],[3.245,0],[6.216,-3.281],[3.19,-6.909],[0,-11.156]],"o":[[5.323,6.125],[8.895,0],[4.958,-5.086],[0,-8.166],[-3.92,-4.575],[-7.255,0],[0,0],[0.328,-7.182],[3.536,-3.172],[4.266,0],[0,0],[-4.339,-0.62],[-9.115,0],[-6.216,3.281],[-3.191,6.909],[0,11.011]],"v":[[77.438,-8.094],[99.586,1.094],[120.367,-6.535],[127.805,-27.344],[121.926,-46.457],[105.383,-53.32],[89.578,-44.023],[88.922,-44.023],[94.719,-59.555],[110.852,-64.312],[122.719,-63.273],[122.719,-80.172],[111.344,-81.102],[88.348,-76.18],[74.238,-60.895],[69.453,-33.797]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.495,2.242],[0,3.5],[-1.55,1.677],[-2.48,0],[0,-6.489],[1.44,-1.731],[2.297,0]],"o":[[-1.495,-2.242],[0,-2.406],[1.549,-1.677],[5.031,0],[0,3.792],[-1.441,1.732],[-2.443,0]],"v":[[93.188,-19.387],[90.945,-28],[93.27,-34.125],[99.312,-36.641],[106.859,-26.906],[104.699,-18.621],[99.094,-16.023]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.439220024558,0.439220024558,0.439220024558,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"6","np":5,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.867,6.909],[9.516,0],[4.739,-6.635],[0,-14.219],[-4.849,-6.872],[-9.552,0],[-4.74,6.581],[0,14.146]],"o":[[-4.867,-6.909],[-9.771,0],[-4.74,6.636],[0,13.562],[4.848,6.873],[9.77,0],[4.739,-6.58],[0,-13.672]],"v":[[185.637,-70.738],[164.062,-81.102],[142.297,-71.148],[135.188,-39.867],[142.461,-9.215],[164.062,1.094],[185.828,-8.777],[192.938,-39.867]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.13,3.427],[-2.662,0],[-1.13,-3.555],[0,-8.859],[1.112,-3.5],[2.698,0],[1.13,3.391],[0,9.042]],"o":[[1.13,-3.427],[2.661,0],[1.13,3.555],[0,8.823],[-1.113,3.5],[-2.662,0],[-1.13,-3.391],[0,-9.114]],"v":[[158.375,-58.68],[164.062,-63.82],[169.75,-58.488],[171.445,-39.867],[169.777,-21.383],[164.062,-16.133],[158.375,-21.219],[156.68,-39.867]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.439220024558,0.439220024558,0.439220024558,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"0","np":5,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.573,3.755],[5.723,0],[3.445,-3.609],[0,-6.453],[-3.482,-3.737],[-5.797,0],[-3.482,3.664],[0,6.344]],"o":[[-3.573,-3.755],[-6.016,0],[-3.445,3.609],[0,6.198],[3.481,3.738],[6.052,0],[3.481,-3.664],[0,-6.161]],"v":[[232.859,-75.25],[218.914,-80.883],[204.723,-75.469],[199.555,-60.375],[204.777,-45.473],[218.695,-39.867],[232.996,-45.363],[238.219,-60.375]],"c":true},"ix":2},"nm":"º","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-3.646,0],[0,-6.344],[3.609,0],[0.875,1.55],[0,3.172]],"o":[[3.609,0],[0,6.271],[-1.896,0],[-0.875,-1.549],[0,-6.344]],"v":[[218.805,-69.891],[224.219,-60.375],[218.805,-50.969],[214.648,-53.293],[213.336,-60.375]],"c":true},"ix":2},"nm":"º","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.439220024558,0.439220024558,0.439220024558,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"º","np":5,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":350,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Verti","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[0],"e":[360]},{"t":60}],"ix":10},"p":{"a":0,"k":[512,512,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p833_0p833_0p333_0","0p833_1_0p333_0"],"t":0,"s":[310,512],"e":[1,512]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":15,"s":[1,512],"e":[310,512]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":30,"s":[310,512],"e":[512,512]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":45,"s":[512,512],"e":[310,512]},{"t":60}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.439215686275,0.439215686275,0.439215686275,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":350,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Hori","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[0],"e":[360]},{"t":60}],"ix":10},"p":{"a":0,"k":[512,512,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[1,0.833]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p833_1_0p333_0","0p833_0p833_0p333_0"],"t":0,"s":[512,310],"e":[512,512]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":15,"s":[512,512],"e":[512,310]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":30,"s":[512,310],"e":[512,1]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0.167]},"n":["0p667_1_0p167_0","0p667_1_0p167_0p167"],"t":45,"s":[512,1],"e":[512,310]},{"t":60}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.439215686275,0.439215686275,0.439215686275,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":350,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Main","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[512,512,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[512,512],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.439215686275,0.439215686275,0.439215686275,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":350,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/3d.json b/external/rlottie/example/resource/3d.json new file mode 100644 index 000000000..a5babf8bc --- /dev/null +++ b/external/rlottie/example/resource/3d.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":60,"ip":0,"op":60,"w":500,"h":500,"nm":"Comp 1","ddd":1,"assets":[],"layers":[{"ddd":1,"ind":1,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"rx":{"a":0,"k":0,"ix":8},"ry":{"a":0,"k":0,"ix":9},"rz":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[360]},{"t":55}],"ix":10},"or":{"a":0,"k":[0,0,0],"ix":7},"p":{"a":0,"k":[75,384,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.075893886387,0.175385013223,0.921568632126,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":1,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"rx":{"a":0,"k":0,"ix":8},"ry":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[360]},{"t":55}],"ix":9},"rz":{"a":0,"k":0,"ix":10},"or":{"a":0,"k":[0,0,0],"ix":7},"p":{"a":0,"k":[76,234,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.025943866,0.945098042488,0.134079754353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":1,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"rx":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[360]},{"t":55}],"ix":8},"ry":{"a":0,"k":0,"ix":9},"rz":{"a":0,"k":0,"ix":10},"or":{"a":0,"k":[0,0,0],"ix":7},"p":{"a":0,"k":[76,72,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":60,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/4479-fireworks.json b/external/rlottie/example/resource/4479-fireworks.json new file mode 100644 index 000000000..f76b61ded --- /dev/null +++ b/external/rlottie/example/resource/4479-fireworks.json @@ -0,0 +1 @@ +{"v":"5.3.4","fr":29,"ip":0,"op":117,"w":800,"h":800,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p5_1_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":49,"s":[100],"e":[2]},{"t":69}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[535,755,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.5,1,0.833],"y":[1,1,1]},"o":{"x":[0.5,0,0.167],"y":[0,0,0]},"n":["0p5_1_0p5_0","1_1_0_0","0p833_1_0p167_0"],"t":49,"s":[96.254,-1.205,100],"e":[96.254,-159.205,100]},{"i":{"x":[0.5,1,0.833],"y":[1,1,1]},"o":{"x":[0.5,0,0.167],"y":[0,0,0]},"n":["0p5_1_0p5_0","1_1_0_0","0p833_1_0p167_0"],"t":67,"s":[96.254,-159.205,100],"e":[96.254,-152.205,100]},{"t":72}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18.695,41.477],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.60784295774,0.321568986481,0.921568986481,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.345098039216,0.851361083984,0.909803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-4.652,214.738],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":580,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":21,"s":[0],"e":[100]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":63,"s":[100],"e":[2]},{"t":83}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[261,733,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.5,1,0.833],"y":[1,1,1]},"o":{"x":[0.5,0,0.167],"y":[0,0,0]},"n":["0p5_1_0p5_0","1_1_0_0","0p833_1_0p167_0"],"t":63,"s":[96.254,-1.205,100],"e":[96.254,-159.205,100]},{"i":{"x":[0.5,1,0.833],"y":[1,1,1]},"o":{"x":[0.5,0,0.167],"y":[0,0,0]},"n":["0p5_1_0p5_0","1_1_0_0","0p833_1_0p167_0"],"t":81,"s":[96.254,-159.205,100],"e":[96.254,-152.205,100]},{"t":86}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18.695,41.477],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.60784295774,0.321568986481,0.921568986481,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.345098039216,0.851361083984,0.909803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-4.652,214.738],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":580,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":26,"s":[100],"e":[2]},{"t":46}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[415,717,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.5,1,0.833],"y":[1,1,1]},"o":{"x":[0.5,0,0.167],"y":[0,0,0]},"n":["0p5_1_0p5_0","1_1_0_0","0p833_1_0p167_0"],"t":26,"s":[96.254,-1.205,100],"e":[96.254,-159.205,100]},{"i":{"x":[0.5,1,0.833],"y":[1,1,1]},"o":{"x":[0.5,0,0.167],"y":[0,0,0]},"n":["0p5_1_0p5_0","1_1_0_0","0p833_1_0p167_0"],"t":44,"s":[96.254,-159.205,100],"e":[96.254,-152.205,100]},{"t":49}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18.695,41.477],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.60784295774,0.321568986481,0.921568986481,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.345098039216,0.851361083984,0.909803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-4.652,214.738],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":580,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[264,408,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.3,0.3],"y":[1,1]},"o":{"x":[0.7,0.7],"y":[0,0]},"n":["0p3_1_0p7_0","0p3_1_0p7_0"],"t":78,"s":[20,0],"e":[0,60]},{"t":97}],"ix":2},"p":{"a":0,"k":[0,-51],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.124487452209,0.808345139027,0.834175884724,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.187980338931,0.750694930553,0.863511025906,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.456,"y":1},"o":{"x":0.178,"y":0.339},"n":"0p456_1_0p178_0p339","t":77,"s":[2.992,13.768],"e":[0,-154],"to":[0.40790435671806,-12.2535486221313],"ti":[-0.18578809499741,5.58112049102783]},{"t":119}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":0,"k":13,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":27.692,"ix":4},"so":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p4_1_0p6_0"],"t":72,"s":[10],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":97,"s":[100],"e":[0]},{"t":104}],"ix":5},"eo":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p833_1_0p6_0"],"t":72,"s":[13],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":97,"s":[100],"e":[0]},{"t":104}],"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":68,"op":554,"st":-26,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[264,408,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.3,0.3],"y":[1,1]},"o":{"x":[0.7,0.7],"y":[0,0]},"n":["0p3_1_0p7_0","0p3_1_0p7_0"],"t":85,"s":[20,0],"e":[0,60]},{"t":104}],"ix":2},"p":{"a":0,"k":[0,-51],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.607843137255,0.321568627451,0.921568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.603921568627,0.345098039216,0.909803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.456,"y":1},"o":{"x":0.178,"y":0.121},"n":"0p456_1_0p178_0p121","t":87,"s":[2.992,13.768],"e":[0,-154],"to":[0.40790435671806,-12.2535486221313],"ti":[-0.18578809499741,5.58112049102783]},{"t":102}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":0,"k":13,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":27.692,"ix":4},"so":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p4_1_0p6_0"],"t":87,"s":[10],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":97,"s":[100],"e":[0]},{"t":105}],"ix":5},"eo":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p4_1_0p6_0"],"t":87,"s":[13],"e":[99]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":97,"s":[99],"e":[1]},{"t":105}],"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":68,"op":554,"st":-26,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[528,424,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.3,0.3],"y":[1,1]},"o":{"x":[0.7,0.7],"y":[0,0]},"n":["0p3_1_0p7_0","0p3_1_0p7_0"],"t":64,"s":[20,0],"e":[0,60]},{"t":83}],"ix":2},"p":{"a":0,"k":[0,-51],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.124487452209,0.808345139027,0.834175884724,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.187980338931,0.750694930553,0.863511025906,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.456,"y":1},"o":{"x":0.178,"y":0.339},"n":"0p456_1_0p178_0p339","t":63,"s":[2.992,13.768],"e":[0,-154],"to":[0.40790435671806,-12.2535486221313],"ti":[-0.18578809499741,5.58112049102783]},{"t":105}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":0,"k":13,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":27.692,"ix":4},"so":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p4_1_0p6_0"],"t":58,"s":[10],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":83,"s":[100],"e":[0]},{"t":90}],"ix":5},"eo":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p833_1_0p6_0"],"t":58,"s":[13],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":83,"s":[100],"e":[0]},{"t":90}],"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":54,"op":540,"st":-40,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[528,424,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.3,0.3],"y":[1,1]},"o":{"x":[0.7,0.7],"y":[0,0]},"n":["0p3_1_0p7_0","0p3_1_0p7_0"],"t":71,"s":[20,0],"e":[0,60]},{"t":90}],"ix":2},"p":{"a":0,"k":[0,-51],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.607843137255,0.321568627451,0.921568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.603921568627,0.345098039216,0.909803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.456,"y":1},"o":{"x":0.178,"y":0.121},"n":"0p456_1_0p178_0p121","t":73,"s":[2.992,13.768],"e":[0,-154],"to":[0.40790435671806,-12.2535486221313],"ti":[-0.18578809499741,5.58112049102783]},{"t":88}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":0,"k":13,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":27.692,"ix":4},"so":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p4_1_0p6_0"],"t":73,"s":[10],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":83,"s":[100],"e":[0]},{"t":91}],"ix":5},"eo":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p4_1_0p6_0"],"t":73,"s":[13],"e":[99]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":83,"s":[99],"e":[1]},{"t":91}],"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":54,"op":540,"st":-40,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[404,302,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.3,0.3],"y":[1,1]},"o":{"x":[0.7,0.7],"y":[0,0]},"n":["0p3_1_0p7_0","0p3_1_0p7_0"],"t":48,"s":[20,0],"e":[0,60]},{"t":67}],"ix":2},"p":{"a":0,"k":[0,-51],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.124487452209,0.808345139027,0.834175884724,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.187980338931,0.750694930553,0.863511025906,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.456,"y":1},"o":{"x":0.178,"y":0.339},"n":"0p456_1_0p178_0p339","t":47,"s":[2.992,13.768],"e":[0,-154],"to":[0.40790435671806,-12.2535486221313],"ti":[-0.18578809499741,5.58112049102783]},{"t":89}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":0,"k":13,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":27.692,"ix":4},"so":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p4_1_0p6_0"],"t":42,"s":[10],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":67,"s":[100],"e":[0]},{"t":74}],"ix":5},"eo":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p833_1_0p6_0"],"t":42,"s":[13],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":67,"s":[100],"e":[0]},{"t":74}],"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":38,"op":524,"st":-56,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[404,302,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.3,0.3],"y":[1,1]},"o":{"x":[0.7,0.7],"y":[0,0]},"n":["0p3_1_0p7_0","0p3_1_0p7_0"],"t":55,"s":[20,0],"e":[0,60]},{"t":74}],"ix":2},"p":{"a":0,"k":[0,-51],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.607843137255,0.321568627451,0.921568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.603921568627,0.345098039216,0.909803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.456,"y":1},"o":{"x":0.178,"y":0.121},"n":"0p456_1_0p178_0p121","t":57,"s":[2.992,13.768],"e":[0,-154],"to":[0.40790435671806,-12.2535486221313],"ti":[-0.18578809499741,5.58112049102783]},{"t":72}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":0,"k":13,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":27.692,"ix":4},"so":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p4_1_0p6_0"],"t":57,"s":[10],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":67,"s":[100],"e":[0]},{"t":75}],"ix":5},"eo":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"n":["0p4_1_0p6_0"],"t":57,"s":[13],"e":[99]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":67,"s":[99],"e":[1]},{"t":75}],"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":38,"op":524,"st":-56,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/5317-fireworkds.json b/external/rlottie/example/resource/5317-fireworkds.json new file mode 100644 index 000000000..6b02a1f7d --- /dev/null +++ b/external/rlottie/example/resource/5317-fireworkds.json @@ -0,0 +1 @@ +{"v":"4.13.0","fr":30,"ip":0,"op":150,"w":720,"h":1280,"nm":"portWin","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":15,"ix":10},"p":{"a":0,"k":[568,319.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.057,0.057,0.667],"y":[1,1,1]},"o":{"x":[0,0,0.333],"y":[0,0,0]},"n":["0p057_1_0_0","0p057_1_0_0","0p667_1_0p333_0"],"t":9,"s":[0,0,100],"e":[100,100,100]},{"t":33}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":3,"ix":3},"p":{"a":1,"k":[{"i":{"x":0.194,"y":1},"o":{"x":0.054,"y":0},"n":"0p194_1_0p054_0","t":9,"s":[0,0],"e":[0,300],"to":[0,50],"ti":[0,-50]},{"t":33}],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":100,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.194,0.431],"y":[1,1]},"o":{"x":[0.054,0.057],"y":[0,0]},"n":["0p194_1_0p054_0","0p431_1_0p057_0"],"t":9,"s":[50,0],"e":[0,100]},{"t":33}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":0,"k":12,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":30,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":9,"op":34.5,"st":9,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":7.5,"ix":10},"p":{"a":0,"k":[568,319.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.057,0.057,0.667],"y":[1,1,1]},"o":{"x":[0,0,0.333],"y":[0,0,0]},"n":["0p057_1_0_0","0p057_1_0_0","0p667_1_0p333_0"],"t":9,"s":[0,0,100],"e":[100,100,100]},{"t":30}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":3,"ix":3},"p":{"a":1,"k":[{"i":{"x":0.194,"y":1},"o":{"x":0.054,"y":0},"n":"0p194_1_0p054_0","t":9,"s":[0,0],"e":[0,300],"to":[0,50],"ti":[0,-50]},{"t":30}],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":100,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.981387867647,0.886240581438,0.30961525113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.194,0.431],"y":[1,1]},"o":{"x":[0.054,0.057],"y":[0,0]},"n":["0p194_1_0p054_0","0p431_1_0p057_0"],"t":9,"s":[50,0],"e":[0,100]},{"t":30}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":0,"k":24,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":15,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":7.5,"op":31.5,"st":7.5,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[568,319.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.057,0.057,0.667],"y":[1,1,1]},"o":{"x":[0,0,0.333],"y":[0,0,0]},"n":["0p057_1_0_0","0p057_1_0_0","0p667_1_0p333_0"],"t":6,"s":[0,0,100],"e":[100,100,100]},{"t":27}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":3,"ix":3},"p":{"a":1,"k":[{"i":{"x":0.194,"y":1},"o":{"x":0.054,"y":0},"n":"0p194_1_0p054_0","t":6,"s":[0,0],"e":[0,300],"to":[0,50],"ti":[0,-50]},{"t":27}],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":100,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.497633421655,0.16718751496,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.194,0.431],"y":[1,1]},"o":{"x":[0.054,0.057],"y":[0,0]},"n":["0p194_1_0p054_0","0p431_1_0p057_0"],"t":6,"s":[50,0],"e":[0,100]},{"t":27}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":0,"k":12,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":30,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":6,"op":28.5,"st":6,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[568,319.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[1,0.95],"y":[1,1]},"o":{"x":[0.71,0.333],"y":[0,0]},"n":["1_1_0p71_0","0p95_1_0p333_0"],"t":0,"s":[4,0],"e":[435,4]},{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.02,0.087],"y":[0,0]},"n":["0_1_0p02_0","0_1_0p087_0"],"t":7.5,"s":[435,4],"e":[0,3]},{"t":12}],"ix":2},"p":{"a":1,"k":[{"i":{"x":1,"y":1},"o":{"x":0.71,"y":0},"n":"1_1_0p71_0","t":0,"s":[-568,0],"e":[-283,0],"to":[47.5,0],"ti":[-94.6666641235352,0]},{"i":{"x":0,"y":1},"o":{"x":0.02,"y":0},"n":"0_1_0p02_0","t":7.5,"s":[-283,0],"e":[0,0],"to":[94.6666641235352,0],"ti":[-47.1666679382324,0]},{"t":12}],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.615883501838,0.36321997549,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":54,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Fireworks","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-62.525,"ix":10},"p":{"a":0,"k":[153.272,612.543,0],"ix":2},"a":{"a":0,"k":[568,319.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1136,"h":639,"ip":26,"op":80,"st":26,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Fireworks","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-82.434,"ix":10},"p":{"a":0,"k":[315.416,300.741,0],"ix":2},"a":{"a":0,"k":[568,319.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1136,"h":639,"ip":17,"op":71,"st":17,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Fireworks","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-108.396,"ix":10},"p":{"a":0,"k":[564.728,513.82,0],"ix":2},"a":{"a":0,"k":[568,319.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1136,"h":639,"ip":8,"op":62,"st":8,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Fireworks","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-119.562,"ix":10},"p":{"a":0,"k":[360,640,0],"ix":2},"a":{"a":0,"k":[568,319.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1136,"h":639,"ip":0,"op":54,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Fireworks","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-105.393,"ix":10},"p":{"a":0,"k":[253.284,768.545,0],"ix":2},"a":{"a":0,"k":[568,319.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1136,"h":639,"ip":98,"op":152,"st":98,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Fireworks","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-125.303,"ix":10},"p":{"a":0,"k":[415.429,456.742,0],"ix":2},"a":{"a":0,"k":[568,319.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1136,"h":639,"ip":89,"op":143,"st":89,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Fireworks","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-151.264,"ix":10},"p":{"a":0,"k":[664.741,669.822,0],"ix":2},"a":{"a":0,"k":[568,319.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1136,"h":639,"ip":80,"op":134,"st":80,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Fireworks","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-162.431,"ix":10},"p":{"a":0,"k":[460.013,796.002,0],"ix":2},"a":{"a":0,"k":[568,319.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1136,"h":639,"ip":72,"op":126,"st":72,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/5344-honey-sack-hud.json b/external/rlottie/example/resource/5344-honey-sack-hud.json new file mode 100644 index 000000000..8eedfc96f --- /dev/null +++ b/external/rlottie/example/resource/5344-honey-sack-hud.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":29.9700012207031,"ip":4.00000016292334,"op":35.0000014255792,"w":420,"h":420,"nm":"Cred points_Bg Pattern_Anim","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 70","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.251,8.5]],"o":[[-0.246,-8.5],[0,0]],"v":[[97,165.5],[96,131.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 69","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[209,99.25]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[6.167,2.833]],"o":[[-6.25,2.667],[0,0],[0,0]],"v":[[206.25,82.25],[187.5,90.25],[169,81.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 68","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.562,2.128]],"o":[[-4.565,-2.117],[0,0]],"v":[[187,173],[168.75,164.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 67","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[6.167,3]],"o":[[-5.333,-2.833],[0,0],[0,0],[0,0]],"v":[[149.5,172.5],[133.5,164],[133,132.5],[114.5,123.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 66","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.499,-2.252]],"o":[[-4.502,2.243],[0,0]],"v":[[187,-204],[169,-195]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 65","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0.25,10.917],[0,0],[0,0]],"v":[[151.25,-236],[152,-203.25],[131,-194.25]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 64","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.127,-8]],"o":[[0.12,8],[0,0]],"v":[[41,-235],[41.5,-203]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 63","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.999,-3.252]],"o":[[5.002,3.245],[0,0]],"v":[[-215,-208],[-195,-195]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 62","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.667,-2.667]],"o":[[-5.333,-2.333],[0,0],[0,0]],"v":[[221,-155],[205,-162],[188,-154]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 61","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,11]],"o":[[-6.167,-2.833],[0,0],[0,0]],"v":[[205.5,50],[187,41.5],[187,8.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 60","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-5.333,3]],"o":[[5.333,-3],[0,0],[0,0],[0,0]],"v":[[-193,132],[-177,123],[-157,133],[-141,124]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 59","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,11.167]],"o":[[0,-10.833],[0,0],[0,0],[0,0]],"v":[[-105,206],[-105,173.5],[-86.5,165],[-86.5,131.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 58","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,11.167]],"o":[[0,-10.833],[0,0],[0,0],[0,0]],"v":[[77,205.5],[77,173],[60,164.5],[60,131]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 57","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.126,8]],"o":[[-0.121,-8],[0,0]],"v":[[-30,206],[-30.5,174]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 56","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.691,2.222]],"o":[[-4.926,-2.333],[0,0]],"v":[[-140.5,-71.5],[-159.5,-80.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 55","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.999,2.248]],"o":[[5.002,-2.255],[0,0]],"v":[[-198,-29],[-178,-38]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 54","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.333,10.833]],"o":[[6,3.5],[0,0],[0,0],[0,0]],"v":[[-213.5,39],[-195.5,49.5],[-177.5,41.5],[-176.5,9]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 53","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-177.5,-40]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.247,7.531]],"o":[[-0.259,-7.907],[0,0]],"v":[[-123,0],[-124,-30.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[2],"e":[0.5]},{"t":48.0000019550801}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.775,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[100],"e":[0]},{"t":33.225001353282}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Shape Layer 50","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[5.667,2.667]],"o":[[0,-10.5],[0,0],[0,0],[0,0],[0,0]],"v":[[150.5,122.5],[150.5,91],[132.5,83],[114.5,91],[97.5,83]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 49","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.333,9.5]],"o":[[4.167,-1.667],[0,0],[0,0]],"v":[[48,87.5],[60.5,82.5],[59.5,54]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Shape Layer 48","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,11]],"o":[[0,-10.167],[0,0],[0,0],[0,0]],"v":[[77,122],[77,91.5],[96.5,82.5],[96.5,49.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Shape Layer 47","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[5.333,-3]],"o":[[-6.667,2.667],[0,0],[0,0],[0,0]],"v":[[187,-122],[167,-114],[151,-124],[135,-115]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Shape Layer 45","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,-10.333]],"o":[[0,10.667],[0,0],[0,0],[0,0]],"v":[[96,-194],[96,-162],[78,-153],[78,-122]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Shape Layer 43","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,11]],"o":[[-5.667,-2.833],[0,0],[0,0],[0,0],[0,0]],"v":[[204.5,-32.5],[187.5,-41],[168.5,-31.5],[150.5,-40],[150.5,-73]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Shape Layer 41","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.691,2.346]],"o":[[4.926,-2.463],[0,0]],"v":[[22,50],[41,40.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Shape Layer 40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[6.167,3.333]],"o":[[-0.167,-10.667],[0,0],[0,0]],"v":[[41.5,124],[41,92],[22.5,82]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"Shape Layer 36","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.167,10.333]],"o":[[-5.667,-3.167],[0,0],[0,0]],"v":[[150.5,9.5],[133.5,0],[133,-31]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"Shape Layer 34","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[5.333,2.167]],"o":[[-6.333,-2.667],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[187.5,-72.5],[168.5,-80.5],[151,-72],[132.5,-81.5],[131.5,-113],[115.5,-119.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[2],"e":[0.5]},{"t":43.0000017514259}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":17.775,"s":[100],"e":[0]},{"t":41.0000016699642}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":5,"s":[100],"e":[0]},{"t":28.2250011496278}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":-1.00000004073083,"op":299.00001217852,"st":-1.00000004073083,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Shape Layer 33","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,-10.667]],"o":[[-0.167,10],[0,0],[0,0],[0,0]],"v":[[78.5,-233.5],[78,-203.5],[60.5,-195.5],[60.5,-163.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[2],"e":[0.5]},{"t":43.0000017514259}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Shape Layer 32","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,10.167]],"o":[[-5.167,3.5],[0,0],[0,0],[0,0]],"v":[[149.5,-41.5],[134,-31],[115,-40.5],[115,-71]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[2],"e":[0.5]},{"t":43.0000017514259}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Shape Layer 24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-10.167]],"o":[[-5.667,3],[0,0],[0,0]],"v":[[168.5,1],[151.5,10],[151.5,40.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Shape Layer 22","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[6,3.333]],"o":[[-6.167,3.167],[0,0],[0,0]],"v":[[169.5,-163],[151,-153.5],[133,-163.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Shape Layer 21","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[6.667,-2.667]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[132.5,-194],[133,-162.5],[114,-153],[115,-120.5],[95,-112.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Shape Layer 20","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,10.5]],"o":[[-6.333,-2.833],[0,0],[0,0]],"v":[[60,49],[41,40.5],[41,9]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Shape Layer 17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.44,2.18]],"o":[[-4.437,-2.19],[0,0]],"v":[[40.5,-72.5],[22.75,-81.25]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"Shape Layer 16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[6.333,-2.5]],"o":[[-6.333,-3],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[170,50],[151,41],[132.5,51],[114.5,42],[114.5,9.5],[96,1.5],[77,9]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"Shape Layer 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.63,2.127]],"o":[[-4.61,-2.118],[0,0]],"v":[[59,-32],[40.5,-40.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"Shape Layer 11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[6,2.667]],"o":[[-0.167,-10.833],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[23.5,165],[23,132.5],[4.5,123],[6,90],[23,82],[23,50.5],[5.5,42],[4.5,9],[-13.5,1]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.167,-10.667]],"o":[[-5.833,3.167],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[132,-81.5],[114.5,-72],[96,-80.5],[95,-113],[77.5,-121],[59,-113],[59.5,-81]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[78,-72]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[6,-2.833]],"o":[[0.167,11.667],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[22.5,-197],[23,-162],[4,-154],[5,-122],[-14,-113.5],[-13.5,-82],[-31.5,-73.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[5.833,2.5]],"o":[[-6.667,2.667],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[115,-40.5],[95,-32.5],[78.5,-40],[78.5,-71.5],[59,-81],[40.5,-72],[40.5,-40.5],[22,-32.5],[4.5,-40]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-10.667]],"o":[[-6,-2.833],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[78.5,-154.5],[60.5,-163],[41.5,-154],[41,-122.5],[23,-114],[23,-81.5],[4.5,-73],[4.5,-41]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[255,210,0],"ix":2},"a":{"a":0,"k":[5,-40,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[6,2.833]],"o":[[-6,-2.917],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[78,90],[60,81.25],[60,49.5],[78.25,40.25],[77.5,9.25],[59.5,0],[41,8.75],[22.5,0.5],[22.5,-32.25],[4.5,-40.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"Shape Layer 52","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-6,3]],"o":[[6.5,3.167],[0,0],[0,0]],"v":[[-178,-204],[-158.5,-194.5],[-140.5,-203.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"Shape Layer 51","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,-11]],"o":[[0,10.833],[0,0],[0,0],[0,0]],"v":[[-67.5,-235.5],[-67.5,-203],[-49.5,-195],[-49.5,-162]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"Shape Layer 46","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[5.667,-3],[0,0],[0,0],[0,0]],"v":[[-176,9],[-159,0],[-141,8],[-141,41]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":"Shape Layer 44","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-5,1.667]],"o":[[6,-2.333],[0,0],[0,0],[0,0]],"v":[[-141,90],[-123,83],[-123,49],[-108,44]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"Shape Layer 42","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.506,-2.562]],"o":[[4.482,2.565],[0,0]],"v":[[-122,-163],[-104,-152.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"Shape Layer 39","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-7.654]],"o":[[0,8.037],[0,0]],"v":[[-68.5,-153.5],[-68.5,-122.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"Shape Layer 38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.252,8.75]],"o":[[-0.245,-8.75],[0,0]],"v":[[-32,125],[-33,90]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"Shape Layer 37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-5.5,-2.5]],"o":[[5.5,2.833],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-12.5,-244],[4,-235.5],[5.5,-204.5],[-13.5,-196],[-12.5,-162],[4,-154.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"Shape Layer 35","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-11.167]],"o":[[6.667,3],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-196.5,-163],[-176.5,-154],[-160,-162.5],[-142,-155.5],[-141,-121.5],[-123,-114.5],[-121.5,-80.5],[-141.5,-72.5],[-141.5,-39]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":17.775,"s":[100],"e":[0]},{"t":41.0000016699642}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":5,"s":[100],"e":[0]},{"t":28.2250011496278}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"Shape Layer 31","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.568,-1.852]],"o":[[4.796,1.944],[0,0]],"v":[[-31.5,-121.5],[-13,-114]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[2],"e":[0.5]},{"t":43.0000017514259}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"Shape Layer 30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,8.272]],"o":[[0,-8.685],[0,0]],"v":[[95.5,1],[95.5,-32.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[2],"e":[0.5]},{"t":43.0000017514259}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"Shape Layer 29","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,7.901]],"o":[[0,-8.296],[0,0]],"v":[[-50,0.5],[-50,-31.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[2],"e":[0.5]},{"t":43.0000017514259}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"Shape Layer 28","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[6,3]],"o":[[0,-10.333],[0,0],[0,0]],"v":[[-50,81.5],[-50,50.5],[-68,41.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[2],"e":[0.5]},{"t":43.0000017514259}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"Shape Layer 27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.624,2.128]],"o":[[-4.627,-2.117],[0,0]],"v":[[-67.5,90.75],[-86,82.25]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"Shape Layer 26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-6.167,2.667]],"o":[[5.667,-2.5],[0,0],[0,0],[0,0]],"v":[[-122,131],[-105,123.5],[-86,132],[-67.5,124]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"Shape Layer 25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-6,3.167]],"o":[[0,-10.667],[0,0],[0,0]],"v":[[-13.5,165],[-13.5,133],[4.5,123.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"Shape Layer 19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-6,-2.667]],"o":[[0.167,10.833],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-141.5,-236],[-141,-203.5],[-123,-193.5],[-104,-203],[-86.5,-195],[-86.5,-162],[-104.5,-152.5],[-104.5,-121],[-86.5,-113]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"Shape Layer 18","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.752,2.493]],"o":[[4.749,-2.502],[0,0]],"v":[[-87,-31],[-68,-41]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"Shape Layer 15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-5.833,2.833]],"o":[[6,-2.75],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-195.75,-113.75],[-177.75,-122],[-158.75,-112.75],[-159.25,-80.75],[-178.25,-72.5],[-176.5,-39],[-158.5,-31.5],[-140.5,-39.5],[-123,-31.5],[-105.5,-40]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"Shape Layer 14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-6,-3]],"o":[[6,2.667],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-159.5,1],[-141.5,9],[-122.5,-0.5],[-105,9],[-105,41],[-87,50]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":64,"ty":4,"nm":"Shape Layer 13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.167,10.667]],"o":[[0,-11],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-49.5,165.5],[-49.5,132.5],[-67.5,124],[-67.5,91],[-50,82],[-31.5,91.5],[-13,82],[-14,50.5],[-32.5,41.5],[-32,9.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,251,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-6,2.833]],"o":[[6,2.667],[0,0],[0,0],[0,0],[0,0]],"v":[[-86.25,-80.75],[-68.25,-72.75],[-68,-40.5],[-50,-32],[-32,-40.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0.333,10],[0,0],[0,0],[0,0],[0,0]],"v":[[-50.5,-192],[-49.5,-162],[-31.5,-154],[-32,-122],[-48.5,-114]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,10.5]],"o":[[6.083,-3],[0,0],[0,0],[0,0],[0,0]],"v":[[-105,8.75],[-86.75,-0.25],[-86.75,-31.75],[-105.5,-41],[-105.5,-72.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249,250.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-5.833,-2.833]],"o":[[5.833,2.833],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-122.5,-81],[-105,-72.5],[-86,-81],[-86.5,-113],[-68.5,-123],[-50,-113.5],[-50,-81],[-32,-74],[-32,-41],[-14.5,-32.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[254.5,210,0],"ix":2},"a":{"a":0,"k":[5.5,-40.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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],[-18,8.5]],"o":[[0,-6.333],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-105.5,110],[-105.5,91],[-86.5,81.5],[-87,49.5],[-68,41.5],[-67,8.5],[-49.5,0],[-32,9],[-13.5,0],[-13.5,-32.5],[4.5,-41]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.172549019608,0.862745157878,0.737254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[2],"e":[0.5]},{"t":44.0000017921567}],"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":18.775,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":29.2250011903587}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"pattern 12","refId":"comp_0","sr":0.8,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207,250.75,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[112.666,0],[0,-112.666],[-112.666,0],[0,112.666]],"o":[[-112.666,0],[0,112.666],[112.666,0],[0,-112.666]],"v":[[253.926,5.082],[49.926,209.082],[253.926,413.082],[457.926,209.082]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":500,"h":500,"ip":0,"op":240.0000097754,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/Indicators1.json b/external/rlottie/example/resource/Indicators1.json new file mode 100644 index 000000000..742c48bc0 --- /dev/null +++ b/external/rlottie/example/resource/Indicators1.json @@ -0,0 +1 @@ +{"v":"4.6.9","fr":29.9700012207031,"ip":0,"op":427.000017392067,"w":800,"h":600,"nm":"Indicators 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":0,"s":[325.441,300.5,0],"e":[350.147,300.5,0],"to":[4.11765050888062,0,0],"ti":[-8.34681701660156,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":20,"s":[350.147,300.5,0],"e":[375.522,300.5,0],"to":[8.34681701660156,0,0],"ti":[-4.22916650772095,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45,"s":[375.522,300.5,0],"e":[375.522,300.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":65,"s":[375.522,300.5,0],"e":[400.772,300.5,0],"to":[4.20833349227905,0,0],"ti":[-8.33333301544189,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":85,"s":[400.772,300.5,0],"e":[425.522,300.5,0],"to":[8.33333301544189,0,0],"ti":[-4.125,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":110,"s":[425.522,300.5,0],"e":[425.522,300.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":130,"s":[425.522,300.5,0],"e":[450.853,300.5,0],"to":[4.22176122665405,0,0],"ti":[-8.33941173553467,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":150,"s":[450.853,300.5,0],"e":[475.559,300.5,0],"to":[8.33941173553467,0,0],"ti":[-4.11765050888062,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":175,"s":[475.559,300.5,0],"e":[475.559,300.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":195,"s":[475.559,300.5,0],"e":[450.853,300.5,0],"to":[-4.11765050888062,0,0],"ti":[8.32598400115967,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":215,"s":[450.853,300.5,0],"e":[425.603,300.5,0],"to":[-8.32598400115967,0,0],"ti":[4.20833349227905,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":240,"s":[425.603,300.5,0],"e":[425.603,300.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":260,"s":[425.603,300.5,0],"e":[400.228,300.5,0],"to":[-4.22916650772095,0,0],"ti":[8.34375,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":280,"s":[400.228,300.5,0],"e":[375.54,300.5,0],"to":[-8.34375,0,0],"ti":[4.11458349227905,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":305,"s":[375.54,300.5,0],"e":[375.54,300.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":325,"s":[375.54,300.5,0],"e":[350.147,300.5,0],"to":[-4.232177734375,0,0],"ti":[8.34982776641846,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":345,"s":[350.147,300.5,0],"e":[325.441,300.5,0],"to":[-8.34982776641846,0,0],"ti":[4.11765050888062,0,0]},{"t":370.000015070409}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":0,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":20,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":65,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":85,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":110,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":130,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":150,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":175,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":195,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":215,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":240,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":260,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":280,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":305,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"n":"0p833_0p833_1_0","t":325,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":345,"s":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[24.706,12.5],[-24.706,12.5],[-37.206,0],[-37.206,0],[-24.706,-12.5],[24.706,-12.5],[37.206,0],[37.206,0]],"c":true}],"e":[{"i":[[6.875,0],[0,0],[0,6.875],[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0]],"o":[[0,0],[-6.875,0],[0,0],[0,-6.875],[0,0],[6.875,0],[0,0],[0,6.875]],"v":[[0,12.5],[0,12.5],[-12.5,0],[-12.5,0],[0,-12.5],[0,-12.5],[12.5,0],[12.5,0]],"c":true}]},{"t":370.000015070409}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.105882,0.105882,0.105882,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":25},"r":{"a":0,"k":0},"p":{"a":0,"k":[375.559,300.5,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","ix":1,"ks":{"a":0,"k":{"i":[[6.904,0],[0,-6.903],[-6.903,0],[0,6.903]],"o":[[-6.903,0],[0,6.903],[6.904,0],[0,-6.903]],"v":[[100,-12.5],[87.5,0],[100,12.5],[112.5,0]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.105882,0.105882,0.105882,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.903,0],[0,-6.903],[-6.903,0],[0,6.903]],"o":[[-6.903,0],[0,6.903],[6.903,0],[0,-6.903]],"v":[[50,-12.5],[37.5,0],[50,12.5],[62.5,0]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.105882,0.105882,0.105882,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.904,0],[0,-6.903],[-6.903,0],[0,6.903]],"o":[[-6.903,0],[0,6.903],[6.904,0],[0,-6.903]],"v":[[0,-12.5],[-12.5,0],[0,12.5],[12.5,0]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.105882,0.105882,0.105882,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-6.903],[6.904,0],[0,6.903],[-6.903,0]],"o":[[0,6.903],[-6.903,0],[0,-6.903],[6.904,0]],"v":[[-61.617,0],[-74.117,12.5],[-86.617,0],[-74.117,-12.5]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.105882,0.105882,0.105882,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[24,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/ModernPictogramsForLottie_LoudMute.json b/external/rlottie/example/resource/ModernPictogramsForLottie_LoudMute.json new file mode 100644 index 000000000..ac8e09cea --- /dev/null +++ b/external/rlottie/example/resource/ModernPictogramsForLottie_LoudMute.json @@ -0,0 +1 @@ +{"v":"4.10.1","fr":60,"ip":0,"op":88,"w":800,"h":800,"nm":"LoudMute_Preview","ddd":0,"assets":[{"id":"comp_43","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Waves 4","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.25,"y":0},"n":"0p833_0p833_0p25_0","t":1,"s":[76.303,74.511,0],"e":[56.303,74.511,0],"to":[-3.33333325386047,0,0],"ti":[3.33333325386047,0,0]},{"t":14}],"ix":2},"a":{"a":0,"k":[76.303,74.511,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.25,0.25,0.25],"y":[0,0,0]},"n":["0p833_0p833_0p25_0","0p833_0p833_0p25_0","0p833_1_0p25_0"],"t":1,"s":[100,100,100],"e":[10,10,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,11.05],[8.061,8.06],[0,0],[0,-13.78],[10.531,-10.531]],"o":[[8.061,-7.931],[0,-10.92],[0,0],[10.14,10.14],[0,12.87],[0,0]],"v":[[23.401,29.836],[35.492,-0.065],[23.401,-30.096],[30.292,-36.986],[46.022,0.585],[30.681,36.986]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[76.303,74.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":12,"st":-126,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Waves 3","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.25,"y":0},"n":"0p833_0p833_0p25_0","t":1,"s":[76.303,74.511,0],"e":[56.303,74.511,0],"to":[-3.33333325386047,0,0],"ti":[3.33333325386047,0,0]},{"t":14}],"ix":2},"a":{"a":0,"k":[76.303,74.511,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.25,0.25,0.25],"y":[0,0,0]},"n":["0p833_0p833_0p25_0","0p833_0p833_0p25_0","0p833_1_0p25_0"],"t":1,"s":[100,100,100],"e":[10,10,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,6.239],[4.42,4.551],[0,0],[0,-8.71],[7.151,-7.021]],"o":[[4.681,-4.68],[0,-6.11],[0,0],[6.37,6.501],[0,7.93],[0,0]],"v":[[8.84,16.835],[15.991,-0.585],[9.361,-17.096],[15.731,-23.466],[25.872,0.195],[15.601,23.466]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[76.303,74.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":12,"st":-126,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"StrikeOut","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[34.642,37.517,0],"ix":2},"a":{"a":0,"k":[-26.733,-37.483,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":5,"s":[0,0,100],"e":[100,100,100]},{"t":7}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26.75,-37.5],[40.5,29.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.19],"y":[1]},"o":{"x":[0.328],"y":[0]},"n":["0p19_1_0p328_0"],"t":7,"s":[0],"e":[0]},{"t":30}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.19],"y":[1]},"o":{"x":[0.328],"y":[-0.008]},"n":["0p19_1_0p328_-0p008"],"t":7,"s":[0.05],"e":[100]},{"t":30}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":32,"st":-13,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"StrikeOutMatte","parent":5,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[66.533,75,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"n":"0_1_0p333_0","t":7,"s":[{"i":[[0,0],[0,0],[-15.409,-15.602],[2.12,-1.823],[2.829,2.891],[0,0],[0,0],[0,0],[-1,0.25],[0,0]],"o":[[0,0],[0,0],[3.254,3.295],[-2.194,1.886],[-7.913,-8.089],[0,0],[0,0],[0,0],[1,-0.25],[0,0]],"v":[[12.25,-60.25],[-102.807,-117.884],[-28.583,-43.548],[-28.734,-33.862],[-37.96,-34.576],[-112.917,-109.231],[-52.75,-30.75],[-52.25,54.75],[43.5,62.75],[45.75,-58.75]],"c":true}],"e":[{"i":[[0,0],[0,0],[-15.409,-15.602],[2.12,-1.823],[2.829,2.891],[0,0],[0,0],[0,0],[-1,0.25],[0,0]],"o":[[0,0],[0,0],[3.254,3.295],[-2.194,1.886],[-7.913,-8.089],[0,0],[0,0],[0,0],[1,-0.25],[0,0]],"v":[[12.25,-60.25],[-34.407,-49.484],[39.817,24.852],[39.666,34.538],[30.44,33.824],[-44.517,-40.831],[-52.75,-30.75],[-52.25,54.75],[43.5,62.75],[45.75,-58.75]],"c":true}]},{"t":30}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-4,"op":52,"st":-4,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Sound","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.19,"y":1},"o":{"x":0.25,"y":0},"n":"0p19_1_0p25_0","t":7,"s":[76.303,74.511,0],"e":[89.928,74.511,0],"to":[2.27083325386047,0,0],"ti":[-2.27083325386047,0,0]},{"t":30}],"ix":2},"a":{"a":0,"k":[76.303,74.511,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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.82,39.196],[-22.491,14.885],[-46.022,14.885],[-46.022,-14.885],[-22.491,-14.885],[1.82,-39.196]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[76.303,74.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":32,"st":-13,"bm":0}]},{"id":"comp_44","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Waves 2","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.19,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p19_1_0p167_0p167","t":15,"s":[56.303,74.511,0],"e":[76.303,74.511,0],"to":[3.33333325386047,0,0],"ti":[-3.33333325386047,0,0]},{"t":47}],"ix":2},"a":{"a":0,"k":[76.303,74.511,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.19,0.19,0.19],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,15]},"n":["0p19_1_0p167_0p167","0p19_1_0p167_0p167","0p19_1_0p167_15"],"t":15,"s":[10,10,100],"e":[100,100,100]},{"t":47}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,11.05],[8.061,8.06],[0,0],[0,-13.78],[10.531,-10.531]],"o":[[8.061,-7.931],[0,-10.92],[0,0],[10.14,10.14],[0,12.87],[0,0]],"v":[[23.401,29.836],[35.492,-0.065],[23.401,-30.096],[30.292,-36.986],[46.022,0.585],[30.681,36.986]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[76.303,74.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":56,"st":-98,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Waves","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.19,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p19_1_0p167_0p167","t":17,"s":[56.303,74.511,0],"e":[76.303,74.511,0],"to":[3.33333325386047,0,0],"ti":[-3.33333325386047,0,0]},{"t":54}],"ix":2},"a":{"a":0,"k":[76.303,74.511,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.19,0.19,0.19],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,15]},"n":["0p19_1_0p167_0p167","0p19_1_0p167_0p167","0p19_1_0p167_15"],"t":17,"s":[10,10,100],"e":[100,100,100]},{"t":54}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,6.239],[4.42,4.551],[0,0],[0,-8.71],[7.151,-7.021]],"o":[[4.681,-4.68],[0,-6.11],[0,0],[6.37,6.501],[0,7.93],[0,0]],"v":[[8.84,16.835],[15.991,-0.585],[9.361,-17.096],[15.731,-23.466],[25.872,0.195],[15.601,23.466]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[76.303,74.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":17,"op":56,"st":-96,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"StrikeOut","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[34.642,37.517,0],"ix":2},"a":{"a":0,"k":[-26.733,-37.483,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":22,"s":[100,100,100],"e":[0,0,100]},{"t":29}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26.75,-37.5],[40.5,29.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.108],"y":[1]},"o":{"x":[0.256],"y":[0]},"n":["0p108_1_0p256_0"],"t":1,"s":[0],"e":[0]},{"t":22}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.108],"y":[0.981]},"o":{"x":[0.256],"y":[0]},"n":["0p108_0p981_0p256_0"],"t":1,"s":[100],"e":[0.05]},{"t":22}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":38,"st":-98,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"StrikeOutMatte","parent":5,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[66.418,75,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"n":"0_1_0p333_0","t":1,"s":[{"i":[[0,0],[0,0],[-15.409,-15.602],[2.12,-1.823],[2.829,2.891],[0,0],[0,0],[0,0],[-1,0.25],[0,0]],"o":[[0,0],[0,0],[3.254,3.295],[-2.194,1.886],[-7.913,-8.089],[0,0],[0,0],[0,0],[1,-0.25],[0,0]],"v":[[12.25,-60.25],[-34.407,-49.484],[39.817,24.852],[39.666,34.538],[30.44,33.824],[-44.517,-40.831],[-52.75,-30.75],[-52.25,54.75],[43.5,62.75],[45.75,-58.75]],"c":true}],"e":[{"i":[[0,0],[0,0],[-15.409,-15.602],[2.12,-1.823],[2.829,2.891],[0,0],[0,0],[0,0],[-1,0.25],[0,0]],"o":[[0,0],[0,0],[3.254,3.295],[-2.194,1.886],[-7.913,-8.089],[0,0],[0,0],[0,0],[1,-0.25],[0,0]],"v":[[12.25,-60.25],[-102.807,-117.884],[-28.583,-43.548],[-28.734,-33.862],[-37.96,-34.576],[-112.917,-109.231],[-52.75,-30.75],[-52.25,54.75],[43.5,62.75],[45.75,-58.75]],"c":true}]},{"t":24}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":56,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Sound","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.25,"y":0},"n":"0p1_1_0p25_0","t":1,"s":[89.928,74.511,0],"e":[76.303,74.511,0],"to":[-2.27083325386047,0,0],"ti":[2.27083325386047,0,0]},{"t":30}],"ix":2},"a":{"a":0,"k":[76.303,74.511,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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.82,39.196],[-22.491,14.885],[-46.022,14.885],[-46.022,-14.885],[-22.491,-14.885],[1.82,-39.196]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[76.303,74.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":56,"st":-98,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"LoudMute_Mute","refId":"comp_43","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":150,"h":150,"ip":56,"op":88,"st":56,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"LoudMute_Loud","refId":"comp_44","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":150,"h":150,"ip":0,"op":56,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/StickAndBall.json b/external/rlottie/example/resource/StickAndBall.json new file mode 100644 index 000000000..423b284d6 --- /dev/null +++ b/external/rlottie/example/resource/StickAndBall.json @@ -0,0 +1 @@ +{"v":"4.7.0","fr":24,"ip":0,"op":23,"w":1080,"h":1080,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"#ball","ln":"ball","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"s":true,"x":{"a":0,"k":539},"y":{"a":1,"k":[{"i":{"x":[0.339],"y":[1]},"o":{"x":[0.893],"y":[0]},"n":["0p339_1_0p893_0"],"t":0,"s":[219],"e":[554]},{"i":{"x":[0.075],"y":[1]},"o":{"x":[0.622],"y":[0]},"n":["0p075_1_0p622_0"],"t":11,"s":[554],"e":[219]},{"t":22}]}},"a":{"a":0,"k":[-130,-257,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":2,"s":[94,94],"e":[85,122]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":5,"s":[85,122],"e":[94,94]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":7,"s":[94,94],"e":[94,92]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":11,"s":[94,92],"e":[94,94]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":15,"s":[94,94],"e":[84,118]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":17,"s":[84,118],"e":[94,94]},{"t":19}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.9019608,0.4032295,0.6379266,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-129,-257],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":23,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"#stick","ln":"stick","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[90],"e":[75.623]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[75.623],"e":[65.727]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":7,"s":[65.727],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":11,"s":[0],"e":[-37.333]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":13,"s":[-37.333],"e":[-41]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[-41],"e":[-66]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[-66],"e":[-82]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":16,"s":[-82],"e":[-90]},{"t":17}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[541.19,619.31,0],"e":[541.44,617.06,0],"to":[0.04166666790843,-0.375,0],"ti":[-0.04166666790843,0.375,0]},{"t":22}]},"a":{"a":0,"k":[251.515,7.576,0]},"s":{"a":0,"k":[33,33,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":13,"s":[{"i":[[-248.361,0],[-247.665,0]],"o":[[308.273,0],[237.183,0]],"v":[[-487.636,3.94],[983.453,7.879]],"c":false}],"e":[{"i":[[-243.183,50.45],[-568.665,-169.629]],"o":[[453.246,-94.029],[331.868,98.994]],"v":[[-487.636,3.94],[983.453,7.879]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[{"i":[[-243.183,50.45],[-568.665,-169.629]],"o":[[453.246,-94.029],[331.868,98.994]],"v":[[-487.636,3.94],[983.453,7.879]],"c":false}],"e":[{"i":[[-247.951,-14.258],[-458.271,96.09]],"o":[[469.414,26.993],[232.133,-48.674]],"v":[[-487.636,3.94],[983.453,-89.091]],"c":false}]},{"i":{"x":0.333,"y":1},"o":{"x":0.333,"y":0},"n":"0p333_1_0p333_0","t":18,"s":[{"i":[[-247.951,-14.258],[-458.271,96.09]],"o":[[469.414,26.993],[232.133,-48.674]],"v":[[-487.636,3.94],[983.453,-89.091]],"c":false}],"e":[{"i":[[-248.361,0],[-247.665,0]],"o":[[308.273,0],[237.183,0]],"v":[[-487.636,3.94],[983.453,7.879]],"c":false}]},{"t":22}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":97},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":23,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/UXSample_1920x1080/A Shapes_All_01_1920x1080.json b/external/rlottie/example/resource/UXSample_1920x1080/A Shapes_All_01_1920x1080.json new file mode 100644 index 000000000..5691c1ff3 --- /dev/null +++ b/external/rlottie/example/resource/UXSample_1920x1080/A Shapes_All_01_1920x1080.json @@ -0,0 +1 @@ +{"v":"5.1.18","fr":30,"ip":0,"op":36,"w":1920,"h":1080,"nm":"A Shapes_All_01","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1924.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[483.75,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[964,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1444.25,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[3.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"ellipse Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,77.324],[77.324,0],[0,-77.324],[-77.324,0]],"o":[[0,-77.324],[-77.324,0],[0,77.324],[77.324,0]],"v":[[140.007,0],[0,-140.007],[-140.007,0],[0,140.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rounded Rectangle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.6,0],[0,0],[0,-6.6],[0,0],[-6.6,0],[0,0],[0,6.6],[0,0]],"o":[[0,0],[-6.6,0],[0,0],[0,6.6],[0,0],[6.6,0],[0,0],[0,-6.6]],"v":[[128.333,-140.333],[-128.333,-140.333],[-140.333,-128.333],[-140.333,128.333],[-128.333,140.333],[128.333,140.333],[140.333,128.333],[140.333,-128.333]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Polystar Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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":[[-75.095,130],[-150.191,0],[-75.095,-130],[75.095,-130],[150.192,0],[75.095,130]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"merge Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[338.188,258.876,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[143.993,-143.993],[-143.993,-143.993],[-143.993,143.993],[143.993,143.993]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[942.053,592.591],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,103.879],[103.879,0],[0,-103.879],[-103.88,0]],"o":[[0,-103.879],[-103.88,0],[0,103.879],[103.879,0]],"v":[[188.091,0],[0,-188.09],[-188.09,0],[0,188.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1081.098,472],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"merge Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[338.188,258.876,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[143.993,-143.993],[-143.993,-143.993],[-143.993,143.993],[143.993,143.993]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[942.053,592.591],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,103.879],[103.879,0],[0,-103.879],[-103.88,0]],"o":[[0,-103.879],[-103.88,0],[0,103.879],[103.879,0]],"v":[[188.091,0],[0,-188.09],[-188.09,0],[0,188.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[1081.098,472],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"t":30}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":40,"s":[100],"e":[0]},{"t":70}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":2,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_8","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"merge Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[338.188,258.876,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[143.993,-143.993],[-143.993,-143.993],[-143.993,143.993],[143.993,143.993]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[942.053,592.591],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,103.879],[103.879,0],[0,-103.879],[-103.88,0]],"o":[[0,-103.879],[-103.88,0],[0,103.879],[103.879,0]],"v":[[188.091,0],[0,-188.09],[-188.09,0],[0,188.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[1081.098,472],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"t":30}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":40,"s":[100],"e":[0]},{"t":70}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]}],"fonts":{"list":[{"fName":"SamsungOne-500","fFamily":"SamsungOne","fStyle":"500","ascent":70.9991455078125}]},"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"div","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":5,"nm":"A Shapes_01 Shape","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"A Shapes_01 Shape","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"A Shapes_02 Ellipse","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519.5,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"A Shapes_02 Ellipse","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":5,"nm":"A Shapes_03 Rectangle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000.375,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"A Shapes_03 Rectangle","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"A Shapes_04 Rounded Rectangle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1480.5,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"A Shapes_04 Rounded Rectangle","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":5,"nm":"A Shapes_05 Polystar","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"A Shapes_05 Polystar","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":5,"nm":"A Shapes_06 Group","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519.5,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"A Shapes_06 Group","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":5,"nm":"A Shapes_07 Trim Path (individually)","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000.375,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"A Shapes_07 Trim Path (individually)","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":5,"nm":"A Shapes_08 Trim Path (simultaneously)","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1480.5,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"A Shapes_08 Trim Path \r(simultaneously)","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"A Shapes_01 Shape","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[248,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"A Shapes_02 Ellipse","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[726,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"A Shapes_03 Rectangle","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1204,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"A Shapes_04 Rounded Rectangle","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1678,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"A Shapes_05 Polystar","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[248,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"A Shapes_06 Group","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[732,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"A Shapes_07 Trim Path (individually)","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1198,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":0,"nm":"A Shapes_08 Trim Path (simultaneously)","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1678,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":37,"st":0,"bm":0}],"markers":[],"chars":[{"ch":"A","size":150,"style":"500","w":61.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[42.7,-21.35],[49.951,0],[59.317,0],[36.154,-67.877],[25.58,-67.877],[2.518,0],[11.581,0],[18.631,-21.35]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.007,4.028],[0,0],[-1.511,-4.431],[0,0]],"o":[[0,0],[1.309,-4.129],[0,0],[1.007,3.928],[0,0],[0,0]],"v":[[20.444,-28.198],[27.09,-47.836],[30.515,-60.123],[30.716,-60.123],[34.241,-47.736],[40.887,-28.198]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"A","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":" ","size":150,"style":"500","w":21.2,"data":{},"fFamily":"SamsungOne"},{"ch":"S","size":150,"style":"500","w":49.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.546,0],[0,10.474],[11.481,4.431],[0,6.345],[-9.265,0],[-2.216,-1.208],[0,0],[6.949,0],[0,-10.574],[-11.078,-3.928],[0,-6.345],[8.963,0],[3.928,2.417]],"o":[[3.625,2.417],[16.013,0],[0,-9.97],[-9.366,-3.625],[0,-4.633],[6.143,0],[0,0],[-3.021,-1.712],[-13.193,0],[0,9.567],[9.164,3.525],[0,6.848],[-6.042,0],[0,0]],"v":[[4.23,-3.323],[21.552,1.007],[45.319,-18.53],[27.997,-38.47],[14.502,-51.562],[27.292,-61.734],[40.182,-58.511],[42.599,-65.662],[27.594,-68.985],[5.64,-50.555],[23.566,-31.32],[36.356,-17.825],[22.156,-6.244],[6.445,-10.675]],"c":true},"ix":2},"nm":"S","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"S","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"h","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.504,1.208],[-5.74,0],[0,-7.855],[0,0],[0,0],[0,0],[6.546,0],[2.618,-1.511],[1.41,-2.518],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-1.712],[1.611,-4.834],[8.359,0],[0,0],[0,0],[0,0],[0,-16.818],[-3.323,0],[-2.719,1.511],[0,0],[0,0],[0,0],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.407],[16.818,-33.636],[28.702,-42.499],[39.981,-27.997],[39.981,0],[48.843,0],[48.843,-29.004],[31.824,-49.85],[22.76,-47.333],[16.415,-41.089],[16.214,-41.089],[16.214,-71.503],[7.352,-71.503]],"c":true},"ix":2},"nm":"h","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"h","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"a","size":150,"style":"500","w":48.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.23],[0,0],[14.905,0],[4.028,-2.618],[0,0],[-4.532,0],[0,-4.028],[0,0],[0,-11.783],[-9.869,0],[-2.719,3.827],[0,0],[0,0]],"o":[[-0.604,-3.323],[0,0],[0,-9.769],[-6.143,0],[0,0],[3.424,-2.216],[9.97,0],[0,0],[-18.832,-0.101],[0,7.05],[6.949,0],[0,0],[0,0],[0,0]],"v":[[42.398,0],[41.592,-11.682],[41.592,-29.91],[23.062,-49.85],[7.05,-45.52],[9.064,-39.679],[21.753,-43.304],[32.831,-32.025],[32.831,-31.018],[3.525,-12.891],[18.43,1.108],[33.334,-6.143],[33.636,-6.143],[34.341,0]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-0.906],[6.345,0],[0,5.74],[-9.668,-0.201]],"o":[[0,0.906],[-1.41,4.129],[-4.532,0],[0,-9.467],[0,0]],"v":[[33.032,-16.415],[32.529,-13.596],[20.746,-5.438],[12.387,-13.898],[33.032,-24.875]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"a","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"p","size":150,"style":"500","w":56.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-6.445,0],[0,17.523],[11.783,0],[3.625,-5.942],[0,0],[0,0],[0,0],[0,-6.244]],"o":[[0,0],[0,0],[0,0],[2.921,4.834],[11.481,0],[0,-14.804],[-7.956,0],[0,0],[0,0],[0,0],[0.201,4.633],[0,0]],"v":[[7.352,19.94],[16.113,19.94],[16.113,-6.546],[16.315,-6.546],[31.32,1.108],[53.476,-25.076],[32.831,-49.85],[15.509,-40.384],[15.308,-40.384],[14.905,-48.743],[6.949,-48.743],[7.352,-32.831]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.302,1.108],[-6.042,0],[0,-9.769],[9.366,0],[1.611,6.143],[0,1.309]],"o":[[0,-1.208],[1.712,-6.647],[9.366,0],[0,11.179],[-6.345,0],[-0.201,-1.108],[0,0]],"v":[[16.113,-28.198],[16.718,-31.824],[30.112,-42.801],[44.614,-24.673],[29.81,-5.841],[16.516,-16.214],[16.113,-19.839]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"p","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"e","size":150,"style":"500","w":50.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,1.813],[15.912,0],[0,-14.703],[-15.005,0],[-3.122,1.41],[0,0],[6.345,0],[0.201,11.984]],"o":[[0.101,-0.906],[0,-8.963],[-14.2,0],[0,14.703],[7.755,0],[0,0],[-3.323,1.41],[-8.862,0],[0,0]],"v":[[46.527,-22.76],[46.829,-26.889],[26.688,-49.85],[3.827,-23.566],[27.795,1.007],[44.009,-2.014],[42.499,-8.359],[29.004,-5.841],[12.286,-22.76]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-8.963,0],[0.101,-5.64]],"o":[[0.705,-6.143],[9.97,0],[0,0]],"v":[[12.387,-29.105],[25.983,-43.506],[38.269,-29.105]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"e","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"s","size":150,"style":"500","w":39.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-5.338,0],[0,8.56],[8.459,3.223],[0,4.028],[-5.237,0],[-1.913,-1.208],[0,0],[4.935,0],[0,-7.855],[-8.762,-3.122],[0,-4.23],[6.445,0],[2.618,1.712]],"o":[[3.424,2.014],[11.581,0],[0,-7.251],[-6.345,-2.417],[0,-3.625],[4.532,0],[0,0],[-2.719,-1.611],[-10.474,0],[0,5.841],[6.546,2.417],[0,4.028],[-4.431,0],[0,0]],"v":[[3.928,-2.316],[17.624,1.007],[35.852,-13.596],[23.062,-28.299],[13.797,-36.557],[21.954,-43.204],[31.924,-40.384],[34.14,-46.829],[22.156,-49.85],[5.338,-35.55],[18.228,-21.753],[27.292,-12.79],[17.825,-5.539],[6.143,-9.064]],"c":true},"ix":2},"nm":"s","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"s","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"_","size":150,"style":"500","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,7.553],[0,12.589],[50.354,12.589],[50.354,7.553]],"c":true},"ix":2},"nm":"_","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"_","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"0","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.797,0],[0,-21.954],[-12.79,0],[0,22.256]],"o":[[-13.293,0],[0.201,21.652],[14.502,0],[0,-20.847]],"v":[[26.385,-66.568],[3.625,-32.529],[25.278,1.108],[48.038,-33.435]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-7.755,0],[0,-16.113],[9.064,0],[0,17.02]],"o":[[9.164,0],[0,16.718],[-8.057,0],[0,-17.825]],"v":[[25.882,-59.72],[39.175,-33.032],[25.781,-5.74],[12.488,-32.428]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"0","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"8","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.696,0],[0,11.38],[8.157,3.223],[0,0],[0,5.539],[12.689,0],[0,-10.373],[-7.251,-3.424],[0,0],[0,-8.258]],"o":[[12.488,0],[0,-7.956],[0,0],[8.057,-3.827],[0,-8.157],[-11.481,0],[0,5.64],[0,0],[-8.057,3.424],[0,9.567]],"v":[[25.681,1.108],[47.937,-17.926],[34.744,-34.845],[34.744,-35.147],[45.52,-50.455],[26.486,-66.568],[6.244,-49.146],[16.617,-34.442],[16.718,-34.14],[3.726,-16.617]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.956,0],[-0.302,6.647],[-7.654,2.216],[0,-7.956]],"o":[[-8.359,0],[0,-6.244],[8.862,2.518],[0,6.747]],"v":[[25.882,-5.338],[12.79,-17.825],[24.573,-31.32],[38.974,-17.02]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-7.352,0],[0,-5.237],[5.64,-1.913],[0,6.546]],"o":[[7.956,0],[0,5.942],[-7.553,-2.014],[0,-5.64]],"v":[[25.983,-60.223],[37.061,-49.548],[27.09,-37.665],[14.603,-49.75]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"8","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"T","size":150,"style":"500","w":53.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[20.544,0],[29.407,0],[29.407,-60.425],[50.153,-60.425],[50.153,-67.877],[-0.101,-67.877],[-0.101,-60.425],[20.544,-60.425]],"c":true},"ix":2},"nm":"T","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"T","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"r","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.201,1.208],[-6.244,0],[-0.906,-0.201],[0,0],[1.007,0],[2.216,-6.546],[0,0],[0,0],[0,0],[0,-5.74]],"o":[[0,0],[0,0],[0,-1.511],[1.208,-6.647],[1.208,0],[0,0],[-0.806,-0.201],[-5.942,0],[0,0],[0,0],[0,0],[0.302,4.532],[0,0]],"v":[[7.352,0],[16.113,0],[16.113,-25.983],[16.516,-30.112],[28.4,-41.492],[31.421,-41.19],[31.421,-49.548],[28.903,-49.85],[15.408,-39.175],[15.005,-39.175],[14.703,-48.743],[6.949,-48.743],[7.352,-33.536]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"r","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"i","size":150,"style":"500","w":23.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16.214,0],[16.214,-48.743],[7.352,-48.743],[7.352,0]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[3.323,0],[0,-3.122],[-3.122,0],[0.101,3.021]],"o":[[-3.223,0],[0,3.021],[3.525,0],[0,-3.122]],"v":[[11.783,-67.978],[6.244,-62.439],[11.581,-57.001],[17.221,-62.439]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"i","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"m","size":150,"style":"500","w":83.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.504,1.309],[-5.539,0],[0,-7.755],[0,0],[0,0],[0,0],[-0.403,1.208],[-5.035,0],[0,-9.366],[0,0],[0,0],[0,0],[6.445,0],[2.921,-2.216],[1.511,-2.719],[0,0],[6.647,0],[2.719,-4.633],[0,0],[0,0],[0,0],[0,-5.035]],"o":[[0,0],[0,0],[0,-1.511],[1.41,-4.431],[6.747,0],[0,0],[0,0],[0,0],[0,-1.611],[1.511,-4.33],[7.15,0],[0,0],[0,0],[0,0],[0,-16.919],[-4.633,0],[-2.014,1.511],[0,0],[-2.115,-5.74],[-8.057,0],[0,0],[0,0],[0,0],[0.302,4.028],[0,0]],"v":[[7.352,0],[16.013,0],[16.013,-29.407],[16.718,-33.737],[27.695,-42.599],[37.866,-29.205],[37.866,0],[46.527,0],[46.527,-30.112],[47.232,-34.543],[57.706,-42.599],[68.28,-27.594],[68.28,0],[76.941,0],[76.941,-28.702],[60.928,-49.85],[50.153,-46.426],[44.714,-40.082],[44.513,-40.082],[30.716,-49.85],[15.408,-40.887],[15.106,-40.887],[14.703,-48.743],[6.949,-48.743],[7.352,-35.55]],"c":true},"ix":2},"nm":"m","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"m","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"P","size":150,"style":"500","w":53.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.618,0],[-4.633,4.935],[0,6.143],[3.726,3.223],[8.661,0],[4.23,-0.705]],"o":[[0,0],[0,0],[2.014,0.504],[8.56,0],[3.424,-3.525],[0,-6.042],[-4.028,-3.625],[-7.05,0],[0,0]],"v":[[7.654,0],[16.415,0],[16.415,-27.191],[23.465,-26.587],[44.211,-34.039],[49.448,-48.541],[43.506,-62.741],[24.472,-68.381],[7.654,-67.072]],"c":true},"ix":2},"nm":"P","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-3.827,0],[0,-8.963],[10.574,0],[1.913,0.504]],"o":[[1.511,-0.403],[9.668,0],[0,9.366],[-2.921,0],[0,0]],"v":[[16.415,-60.727],[24.673,-61.432],[40.686,-48.138],[23.666,-33.636],[16.415,-34.341]],"c":true},"ix":2},"nm":"P","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"P","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"t","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.518,-2.618],[-4.129,0],[-1.712,0.705],[0,0],[2.316,0],[0,6.042],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,5.74],[2.115,2.417],[3.424,0],[0,0],[-1.108,0.302],[-4.935,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[9.366,-60.425],[9.366,-48.743],[1.813,-48.743],[1.813,-41.995],[9.366,-41.995],[9.366,-15.408],[12.79,-2.719],[22.357,1.007],[30.212,-0.201],[29.81,-6.848],[24.673,-6.244],[18.027,-15.71],[18.027,-41.995],[30.716,-41.995],[30.716,-48.743],[18.027,-48.743],[18.027,-62.741]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"t","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"\r","size":150,"style":"500","w":0,"fFamily":"SamsungOne"},{"ch":"(","size":150,"style":"500","w":28.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.101,-19.839],[-6.345,-8.359],[0,0],[0,17.926],[-7.352,9.869]],"o":[[-6.345,8.459],[0,19.638],[0,0],[-7.15,-10.071],[0,-18.228],[0,0]],"v":[[19.638,-69.891],[6.445,-28.702],[19.638,12.186],[26.587,12.186],[13.898,-28.702],[26.587,-69.891]],"c":true},"ix":2},"nm":"(","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"(","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"u","size":150,"style":"500","w":55.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0.504,-1.309],[5.942,0],[0,9.265],[0,0],[0,0],[0,0],[-7.654,0],[-2.316,3.928],[0,0],[0,0],[0,0],[0,5.035]],"o":[[0,0],[0,0],[0,1.611],[-1.611,3.928],[-8.057,0],[0,0],[0,0],[0,0],[0,17.12],[8.661,0],[0,0],[0,0],[0,0],[-0.302,-3.827],[0,0]],"v":[[48.138,-48.743],[39.276,-48.743],[39.276,-18.832],[38.47,-14.301],[26.788,-6.244],[15.912,-21.753],[15.912,-48.743],[7.05,-48.743],[7.05,-20.242],[23.868,1.108],[39.981,-7.956],[40.182,-7.956],[40.686,0],[48.541,0],[48.138,-13.293]],"c":true},"ix":2},"nm":"u","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"u","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"l","size":150,"style":"500","w":23.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-71.503],[7.352,-71.503]],"c":true},"ix":2},"nm":"l","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"l","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"n","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.403,1.108],[-5.841,0],[0,-7.855],[0,0],[0,0],[0,0],[6.747,0],[2.417,-4.633],[0,0],[0,0],[0,0],[0,-5.035]],"o":[[0,0],[0,0],[0,-1.511],[1.511,-4.935],[8.359,0],[0,0],[0,0],[0,0],[0,-16.718],[-8.057,0],[0,0],[0,0],[0,0],[0.302,4.028],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.306],[16.818,-33.435],[28.702,-42.499],[39.981,-28.098],[39.981,0],[48.843,0],[48.843,-29.105],[31.622,-49.85],[15.509,-40.686],[15.308,-40.686],[14.804,-48.743],[6.949,-48.743],[7.352,-35.55]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"n","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"o","size":150,"style":"500","w":54.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.998,0],[0,-16.315],[-13.193,0],[0,18.027]],"o":[[-13.495,0],[0,15.408],[11.783,0],[0,-14.905]],"v":[[27.997,-49.85],[3.827,-23.969],[27.191,1.108],[51.462,-24.774]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-10.474,0],[0,-8.258],[8.459,0],[0,10.675]],"o":[[10.474,0],[0,10.977],[-8.661,0],[0,-9.265]],"v":[[27.795,-43.204],[42.398,-24.472],[27.594,-5.539],[12.79,-24.271]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"o","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"y","size":150,"style":"500","w":48.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-0.504],[0.403,-0.906],[2.417,-1.913],[2.216,-0.705],[0,0],[-4.33,3.827],[-6.345,16.718],[0,0],[0,0],[0,0],[0.906,-2.921],[0,0],[1.108,3.223],[0,0]],"o":[[0,0],[0.403,1.108],[0,0.504],[-2.014,4.532],[-2.618,2.216],[0,0],[2.216,-0.403],[6.042,-5.237],[0,0],[0,0],[0,0],[-1.208,3.525],[0,0],[-0.806,-2.921],[0,0],[0,0]],"v":[[0.906,-48.743],[18.933,-3.827],[19.537,-1.511],[18.832,0.604],[11.38,10.474],[3.625,14.804],[5.841,22.256],[16.718,16.516],[33.435,-13.998],[46.729,-48.743],[37.363,-48.743],[27.695,-20.142],[24.573,-9.97],[24.371,-9.97],[21.249,-19.94],[10.574,-48.743]],"c":true},"ix":2},"nm":"y","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"y","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":")","size":150,"style":"500","w":28.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,19.739],[6.445,8.258],[0,0],[0,-18.027],[7.15,-9.97]],"o":[[6.445,-8.56],[0,-19.839],[0,0],[7.251,9.97],[0,18.127],[0,0]],"v":[[8.862,12.186],[22.055,-28.903],[8.862,-69.891],[2.014,-69.891],[14.703,-29.004],[2.014,12.186]],"c":true},"ix":2},"nm":")","mn":"ADBE Vector Shape - Group","hd":false}],"nm":")","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"7","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[5.74,-65.46],[5.74,-58.109],[37.766,-58.109],[37.766,-57.907],[9.366,0],[18.53,0],[47.031,-59.619],[47.031,-65.46]],"c":true},"ix":2},"nm":"7","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"7","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"d","size":150,"style":"500","w":56.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[7.452,0],[-0.101,-16.214],[-11.783,0],[-2.719,5.438],[0,0],[0,0],[0,0],[0,4.33],[0,0]],"o":[[0,0],[0,0],[-2.216,-3.928],[-11.884,0],[0,14.804],[7.956,0],[0,0],[0,0],[0,0],[-0.302,-3.323],[0,0],[0,0]],"v":[[40.585,-71.503],[40.585,-42.398],[40.384,-42.398],[25.681,-49.85],[3.827,-23.666],[24.673,1.108],[41.29,-8.459],[41.492,-8.459],[41.895,0],[49.85,0],[49.448,-12.589],[49.448,-71.503]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-1.208],[5.942,0],[0,9.869],[-9.164,0],[-1.309,-5.64],[0,-1.108]],"o":[[0,1.41],[-1.611,6.647],[-9.567,0],[0,-10.776],[6.647,0],[0.302,1.108],[0,0]],"v":[[40.585,-20.444],[40.182,-16.617],[27.191,-6.042],[12.79,-24.069],[27.393,-42.902],[40.182,-32.629],[40.585,-28.903]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"d","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"v","size":150,"style":"500","w":49.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.108,-4.028],[0,0],[1.611,4.431],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[-1.611,4.431],[0,0],[-1.007,-4.028],[0,0],[0,0]],"v":[[1.309,-48.743],[19.839,0],[28.299,0],[47.433,-48.743],[38.168,-48.743],[28.702,-21.35],[24.573,-8.862],[24.271,-8.862],[20.343,-21.35],[10.776,-48.743]],"c":true},"ix":2},"nm":"v","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"v","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"6","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.618,-0.403],[5.438,-5.338],[0,-12.891],[-13.998,0],[0,11.984],[11.581,0],[3.122,-4.129],[0,0],[-13.898,2.316],[-1.813,-0.101]],"o":[[-1.611,0],[-8.258,1.007],[-6.445,6.445],[0,17.02],[13.596,0],[0,-12.79],[-7.251,0],[0,0],[1.511,-10.776],[2.518,-0.403],[0,0]],"v":[[41.895,-66.467],[35.449,-65.964],[14.502,-56.296],[3.424,-26.788],[26.587,1.108],[48.34,-21.954],[28.601,-43.103],[12.79,-35.55],[12.488,-35.55],[35.248,-58.813],[41.895,-59.216]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.654,0],[0.201,10.776],[-0.604,1.007],[-5.338,0],[0,-9.366]],"o":[[-9.265,0],[0,-1.611],[2.417,-4.733],[8.157,0],[0,9.366]],"v":[[26.587,-5.74],[12.186,-24.472],[13.193,-28.4],[25.882,-36.456],[39.377,-21.451]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"6","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"G","size":150,"style":"500","w":64.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[5.74,0],[0,17.221],[-16.516,0],[-3.625,-1.611],[0,0],[7.855,0],[0.101,-20.242],[-5.841,-5.64],[-10.272,0],[-3.928,1.41]],"o":[[0,0],[0,0],[0,0],[0,0],[-2.014,1.007],[-15.811,0],[0,-17.02],[6.848,0],[0,0],[-2.921,-1.41],[-22.76,0],[0,10.574],[6.647,6.345],[9.164,0],[0,0]],"v":[[59.317,-35.651],[36.96,-35.651],[36.96,-28.601],[50.757,-28.601],[50.757,-8.359],[39.075,-6.546],[12.891,-33.939],[40.182,-61.23],[55.188,-58.31],[57.303,-65.46],[40.384,-68.582],[3.625,-33.536],[13.092,-8.258],[38.47,0.705],[59.317,-3.021]],"c":true},"ix":2},"nm":"G","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"G","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"5","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-3.726,0],[-0.101,-8.459],[8.359,0],[2.719,1.611],[0,0],[-7.15,0],[0,12.79],[5.136,2.921],[5.035,0],[1.511,-0.201],[0,0],[0,0]],"o":[[0,0],[0,0],[2.417,-0.302],[13.092,0],[0,8.762],[-5.942,0],[0,0],[3.122,2.014],[14.2,0],[0,-8.258],[-4.028,-2.417],[-2.417,0],[0,0],[0,0],[0,0]],"v":[[43.607,-65.46],[12.286,-65.46],[8.057,-34.039],[17.12,-34.744],[35.953,-20.242],[20.444,-6.042],[6.445,-9.668],[4.23,-2.921],[20.544,1.108],[44.916,-21.249],[35.55,-38.068],[21.451,-41.592],[16.113,-41.19],[18.631,-58.008],[43.607,-58.008]],"c":true},"ix":2},"nm":"5","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"5","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"4","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[40.283,0],[40.283,-17.825],[49.448,-17.825],[49.448,-24.774],[40.283,-24.774],[40.283,-65.46],[30.716,-65.46],[1.511,-23.666],[1.511,-17.825],[31.924,-17.825],[31.924,0]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.014,3.827],[0,0],[0,-3.424],[0,0]],"o":[[0,0],[0,0],[1.813,-3.021],[0,0],[-0.201,3.424],[0,0],[0,0]],"v":[[10.474,-24.774],[10.474,-24.976],[26.486,-47.232],[31.924,-56.9],[32.227,-56.9],[31.924,-46.628],[31.924,-24.774]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"4","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"R","size":150,"style":"500","w":53.8,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-2.014,-9.366],[-1.108,-1.913],[0,0],[2.216,9.467],[5.237,1.813],[0,0],[0,8.963],[3.424,3.021],[9.366,0],[4.431,-0.906]],"o":[[0,0],[0,0],[0,0],[7.956,0.302],[1.913,8.459],[0,0],[-1.41,-2.618],[-1.611,-7.05],[0,0],[7.15,-2.417],[0,-5.237],[-4.23,-3.827],[-6.042,0],[0,0]],"v":[[7.654,0],[16.415,0],[16.415,-29.407],[24.673,-29.407],[38.269,-16.214],[42.801,0],[51.865,0],[46.628,-18.631],[36.658,-32.327],[36.658,-32.629],[49.448,-49.951],[44.11,-62.842],[24.472,-68.381],[7.654,-66.971]],"c":true},"ix":2},"nm":"R","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-4.23,0],[0,-8.762],[9.366,0],[0,0]],"o":[[1.41,-0.403],[9.265,0.101],[0,7.755],[0,0],[0,0]],"v":[[16.415,-60.828],[25.076,-61.633],[40.686,-48.944],[25.378,-36.053],[16.415,-36.053]],"c":true},"ix":2},"nm":"R","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"R","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"c","size":150,"style":"500","w":44.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.035,0],[0,11.279],[-11.179,0],[-2.115,-1.208],[0,0],[5.237,0],[0,-15.005],[-14.703,0],[-2.316,1.208]],"o":[[-2.518,1.108],[-9.668,0],[0,-10.172],[4.834,0],[0,0],[-2.417,-1.208],[-15.912,0],[0,14.905],[6.546,0],[0,0]],"v":[[40.585,-8.459],[29.709,-6.042],[12.79,-24.271],[30.011,-42.7],[40.283,-40.384],[42.297,-47.232],[30.011,-49.75],[3.827,-23.868],[28.098,1.007],[42.096,-1.813]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"c","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"g","size":150,"style":"500","w":55.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[8.459,0],[0,-16.516],[-12.085,0],[-2.719,4.532],[0,0],[0,0],[9.064,0],[3.223,2.014],[0,0],[-5.841,0],[-4.733,4.431],[0,11.179],[0,0],[-0.201,3.525]],"o":[[0,0],[0,0],[-2.115,-4.028],[-11.179,0],[0,13.495],[7.553,0],[0,0],[0,0],[0,12.286],[-6.042,0],[0,0],[3.928,2.618],[6.143,0],[4.733,-4.23],[0,0],[0,-5.942],[0,0]],"v":[[41.592,-48.743],[41.19,-41.391],[40.988,-41.391],[25.781,-49.85],[3.827,-23.969],[24.573,-0.201],[40.082,-8.359],[40.283,-8.359],[40.283,-2.921],[24.573,14.099],[10.272,10.272],[8.057,17.02],[24.271,21.048],[41.995,15.207],[48.944,-7.05],[48.944,-35.349],[49.347,-48.743]],"c":true},"ix":2},"nm":"g","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.504,-1.511],[5.438,0],[0,9.567],[-8.459,0],[-1.611,-5.136],[0,-1.511]],"o":[[0,1.511],[-1.913,5.64],[-9.567,0],[0,-11.279],[6.445,0],[0.403,1.208],[0,0]],"v":[[40.182,-20.746],[39.478,-16.013],[27.191,-6.949],[12.79,-24.472],[27.292,-42.902],[39.679,-33.536],[40.182,-29.507]],"c":true},"ix":2},"nm":"g","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"g","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"3","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-7.352,0],[0,10.474],[8.057,1.611],[0,0],[0,6.747],[12.891,0],[3.424,-2.518],[0,0],[-5.237,0],[0,-5.237],[6.445,0],[0,0],[0,0],[0,0],[-0.101,-9.164],[11.38,0],[2.518,1.611]],"o":[[3.223,2.115],[15.71,0],[0,-9.164],[0,0],[8.057,-2.921],[0,-7.956],[-7.05,0],[0,0],[2.82,-2.014],[8.157,0],[0,7.755],[0,0],[0,0],[0,0],[8.56,0],[0.101,5.438],[-6.143,0],[0,0]],"v":[[4.23,-3.323],[21.249,1.108],[45.117,-18.53],[30.515,-35.349],[30.515,-35.55],[42.599,-50.958],[23.868,-66.568],[6.747,-61.533],[9.064,-55.087],[22.156,-59.418],[33.636,-49.548],[19.034,-38.47],[14.099,-38.47],[14.099,-31.824],[19.034,-31.824],[35.953,-18.732],[21.149,-6.042],[6.647,-10.172]],"c":true},"ix":2},"nm":"3","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"3","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"2","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,12.085],[14.099,0],[4.532,-3.827],[0,0],[-5.942,0],[0,-6.647],[16.718,-15.912],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[13.797,-13.293],[0,-9.366],[-7.553,0],[0,0],[3.021,-2.518],[9.769,0],[-0.101,9.869],[0,0],[0,0],[0,0]],"v":[[46.326,0],[46.326,-7.352],[16.919,-7.352],[16.919,-7.553],[22.156,-12.387],[44.714,-47.534],[24.673,-66.568],[6.143,-59.921],[8.963,-53.677],[22.861,-59.216],[35.852,-46.426],[11.481,-12.186],[4.532,-5.438],[4.532,0]],"c":true},"ix":2},"nm":"2","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"E","size":150,"style":"500","w":49.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[42.801,-39.075],[16.415,-39.075],[16.415,-60.526],[44.312,-60.526],[44.312,-67.877],[7.654,-67.877],[7.654,0],[45.822,0],[45.822,-7.352],[16.415,-7.352],[16.415,-31.824],[42.801,-31.824]],"c":true},"ix":2},"nm":"E","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"E","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"1","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[23.767,0],[32.327,0],[32.327,-65.46],[24.774,-65.46],[10.474,-57.806],[12.186,-51.059],[23.566,-57.202],[23.767,-57.202]],"c":true},"ix":2},"nm":"1","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/UXSample_1920x1080/B Fills_All_01_1920x1080.json b/external/rlottie/example/resource/UXSample_1920x1080/B Fills_All_01_1920x1080.json new file mode 100644 index 000000000..1e6d4b1b8 --- /dev/null +++ b/external/rlottie/example/resource/UXSample_1920x1080/B Fills_All_01_1920x1080.json @@ -0,0 +1 @@ +{"v":"5.1.18","fr":30,"ip":0,"op":114,"w":1920,"h":1080,"nm":"B Fills_All_01","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1924.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[643.833,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1284.167,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[3.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.901960790157,0.712618291378,0.054901961237,1],"e":[0.054901961237,0.631372570992,0.901960790157,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[0.054901961237,0.631372570992,0.901960790157,1],"e":[0.901960790157,0.713725507259,0.054901961237,1]},{"t":30}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[0],"e":[100]},{"t":30}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Fill rlue Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[391.686,274.164,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[11.387,51.452],[-75.913,0],[20.243,-42.174],[-1.265,20.244],[-66.213,-5.061],[-0.421,-16.448],[57.356,-14.761],[-5.905,26.992],[-28.256,-32.474],[27.835,-38.378],[38.378,33.317],[-33.739,0],[49.344,-58.201],[0.844,65.37],[-10.122,3.374],[-3.795,-24.461],[29.522,0.843],[5.483,60.309],[-19.821,0],[-25.726,-13.496],[7.169,-10.965]],"o":[[0,0],[-11.387,-51.452],[75.913,0],[-20.244,42.174],[1.265,-20.243],[66.213,5.061],[0.422,16.448],[-57.357,14.761],[5.904,-26.991],[28.257,32.474],[-27.835,38.379],[-38.379,-33.318],[33.739,0],[-49.343,58.2],[-0.843,-65.369],[10.122,-3.374],[3.796,24.461],[-29.522,-0.843],[-5.483,-60.309],[19.822,0],[25.726,13.495],[-7.17,10.965]],"v":[[-27.834,-41.963],[-73.383,-69.798],[5.904,-198.429],[77.601,-61.363],[21.088,-63.472],[115.979,-114.502],[190.204,-37.324],[121.883,44.915],[50.188,17.502],[117.244,19.189],[135.8,135.589],[10.123,139.807],[0.844,48.289],[-0.422,140.229],[-140.018,98.476],[-80.13,-6.537],[-46.391,13.285],[-83.083,50.398],[-185.143,-36.902],[-121.039,-115.768],[-40.909,-101.428],[-16.026,-54.615]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":2,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[924.302,493.932],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,313.5,0],"ix":2},"a":{"a":0,"k":[962,643,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":88,"s":[100],"e":[0]},{"t":108}],"ix":10},"r":1,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[0,0.055,0.631,0.902,0.592,0.478,0.673,0.478,1,0.902,0.714,0.055],"e":[0,0.902,0.055,0.173,0.592,0.902,0.384,0.114,1,0.902,0.714,0.055]},{"t":67}],"ix":9}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[0,0],"e":[0,426],"to":[0,71],"ti":[0,-71]},{"t":20}],"ix":5},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[1,0],"e":[2,-140],"to":[0.16666667163372,-23.3333339691162],"ti":[-0.16666667163372,23.3333339691162]},{"t":40}],"ix":6},"t":2,"h":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":68,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":78,"s":[0],"e":[100]},{"t":88}],"ix":7},"a":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[0],"e":[360]},{"t":67}],"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[100],"e":[0]},{"t":60}],"ix":10},"r":1,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[0,0.055,0.631,0.902,0.592,0.478,0.673,0.478,1,0.902,0.714,0.055,0,0.6,0.5,0.8,1,1],"e":[0,0.902,0.055,0.173,0.592,0.902,0.384,0.114,1,0.902,0.714,0.055,0,0.6,0.5,0.8,1,1]},{"t":40}],"ix":9}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[-235,0],"e":[0,0],"to":[39.1666679382324,0],"ti":[-39.1666679382324,0]},{"t":20}],"ix":5},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[0,140],"e":[0,13],"to":[0,-21.1666660308838],"ti":[0,21.1666660308838]},{"t":40}],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]}],"fonts":{"list":[{"fName":"SamsungOne-500","fFamily":"SamsungOne","fStyle":"500","ascent":70.9991455078125}]},"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"div","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":5,"nm":"B Fills_01 Color","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"B Fills_01 Color","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":115,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"B Fills_02 Opacity","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[679.25,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"B Fills_02 Opacity","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":115,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":5,"nm":"B Fills_03 Fill Rule","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1320,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"B Fills_03 Fill Rule","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":115,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"B Fills_04 Radial Gradient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"B Fills_04 Radial Gradient","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":115,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":5,"nm":"B Fills_05 Linear Gradient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[679.25,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"B Fills_05 Linear Gradient","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":115,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"B Fills_01 Color","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[328,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"B Fills_02 Opacity","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965.75,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"B Fills_03 Fill Rule","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1597.5,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"B Fills_04 Radial Gradient","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[328,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"B Fills_05 Linear Gradient","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965.75,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0}],"markers":[],"chars":[{"ch":"B","size":150,"style":"500","w":54.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.042,0],[-4.733,4.33],[0,5.841],[6.445,1.611],[0,0],[0,6.546],[3.525,2.618],[8.762,0],[3.827,-0.806]],"o":[[2.921,0.403],[11.078,0],[3.424,-3.323],[0,-10.071],[0,0],[7.15,-2.618],[0,-5.338],[-4.23,-3.424],[-6.143,0],[0,0]],"v":[[7.654,-0.201],[21.249,0.604],[44.714,-5.74],[50.455,-19.336],[36.456,-36.356],[36.456,-36.557],[47.937,-51.462],[42.297,-63.446],[23.666,-68.381],[7.654,-66.971]],"c":true},"ix":2},"nm":"B","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-4.028,0],[0,-7.956],[9.265,0],[0,0]],"o":[[1.41,-0.302],[8.862,0],[0,6.546],[0,0],[0,0]],"v":[[16.415,-61.029],[24.17,-61.633],[39.075,-50.555],[24.371,-39.175],[16.415,-39.175]],"c":true},"ix":2},"nm":"B","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-9.265],[9.064,0],[1.712,0.302]],"o":[[0,0],[9.567,0],[0,9.869],[-3.122,0],[0,0]],"v":[[16.415,-32.529],[23.666,-32.529],[41.19,-19.437],[23.767,-6.244],[16.415,-6.647]],"c":true},"ix":2},"nm":"B","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"B","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":" ","size":150,"style":"500","w":21.2,"data":{},"fFamily":"SamsungOne"},{"ch":"F","size":150,"style":"500","w":48.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.654,0],[16.415,0],[16.415,-30.716],[42.096,-30.716],[42.096,-37.967],[16.415,-37.967],[16.415,-60.526],[44.211,-60.526],[44.211,-67.877],[7.654,-67.877]],"c":true},"ix":2},"nm":"F","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"F","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"i","size":150,"style":"500","w":23.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16.214,0],[16.214,-48.743],[7.352,-48.743],[7.352,0]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[3.323,0],[0,-3.122],[-3.122,0],[0.101,3.021]],"o":[[-3.223,0],[0,3.021],[3.525,0],[0,-3.122]],"v":[[11.783,-67.978],[6.244,-62.439],[11.581,-57.001],[17.221,-62.439]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"i","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"l","size":150,"style":"500","w":23.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-71.503],[7.352,-71.503]],"c":true},"ix":2},"nm":"l","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"l","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"s","size":150,"style":"500","w":39.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-5.338,0],[0,8.56],[8.459,3.223],[0,4.028],[-5.237,0],[-1.913,-1.208],[0,0],[4.935,0],[0,-7.855],[-8.762,-3.122],[0,-4.23],[6.445,0],[2.618,1.712]],"o":[[3.424,2.014],[11.581,0],[0,-7.251],[-6.345,-2.417],[0,-3.625],[4.532,0],[0,0],[-2.719,-1.611],[-10.474,0],[0,5.841],[6.546,2.417],[0,4.028],[-4.431,0],[0,0]],"v":[[3.928,-2.316],[17.624,1.007],[35.852,-13.596],[23.062,-28.299],[13.797,-36.557],[21.954,-43.204],[31.924,-40.384],[34.14,-46.829],[22.156,-49.85],[5.338,-35.55],[18.228,-21.753],[27.292,-12.79],[17.825,-5.539],[6.143,-9.064]],"c":true},"ix":2},"nm":"s","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"s","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"_","size":150,"style":"500","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,7.553],[0,12.589],[50.354,12.589],[50.354,7.553]],"c":true},"ix":2},"nm":"_","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"_","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"0","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.797,0],[0,-21.954],[-12.79,0],[0,22.256]],"o":[[-13.293,0],[0.201,21.652],[14.502,0],[0,-20.847]],"v":[[26.385,-66.568],[3.625,-32.529],[25.278,1.108],[48.038,-33.435]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-7.755,0],[0,-16.113],[9.064,0],[0,17.02]],"o":[[9.164,0],[0,16.718],[-8.057,0],[0,-17.825]],"v":[[25.882,-59.72],[39.175,-33.032],[25.781,-5.74],[12.488,-32.428]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"0","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"5","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-3.726,0],[-0.101,-8.459],[8.359,0],[2.719,1.611],[0,0],[-7.15,0],[0,12.79],[5.136,2.921],[5.035,0],[1.511,-0.201],[0,0],[0,0]],"o":[[0,0],[0,0],[2.417,-0.302],[13.092,0],[0,8.762],[-5.942,0],[0,0],[3.122,2.014],[14.2,0],[0,-8.258],[-4.028,-2.417],[-2.417,0],[0,0],[0,0],[0,0]],"v":[[43.607,-65.46],[12.286,-65.46],[8.057,-34.039],[17.12,-34.744],[35.953,-20.242],[20.444,-6.042],[6.445,-9.668],[4.23,-2.921],[20.544,1.108],[44.916,-21.249],[35.55,-38.068],[21.451,-41.592],[16.113,-41.19],[18.631,-58.008],[43.607,-58.008]],"c":true},"ix":2},"nm":"5","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"5","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"L","size":150,"style":"500","w":47.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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.654,0],[45.419,0],[45.419,-7.352],[16.415,-7.352],[16.415,-67.877],[7.654,-67.877]],"c":true},"ix":2},"nm":"L","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"L","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"n","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.403,1.108],[-5.841,0],[0,-7.855],[0,0],[0,0],[0,0],[6.747,0],[2.417,-4.633],[0,0],[0,0],[0,0],[0,-5.035]],"o":[[0,0],[0,0],[0,-1.511],[1.511,-4.935],[8.359,0],[0,0],[0,0],[0,0],[0,-16.718],[-8.057,0],[0,0],[0,0],[0,0],[0.302,4.028],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.306],[16.818,-33.435],[28.702,-42.499],[39.981,-28.098],[39.981,0],[48.843,0],[48.843,-29.105],[31.622,-49.85],[15.509,-40.686],[15.308,-40.686],[14.804,-48.743],[6.949,-48.743],[7.352,-35.55]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"n","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"e","size":150,"style":"500","w":50.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,1.813],[15.912,0],[0,-14.703],[-15.005,0],[-3.122,1.41],[0,0],[6.345,0],[0.201,11.984]],"o":[[0.101,-0.906],[0,-8.963],[-14.2,0],[0,14.703],[7.755,0],[0,0],[-3.323,1.41],[-8.862,0],[0,0]],"v":[[46.527,-22.76],[46.829,-26.889],[26.688,-49.85],[3.827,-23.566],[27.795,1.007],[44.009,-2.014],[42.499,-8.359],[29.004,-5.841],[12.286,-22.76]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-8.963,0],[0.101,-5.64]],"o":[[0.705,-6.143],[9.97,0],[0,0]],"v":[[12.387,-29.105],[25.983,-43.506],[38.269,-29.105]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"e","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"a","size":150,"style":"500","w":48.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.23],[0,0],[14.905,0],[4.028,-2.618],[0,0],[-4.532,0],[0,-4.028],[0,0],[0,-11.783],[-9.869,0],[-2.719,3.827],[0,0],[0,0]],"o":[[-0.604,-3.323],[0,0],[0,-9.769],[-6.143,0],[0,0],[3.424,-2.216],[9.97,0],[0,0],[-18.832,-0.101],[0,7.05],[6.949,0],[0,0],[0,0],[0,0]],"v":[[42.398,0],[41.592,-11.682],[41.592,-29.91],[23.062,-49.85],[7.05,-45.52],[9.064,-39.679],[21.753,-43.304],[32.831,-32.025],[32.831,-31.018],[3.525,-12.891],[18.43,1.108],[33.334,-6.143],[33.636,-6.143],[34.341,0]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-0.906],[6.345,0],[0,5.74],[-9.668,-0.201]],"o":[[0,0.906],[-1.41,4.129],[-4.532,0],[0,-9.467],[0,0]],"v":[[33.032,-16.415],[32.529,-13.596],[20.746,-5.438],[12.387,-13.898],[33.032,-24.875]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"a","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"r","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.201,1.208],[-6.244,0],[-0.906,-0.201],[0,0],[1.007,0],[2.216,-6.546],[0,0],[0,0],[0,0],[0,-5.74]],"o":[[0,0],[0,0],[0,-1.511],[1.208,-6.647],[1.208,0],[0,0],[-0.806,-0.201],[-5.942,0],[0,0],[0,0],[0,0],[0.302,4.532],[0,0]],"v":[[7.352,0],[16.113,0],[16.113,-25.983],[16.516,-30.112],[28.4,-41.492],[31.421,-41.19],[31.421,-49.548],[28.903,-49.85],[15.408,-39.175],[15.005,-39.175],[14.703,-48.743],[6.949,-48.743],[7.352,-33.536]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"r","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"G","size":150,"style":"500","w":64.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[5.74,0],[0,17.221],[-16.516,0],[-3.625,-1.611],[0,0],[7.855,0],[0.101,-20.242],[-5.841,-5.64],[-10.272,0],[-3.928,1.41]],"o":[[0,0],[0,0],[0,0],[0,0],[-2.014,1.007],[-15.811,0],[0,-17.02],[6.848,0],[0,0],[-2.921,-1.41],[-22.76,0],[0,10.574],[6.647,6.345],[9.164,0],[0,0]],"v":[[59.317,-35.651],[36.96,-35.651],[36.96,-28.601],[50.757,-28.601],[50.757,-8.359],[39.075,-6.546],[12.891,-33.939],[40.182,-61.23],[55.188,-58.31],[57.303,-65.46],[40.384,-68.582],[3.625,-33.536],[13.092,-8.258],[38.47,0.705],[59.317,-3.021]],"c":true},"ix":2},"nm":"G","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"G","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"d","size":150,"style":"500","w":56.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[7.452,0],[-0.101,-16.214],[-11.783,0],[-2.719,5.438],[0,0],[0,0],[0,0],[0,4.33],[0,0]],"o":[[0,0],[0,0],[-2.216,-3.928],[-11.884,0],[0,14.804],[7.956,0],[0,0],[0,0],[0,0],[-0.302,-3.323],[0,0],[0,0]],"v":[[40.585,-71.503],[40.585,-42.398],[40.384,-42.398],[25.681,-49.85],[3.827,-23.666],[24.673,1.108],[41.29,-8.459],[41.492,-8.459],[41.895,0],[49.85,0],[49.448,-12.589],[49.448,-71.503]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-1.208],[5.942,0],[0,9.869],[-9.164,0],[-1.309,-5.64],[0,-1.108]],"o":[[0,1.41],[-1.611,6.647],[-9.567,0],[0,-10.776],[6.647,0],[0.302,1.108],[0,0]],"v":[[40.585,-20.444],[40.182,-16.617],[27.191,-6.042],[12.79,-24.069],[27.393,-42.902],[40.182,-32.629],[40.585,-28.903]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"d","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"t","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.518,-2.618],[-4.129,0],[-1.712,0.705],[0,0],[2.316,0],[0,6.042],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,5.74],[2.115,2.417],[3.424,0],[0,0],[-1.108,0.302],[-4.935,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[9.366,-60.425],[9.366,-48.743],[1.813,-48.743],[1.813,-41.995],[9.366,-41.995],[9.366,-15.408],[12.79,-2.719],[22.357,1.007],[30.212,-0.201],[29.81,-6.848],[24.673,-6.244],[18.027,-15.71],[18.027,-41.995],[30.716,-41.995],[30.716,-48.743],[18.027,-48.743],[18.027,-62.741]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"t","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"4","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[40.283,0],[40.283,-17.825],[49.448,-17.825],[49.448,-24.774],[40.283,-24.774],[40.283,-65.46],[30.716,-65.46],[1.511,-23.666],[1.511,-17.825],[31.924,-17.825],[31.924,0]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.014,3.827],[0,0],[0,-3.424],[0,0]],"o":[[0,0],[0,0],[1.813,-3.021],[0,0],[-0.201,3.424],[0,0],[0,0]],"v":[[10.474,-24.774],[10.474,-24.976],[26.486,-47.232],[31.924,-56.9],[32.227,-56.9],[31.924,-46.628],[31.924,-24.774]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"4","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"R","size":150,"style":"500","w":53.8,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-2.014,-9.366],[-1.108,-1.913],[0,0],[2.216,9.467],[5.237,1.813],[0,0],[0,8.963],[3.424,3.021],[9.366,0],[4.431,-0.906]],"o":[[0,0],[0,0],[0,0],[7.956,0.302],[1.913,8.459],[0,0],[-1.41,-2.618],[-1.611,-7.05],[0,0],[7.15,-2.417],[0,-5.237],[-4.23,-3.827],[-6.042,0],[0,0]],"v":[[7.654,0],[16.415,0],[16.415,-29.407],[24.673,-29.407],[38.269,-16.214],[42.801,0],[51.865,0],[46.628,-18.631],[36.658,-32.327],[36.658,-32.629],[49.448,-49.951],[44.11,-62.842],[24.472,-68.381],[7.654,-66.971]],"c":true},"ix":2},"nm":"R","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-4.23,0],[0,-8.762],[9.366,0],[0,0]],"o":[[1.41,-0.403],[9.265,0.101],[0,7.755],[0,0],[0,0]],"v":[[16.415,-60.828],[25.076,-61.633],[40.686,-48.944],[25.378,-36.053],[16.415,-36.053]],"c":true},"ix":2},"nm":"R","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"R","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"3","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-7.352,0],[0,10.474],[8.057,1.611],[0,0],[0,6.747],[12.891,0],[3.424,-2.518],[0,0],[-5.237,0],[0,-5.237],[6.445,0],[0,0],[0,0],[0,0],[-0.101,-9.164],[11.38,0],[2.518,1.611]],"o":[[3.223,2.115],[15.71,0],[0,-9.164],[0,0],[8.057,-2.921],[0,-7.956],[-7.05,0],[0,0],[2.82,-2.014],[8.157,0],[0,7.755],[0,0],[0,0],[0,0],[8.56,0],[0.101,5.438],[-6.143,0],[0,0]],"v":[[4.23,-3.323],[21.249,1.108],[45.117,-18.53],[30.515,-35.349],[30.515,-35.55],[42.599,-50.958],[23.868,-66.568],[6.747,-61.533],[9.064,-55.087],[22.156,-59.418],[33.636,-49.548],[19.034,-38.47],[14.099,-38.47],[14.099,-31.824],[19.034,-31.824],[35.953,-18.732],[21.149,-6.042],[6.647,-10.172]],"c":true},"ix":2},"nm":"3","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"3","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"u","size":150,"style":"500","w":55.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0.504,-1.309],[5.942,0],[0,9.265],[0,0],[0,0],[0,0],[-7.654,0],[-2.316,3.928],[0,0],[0,0],[0,0],[0,5.035]],"o":[[0,0],[0,0],[0,1.611],[-1.611,3.928],[-8.057,0],[0,0],[0,0],[0,0],[0,17.12],[8.661,0],[0,0],[0,0],[0,0],[-0.302,-3.827],[0,0]],"v":[[48.138,-48.743],[39.276,-48.743],[39.276,-18.832],[38.47,-14.301],[26.788,-6.244],[15.912,-21.753],[15.912,-48.743],[7.05,-48.743],[7.05,-20.242],[23.868,1.108],[39.981,-7.956],[40.182,-7.956],[40.686,0],[48.541,0],[48.138,-13.293]],"c":true},"ix":2},"nm":"u","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"u","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"2","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,12.085],[14.099,0],[4.532,-3.827],[0,0],[-5.942,0],[0,-6.647],[16.718,-15.912],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[13.797,-13.293],[0,-9.366],[-7.553,0],[0,0],[3.021,-2.518],[9.769,0],[-0.101,9.869],[0,0],[0,0],[0,0]],"v":[[46.326,0],[46.326,-7.352],[16.919,-7.352],[16.919,-7.553],[22.156,-12.387],[44.714,-47.534],[24.673,-66.568],[6.143,-59.921],[8.963,-53.677],[22.861,-59.216],[35.852,-46.426],[11.481,-12.186],[4.532,-5.438],[4.532,0]],"c":true},"ix":2},"nm":"2","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"O","size":150,"style":"500","w":68.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[18.53,0],[0,-21.552],[-17.926,0],[0,23.364]],"o":[[-18.127,0],[0,20.544],[17.322,0],[0,-20.142]],"v":[[35.147,-68.985],[3.625,-33.334],[34.14,1.108],[65.662,-34.644]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-14.502,0],[0,-13.495],[13.898,0],[0,14.502]],"o":[[14.603,0],[0,15.408],[-13.797,0],[0,-14.905]],"v":[[34.744,-61.835],[56.396,-34.241],[34.644,-6.042],[12.991,-33.536]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"O","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"p","size":150,"style":"500","w":56.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-6.445,0],[0,17.523],[11.783,0],[3.625,-5.942],[0,0],[0,0],[0,0],[0,-6.244]],"o":[[0,0],[0,0],[0,0],[2.921,4.834],[11.481,0],[0,-14.804],[-7.956,0],[0,0],[0,0],[0,0],[0.201,4.633],[0,0]],"v":[[7.352,19.94],[16.113,19.94],[16.113,-6.546],[16.315,-6.546],[31.32,1.108],[53.476,-25.076],[32.831,-49.85],[15.509,-40.384],[15.308,-40.384],[14.905,-48.743],[6.949,-48.743],[7.352,-32.831]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.302,1.108],[-6.042,0],[0,-9.769],[9.366,0],[1.611,6.143],[0,1.309]],"o":[[0,-1.208],[1.712,-6.647],[9.366,0],[0,11.179],[-6.345,0],[-0.201,-1.108],[0,0]],"v":[[16.113,-28.198],[16.718,-31.824],[30.112,-42.801],[44.614,-24.673],[29.81,-5.841],[16.516,-16.214],[16.113,-19.839]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"p","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"c","size":150,"style":"500","w":44.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.035,0],[0,11.279],[-11.179,0],[-2.115,-1.208],[0,0],[5.237,0],[0,-15.005],[-14.703,0],[-2.316,1.208]],"o":[[-2.518,1.108],[-9.668,0],[0,-10.172],[4.834,0],[0,0],[-2.417,-1.208],[-15.912,0],[0,14.905],[6.546,0],[0,0]],"v":[[40.585,-8.459],[29.709,-6.042],[12.79,-24.271],[30.011,-42.7],[40.283,-40.384],[42.297,-47.232],[30.011,-49.75],[3.827,-23.868],[28.098,1.007],[42.096,-1.813]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"c","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"y","size":150,"style":"500","w":48.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-0.504],[0.403,-0.906],[2.417,-1.913],[2.216,-0.705],[0,0],[-4.33,3.827],[-6.345,16.718],[0,0],[0,0],[0,0],[0.906,-2.921],[0,0],[1.108,3.223],[0,0]],"o":[[0,0],[0.403,1.108],[0,0.504],[-2.014,4.532],[-2.618,2.216],[0,0],[2.216,-0.403],[6.042,-5.237],[0,0],[0,0],[0,0],[-1.208,3.525],[0,0],[-0.806,-2.921],[0,0],[0,0]],"v":[[0.906,-48.743],[18.933,-3.827],[19.537,-1.511],[18.832,0.604],[11.38,10.474],[3.625,14.804],[5.841,22.256],[16.718,16.516],[33.435,-13.998],[46.729,-48.743],[37.363,-48.743],[27.695,-20.142],[24.573,-9.97],[24.371,-9.97],[21.249,-19.94],[10.574,-48.743]],"c":true},"ix":2},"nm":"y","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"y","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"1","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[23.767,0],[32.327,0],[32.327,-65.46],[24.774,-65.46],[10.474,-57.806],[12.186,-51.059],[23.566,-57.202],[23.767,-57.202]],"c":true},"ix":2},"nm":"1","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"C","size":150,"style":"500","w":55.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.338,0],[0,16.617],[-15.912,0],[-3.323,-1.611],[0,0],[8.459,0],[0,-21.249],[-19.135,0],[-3.223,1.611]],"o":[[-3.525,1.712],[-16.516,0],[0,-17.825],[5.64,0],[0,0],[-2.316,-1.208],[-21.048,0],[0,22.256],[8.258,0],[0,0]],"v":[[53.275,-9.164],[38.974,-6.345],[12.891,-33.636],[39.377,-61.633],[53.073,-58.813],[55.188,-65.964],[39.075,-68.985],[3.625,-33.334],[37.161,1.007],[55.087,-2.216]],"c":true},"ix":2},"nm":"C","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"C","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"o","size":150,"style":"500","w":54.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.998,0],[0,-16.315],[-13.193,0],[0,18.027]],"o":[[-13.495,0],[0,15.408],[11.783,0],[0,-14.905]],"v":[[27.997,-49.85],[3.827,-23.969],[27.191,1.108],[51.462,-24.774]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-10.474,0],[0,-8.258],[8.459,0],[0,10.675]],"o":[[10.474,0],[0,10.977],[-8.661,0],[0,-9.265]],"v":[[27.795,-43.204],[42.398,-24.472],[27.594,-5.539],[12.79,-24.271]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"o","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/UXSample_1920x1080/C Strokes_All_01_1920x1080.json b/external/rlottie/example/resource/UXSample_1920x1080/C Strokes_All_01_1920x1080.json new file mode 100644 index 000000000..a8984437b --- /dev/null +++ b/external/rlottie/example/resource/UXSample_1920x1080/C Strokes_All_01_1920x1080.json @@ -0,0 +1 @@ +{"v":"5.1.18","fr":30,"ip":0,"op":36,"w":1920,"h":1080,"nm":"C Strokes_All_01","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1924.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[483.75,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[964,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1444.25,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[3.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.901960790157,0.713725507259,0.054901961237,1],"e":[0.054901961237,0.631372570992,0.901960790157,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[0.054901961237,0.631372570992,0.901960790157,1],"e":[0.901960790157,0.713725507259,0.054901961237,1]},{"t":30}],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.054901961237,0.631372570992,0.901960790157,1],"ix":3},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[0],"e":[100]},{"t":30}],"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[15],"e":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[40],"e":[15]},{"t":30}],"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"line Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375.125,243.75,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-194.25,95.5],[-194.25,-96],[19.75,-96],[19.75,96],[194.25,96]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[959.75,540.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":1,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":1,"lj":1,"ml":1,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":1,"lj":1,"ml":4,"d":[{"n":"d","nm":"dash","v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[10],"e":[73]},{"t":30}],"ix":1}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_8","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":15,"ix":10},"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":40,"s":[0,0.055,0.631,0.902,0.5,0.478,0.673,0.478,1,0.902,0.714,0.055],"e":[0,0.902,0.055,0.174,0.5,0.902,0.384,0.115,1,0.902,0.714,0.055]},{"t":50}],"ix":8}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[0,143],"e":[130,601],"to":[21.6666660308838,76.3333358764648],"ti":[-21.6666660308838,-76.3333358764648]},{"t":40}],"ix":4},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[-76,0],"e":[184,0],"to":[43.3333320617676,0],"ti":[-43.3333320617676,0]},{"t":20}],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]}],"fonts":{"list":[{"fName":"SamsungOne-500","fFamily":"SamsungOne","fStyle":"500","ascent":70.9991455078125}]},"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"div","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":5,"nm":"C Strokes_01 Color","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"C Strokes_01 Color","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"C Strokes_02 Opacity","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519.5,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"C Strokes_02 Opacity","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":5,"nm":"C Strokes_03 Width","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000.375,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"C Strokes_03 Width","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"C Strokes_04 Line Cap","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1480.5,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"C Strokes_04 Line Cap","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":5,"nm":"C Strokes_05 Line Join","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"C Strokes_05 Line Join","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":5,"nm":"C Strokes_06 Miter Limit","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519.5,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"C Strokes_06 Miter Limit","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":5,"nm":"C Strokes_07 Dashes","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000.375,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"C Strokes_07 Dashes","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":5,"nm":"C Strokes_08 Gradient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1480.5,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"C Strokes_08 Gradient","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"C Strokes_01 Color","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[248,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"C Strokes_02 Opacity","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[726,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"C Strokes_03 Width","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1204,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"C Strokes_04 Line Cap","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1678,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"C Strokes_05 Line Join","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[248,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"C Strokes_06 Miter Limit","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[732,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"C Strokes_07 Dashes","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1198,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":0,"nm":"C Strokes_08 Gradient","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1678,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0}],"markers":[],"chars":[{"ch":"C","size":150,"style":"500","w":55.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.338,0],[0,16.617],[-15.912,0],[-3.323,-1.611],[0,0],[8.459,0],[0,-21.249],[-19.135,0],[-3.223,1.611]],"o":[[-3.525,1.712],[-16.516,0],[0,-17.825],[5.64,0],[0,0],[-2.316,-1.208],[-21.048,0],[0,22.256],[8.258,0],[0,0]],"v":[[53.275,-9.164],[38.974,-6.345],[12.891,-33.636],[39.377,-61.633],[53.073,-58.813],[55.188,-65.964],[39.075,-68.985],[3.625,-33.334],[37.161,1.007],[55.087,-2.216]],"c":true},"ix":2},"nm":"C","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"C","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":" ","size":150,"style":"500","w":21.2,"data":{},"fFamily":"SamsungOne"},{"ch":"S","size":150,"style":"500","w":49.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.546,0],[0,10.474],[11.481,4.431],[0,6.345],[-9.265,0],[-2.216,-1.208],[0,0],[6.949,0],[0,-10.574],[-11.078,-3.928],[0,-6.345],[8.963,0],[3.928,2.417]],"o":[[3.625,2.417],[16.013,0],[0,-9.97],[-9.366,-3.625],[0,-4.633],[6.143,0],[0,0],[-3.021,-1.712],[-13.193,0],[0,9.567],[9.164,3.525],[0,6.848],[-6.042,0],[0,0]],"v":[[4.23,-3.323],[21.552,1.007],[45.319,-18.53],[27.997,-38.47],[14.502,-51.562],[27.292,-61.734],[40.182,-58.511],[42.599,-65.662],[27.594,-68.985],[5.64,-50.555],[23.566,-31.32],[36.356,-17.825],[22.156,-6.244],[6.445,-10.675]],"c":true},"ix":2},"nm":"S","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"S","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"t","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.518,-2.618],[-4.129,0],[-1.712,0.705],[0,0],[2.316,0],[0,6.042],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,5.74],[2.115,2.417],[3.424,0],[0,0],[-1.108,0.302],[-4.935,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[9.366,-60.425],[9.366,-48.743],[1.813,-48.743],[1.813,-41.995],[9.366,-41.995],[9.366,-15.408],[12.79,-2.719],[22.357,1.007],[30.212,-0.201],[29.81,-6.848],[24.673,-6.244],[18.027,-15.71],[18.027,-41.995],[30.716,-41.995],[30.716,-48.743],[18.027,-48.743],[18.027,-62.741]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"t","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"r","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.201,1.208],[-6.244,0],[-0.906,-0.201],[0,0],[1.007,0],[2.216,-6.546],[0,0],[0,0],[0,0],[0,-5.74]],"o":[[0,0],[0,0],[0,-1.511],[1.208,-6.647],[1.208,0],[0,0],[-0.806,-0.201],[-5.942,0],[0,0],[0,0],[0,0],[0.302,4.532],[0,0]],"v":[[7.352,0],[16.113,0],[16.113,-25.983],[16.516,-30.112],[28.4,-41.492],[31.421,-41.19],[31.421,-49.548],[28.903,-49.85],[15.408,-39.175],[15.005,-39.175],[14.703,-48.743],[6.949,-48.743],[7.352,-33.536]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"r","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"o","size":150,"style":"500","w":54.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.998,0],[0,-16.315],[-13.193,0],[0,18.027]],"o":[[-13.495,0],[0,15.408],[11.783,0],[0,-14.905]],"v":[[27.997,-49.85],[3.827,-23.969],[27.191,1.108],[51.462,-24.774]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-10.474,0],[0,-8.258],[8.459,0],[0,10.675]],"o":[[10.474,0],[0,10.977],[-8.661,0],[0,-9.265]],"v":[[27.795,-43.204],[42.398,-24.472],[27.594,-5.539],[12.79,-24.271]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"o","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"k","size":150,"style":"500","w":48.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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],[1.208,-1.712],[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],[-1.41,1.712],[0,0],[0,0]],"v":[[16.113,-71.503],[7.352,-71.503],[7.352,0],[16.113,0],[16.113,-18.329],[20.645,-23.364],[37.463,0],[48.239,0],[26.788,-28.702],[45.621,-48.743],[34.946,-48.743],[20.645,-31.924],[16.315,-26.385],[16.113,-26.385]],"c":true},"ix":2},"nm":"k","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"k","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"e","size":150,"style":"500","w":50.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,1.813],[15.912,0],[0,-14.703],[-15.005,0],[-3.122,1.41],[0,0],[6.345,0],[0.201,11.984]],"o":[[0.101,-0.906],[0,-8.963],[-14.2,0],[0,14.703],[7.755,0],[0,0],[-3.323,1.41],[-8.862,0],[0,0]],"v":[[46.527,-22.76],[46.829,-26.889],[26.688,-49.85],[3.827,-23.566],[27.795,1.007],[44.009,-2.014],[42.499,-8.359],[29.004,-5.841],[12.286,-22.76]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-8.963,0],[0.101,-5.64]],"o":[[0.705,-6.143],[9.97,0],[0,0]],"v":[[12.387,-29.105],[25.983,-43.506],[38.269,-29.105]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"e","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"s","size":150,"style":"500","w":39.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-5.338,0],[0,8.56],[8.459,3.223],[0,4.028],[-5.237,0],[-1.913,-1.208],[0,0],[4.935,0],[0,-7.855],[-8.762,-3.122],[0,-4.23],[6.445,0],[2.618,1.712]],"o":[[3.424,2.014],[11.581,0],[0,-7.251],[-6.345,-2.417],[0,-3.625],[4.532,0],[0,0],[-2.719,-1.611],[-10.474,0],[0,5.841],[6.546,2.417],[0,4.028],[-4.431,0],[0,0]],"v":[[3.928,-2.316],[17.624,1.007],[35.852,-13.596],[23.062,-28.299],[13.797,-36.557],[21.954,-43.204],[31.924,-40.384],[34.14,-46.829],[22.156,-49.85],[5.338,-35.55],[18.228,-21.753],[27.292,-12.79],[17.825,-5.539],[6.143,-9.064]],"c":true},"ix":2},"nm":"s","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"s","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"_","size":150,"style":"500","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,7.553],[0,12.589],[50.354,12.589],[50.354,7.553]],"c":true},"ix":2},"nm":"_","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"_","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"0","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.797,0],[0,-21.954],[-12.79,0],[0,22.256]],"o":[[-13.293,0],[0.201,21.652],[14.502,0],[0,-20.847]],"v":[[26.385,-66.568],[3.625,-32.529],[25.278,1.108],[48.038,-33.435]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-7.755,0],[0,-16.113],[9.064,0],[0,17.02]],"o":[[9.164,0],[0,16.718],[-8.057,0],[0,-17.825]],"v":[[25.882,-59.72],[39.175,-33.032],[25.781,-5.74],[12.488,-32.428]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"0","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"8","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.696,0],[0,11.38],[8.157,3.223],[0,0],[0,5.539],[12.689,0],[0,-10.373],[-7.251,-3.424],[0,0],[0,-8.258]],"o":[[12.488,0],[0,-7.956],[0,0],[8.057,-3.827],[0,-8.157],[-11.481,0],[0,5.64],[0,0],[-8.057,3.424],[0,9.567]],"v":[[25.681,1.108],[47.937,-17.926],[34.744,-34.845],[34.744,-35.147],[45.52,-50.455],[26.486,-66.568],[6.244,-49.146],[16.617,-34.442],[16.718,-34.14],[3.726,-16.617]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.956,0],[-0.302,6.647],[-7.654,2.216],[0,-7.956]],"o":[[-8.359,0],[0,-6.244],[8.862,2.518],[0,6.747]],"v":[[25.882,-5.338],[12.79,-17.825],[24.573,-31.32],[38.974,-17.02]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-7.352,0],[0,-5.237],[5.64,-1.913],[0,6.546]],"o":[[7.956,0],[0,5.942],[-7.553,-2.014],[0,-5.64]],"v":[[25.983,-60.223],[37.061,-49.548],[27.09,-37.665],[14.603,-49.75]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"8","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"G","size":150,"style":"500","w":64.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[5.74,0],[0,17.221],[-16.516,0],[-3.625,-1.611],[0,0],[7.855,0],[0.101,-20.242],[-5.841,-5.64],[-10.272,0],[-3.928,1.41]],"o":[[0,0],[0,0],[0,0],[0,0],[-2.014,1.007],[-15.811,0],[0,-17.02],[6.848,0],[0,0],[-2.921,-1.41],[-22.76,0],[0,10.574],[6.647,6.345],[9.164,0],[0,0]],"v":[[59.317,-35.651],[36.96,-35.651],[36.96,-28.601],[50.757,-28.601],[50.757,-8.359],[39.075,-6.546],[12.891,-33.939],[40.182,-61.23],[55.188,-58.31],[57.303,-65.46],[40.384,-68.582],[3.625,-33.536],[13.092,-8.258],[38.47,0.705],[59.317,-3.021]],"c":true},"ix":2},"nm":"G","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"G","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"a","size":150,"style":"500","w":48.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.23],[0,0],[14.905,0],[4.028,-2.618],[0,0],[-4.532,0],[0,-4.028],[0,0],[0,-11.783],[-9.869,0],[-2.719,3.827],[0,0],[0,0]],"o":[[-0.604,-3.323],[0,0],[0,-9.769],[-6.143,0],[0,0],[3.424,-2.216],[9.97,0],[0,0],[-18.832,-0.101],[0,7.05],[6.949,0],[0,0],[0,0],[0,0]],"v":[[42.398,0],[41.592,-11.682],[41.592,-29.91],[23.062,-49.85],[7.05,-45.52],[9.064,-39.679],[21.753,-43.304],[32.831,-32.025],[32.831,-31.018],[3.525,-12.891],[18.43,1.108],[33.334,-6.143],[33.636,-6.143],[34.341,0]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-0.906],[6.345,0],[0,5.74],[-9.668,-0.201]],"o":[[0,0.906],[-1.41,4.129],[-4.532,0],[0,-9.467],[0,0]],"v":[[33.032,-16.415],[32.529,-13.596],[20.746,-5.438],[12.387,-13.898],[33.032,-24.875]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"a","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"d","size":150,"style":"500","w":56.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[7.452,0],[-0.101,-16.214],[-11.783,0],[-2.719,5.438],[0,0],[0,0],[0,0],[0,4.33],[0,0]],"o":[[0,0],[0,0],[-2.216,-3.928],[-11.884,0],[0,14.804],[7.956,0],[0,0],[0,0],[0,0],[-0.302,-3.323],[0,0],[0,0]],"v":[[40.585,-71.503],[40.585,-42.398],[40.384,-42.398],[25.681,-49.85],[3.827,-23.666],[24.673,1.108],[41.29,-8.459],[41.492,-8.459],[41.895,0],[49.85,0],[49.448,-12.589],[49.448,-71.503]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-1.208],[5.942,0],[0,9.869],[-9.164,0],[-1.309,-5.64],[0,-1.108]],"o":[[0,1.41],[-1.611,6.647],[-9.567,0],[0,-10.776],[6.647,0],[0.302,1.108],[0,0]],"v":[[40.585,-20.444],[40.182,-16.617],[27.191,-6.042],[12.79,-24.069],[27.393,-42.902],[40.182,-32.629],[40.585,-28.903]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"d","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"i","size":150,"style":"500","w":23.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16.214,0],[16.214,-48.743],[7.352,-48.743],[7.352,0]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[3.323,0],[0,-3.122],[-3.122,0],[0.101,3.021]],"o":[[-3.223,0],[0,3.021],[3.525,0],[0,-3.122]],"v":[[11.783,-67.978],[6.244,-62.439],[11.581,-57.001],[17.221,-62.439]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"i","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"n","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.403,1.108],[-5.841,0],[0,-7.855],[0,0],[0,0],[0,0],[6.747,0],[2.417,-4.633],[0,0],[0,0],[0,0],[0,-5.035]],"o":[[0,0],[0,0],[0,-1.511],[1.511,-4.935],[8.359,0],[0,0],[0,0],[0,0],[0,-16.718],[-8.057,0],[0,0],[0,0],[0,0],[0.302,4.028],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.306],[16.818,-33.435],[28.702,-42.499],[39.981,-28.098],[39.981,0],[48.843,0],[48.843,-29.105],[31.622,-49.85],[15.509,-40.686],[15.308,-40.686],[14.804,-48.743],[6.949,-48.743],[7.352,-35.55]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"n","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"7","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[5.74,-65.46],[5.74,-58.109],[37.766,-58.109],[37.766,-57.907],[9.366,0],[18.53,0],[47.031,-59.619],[47.031,-65.46]],"c":true},"ix":2},"nm":"7","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"7","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"D","size":150,"style":"500","w":66.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.244,0],[-6.345,6.345],[0,11.078],[6.042,5.539],[12.589,0],[5.338,-0.806]],"o":[[4.431,0.504],[13.193,0],[6.345,-6.244],[0,-10.977],[-5.942,-5.539],[-6.949,0],[0,0]],"v":[[7.654,-0.201],[23.566,0.604],[53.577,-9.164],[63.345,-35.55],[53.778,-59.921],[26.285,-68.381],[7.654,-66.971]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-4.532,0],[0.101,-16.013],[18.732,0],[2.216,0.403]],"o":[[2.316,-0.504],[18.53,0],[0,18.329],[-3.424,0],[0,0]],"v":[[16.415,-60.526],[26.688,-61.432],[54.181,-35.248],[25.278,-6.445],[16.415,-6.949]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"D","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"h","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.504,1.208],[-5.74,0],[0,-7.855],[0,0],[0,0],[0,0],[6.546,0],[2.618,-1.511],[1.41,-2.518],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-1.712],[1.611,-4.834],[8.359,0],[0,0],[0,0],[0,0],[0,-16.818],[-3.323,0],[-2.719,1.511],[0,0],[0,0],[0,0],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.407],[16.818,-33.636],[28.702,-42.499],[39.981,-27.997],[39.981,0],[48.843,0],[48.843,-29.004],[31.824,-49.85],[22.76,-47.333],[16.415,-41.089],[16.214,-41.089],[16.214,-71.503],[7.352,-71.503]],"c":true},"ix":2},"nm":"h","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"h","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"6","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.618,-0.403],[5.438,-5.338],[0,-12.891],[-13.998,0],[0,11.984],[11.581,0],[3.122,-4.129],[0,0],[-13.898,2.316],[-1.813,-0.101]],"o":[[-1.611,0],[-8.258,1.007],[-6.445,6.445],[0,17.02],[13.596,0],[0,-12.79],[-7.251,0],[0,0],[1.511,-10.776],[2.518,-0.403],[0,0]],"v":[[41.895,-66.467],[35.449,-65.964],[14.502,-56.296],[3.424,-26.788],[26.587,1.108],[48.34,-21.954],[28.601,-43.103],[12.79,-35.55],[12.488,-35.55],[35.248,-58.813],[41.895,-59.216]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.654,0],[0.201,10.776],[-0.604,1.007],[-5.338,0],[0,-9.366]],"o":[[-9.265,0],[0,-1.611],[2.417,-4.733],[8.157,0],[0,9.366]],"v":[[26.587,-5.74],[12.186,-24.472],[13.193,-28.4],[25.882,-36.456],[39.377,-21.451]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"6","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"M","size":150,"style":"500","w":80.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.712,-6.848],[0,0],[2.82,8.359],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.201,8.459],[0,0],[-3.223,-9.567],[0,0],[0,0],[0,0],[-2.316,7.956],[0,0],[-0.504,-9.467]],"o":[[0,0],[0,0],[0,0],[0,0],[-3.021,8.56],[0,0],[-1.712,-7.05],[0,0],[0,0],[0,0],[0,0],[0,0],[0.604,-10.172],[0,0],[1.913,8.057],[0,0],[0,0],[0,0],[3.424,-9.366],[0,0],[-0.101,8.459],[0,0]],"v":[[66.568,0],[75.128,0],[70.898,-67.877],[59.72,-67.877],[47.635,-35.046],[40.485,-12.186],[40.182,-12.186],[33.334,-35.046],[21.753,-67.877],[10.574,-67.877],[5.841,0],[14.2,0],[16.013,-29.105],[17.322,-59.116],[17.523,-59.116],[25.378,-32.73],[36.356,-0.403],[43.002,-0.403],[54.987,-33.334],[63.547,-59.116],[63.849,-59.116],[64.856,-29.81]],"c":true},"ix":2},"nm":"M","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"M","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"L","size":150,"style":"500","w":47.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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.654,0],[45.419,0],[45.419,-7.352],[16.415,-7.352],[16.415,-67.877],[7.654,-67.877]],"c":true},"ix":2},"nm":"L","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"L","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"m","size":150,"style":"500","w":83.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.504,1.309],[-5.539,0],[0,-7.755],[0,0],[0,0],[0,0],[-0.403,1.208],[-5.035,0],[0,-9.366],[0,0],[0,0],[0,0],[6.445,0],[2.921,-2.216],[1.511,-2.719],[0,0],[6.647,0],[2.719,-4.633],[0,0],[0,0],[0,0],[0,-5.035]],"o":[[0,0],[0,0],[0,-1.511],[1.41,-4.431],[6.747,0],[0,0],[0,0],[0,0],[0,-1.611],[1.511,-4.33],[7.15,0],[0,0],[0,0],[0,0],[0,-16.919],[-4.633,0],[-2.014,1.511],[0,0],[-2.115,-5.74],[-8.057,0],[0,0],[0,0],[0,0],[0.302,4.028],[0,0]],"v":[[7.352,0],[16.013,0],[16.013,-29.407],[16.718,-33.737],[27.695,-42.599],[37.866,-29.205],[37.866,0],[46.527,0],[46.527,-30.112],[47.232,-34.543],[57.706,-42.599],[68.28,-27.594],[68.28,0],[76.941,0],[76.941,-28.702],[60.928,-49.85],[50.153,-46.426],[44.714,-40.082],[44.513,-40.082],[30.716,-49.85],[15.408,-40.887],[15.106,-40.887],[14.703,-48.743],[6.949,-48.743],[7.352,-35.55]],"c":true},"ix":2},"nm":"m","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"m","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"5","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-3.726,0],[-0.101,-8.459],[8.359,0],[2.719,1.611],[0,0],[-7.15,0],[0,12.79],[5.136,2.921],[5.035,0],[1.511,-0.201],[0,0],[0,0]],"o":[[0,0],[0,0],[2.417,-0.302],[13.092,0],[0,8.762],[-5.942,0],[0,0],[3.122,2.014],[14.2,0],[0,-8.258],[-4.028,-2.417],[-2.417,0],[0,0],[0,0],[0,0]],"v":[[43.607,-65.46],[12.286,-65.46],[8.057,-34.039],[17.12,-34.744],[35.953,-20.242],[20.444,-6.042],[6.445,-9.668],[4.23,-2.921],[20.544,1.108],[44.916,-21.249],[35.55,-38.068],[21.451,-41.592],[16.113,-41.19],[18.631,-58.008],[43.607,-58.008]],"c":true},"ix":2},"nm":"5","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"5","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"J","size":150,"style":"500","w":37,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[7.855,0],[1.813,0.705],[0,0],[-3.223,0],[0,18.027],[0,0],[0,0]],"o":[[0,13.293],[-2.921,0],[0,0],[2.216,0.906],[11.682,0],[0,0],[0,0],[0,0]],"v":[[21.552,-23.163],[9.064,-6.345],[1.712,-7.654],[0.403,-0.504],[9.769,1.108],[30.313,-22.458],[30.313,-67.877],[21.552,-67.877]],"c":true},"ix":2},"nm":"J","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"J","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"4","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[40.283,0],[40.283,-17.825],[49.448,-17.825],[49.448,-24.774],[40.283,-24.774],[40.283,-65.46],[30.716,-65.46],[1.511,-23.666],[1.511,-17.825],[31.924,-17.825],[31.924,0]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.014,3.827],[0,0],[0,-3.424],[0,0]],"o":[[0,0],[0,0],[1.813,-3.021],[0,0],[-0.201,3.424],[0,0],[0,0]],"v":[[10.474,-24.774],[10.474,-24.976],[26.486,-47.232],[31.924,-56.9],[32.227,-56.9],[31.924,-46.628],[31.924,-24.774]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"4","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"p","size":150,"style":"500","w":56.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-6.445,0],[0,17.523],[11.783,0],[3.625,-5.942],[0,0],[0,0],[0,0],[0,-6.244]],"o":[[0,0],[0,0],[0,0],[2.921,4.834],[11.481,0],[0,-14.804],[-7.956,0],[0,0],[0,0],[0,0],[0.201,4.633],[0,0]],"v":[[7.352,19.94],[16.113,19.94],[16.113,-6.546],[16.315,-6.546],[31.32,1.108],[53.476,-25.076],[32.831,-49.85],[15.509,-40.384],[15.308,-40.384],[14.905,-48.743],[6.949,-48.743],[7.352,-32.831]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.302,1.108],[-6.042,0],[0,-9.769],[9.366,0],[1.611,6.143],[0,1.309]],"o":[[0,-1.208],[1.712,-6.647],[9.366,0],[0,11.179],[-6.345,0],[-0.201,-1.108],[0,0]],"v":[[16.113,-28.198],[16.718,-31.824],[30.112,-42.801],[44.614,-24.673],[29.81,-5.841],[16.516,-16.214],[16.113,-19.839]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"p","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"3","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-7.352,0],[0,10.474],[8.057,1.611],[0,0],[0,6.747],[12.891,0],[3.424,-2.518],[0,0],[-5.237,0],[0,-5.237],[6.445,0],[0,0],[0,0],[0,0],[-0.101,-9.164],[11.38,0],[2.518,1.611]],"o":[[3.223,2.115],[15.71,0],[0,-9.164],[0,0],[8.057,-2.921],[0,-7.956],[-7.05,0],[0,0],[2.82,-2.014],[8.157,0],[0,7.755],[0,0],[0,0],[0,0],[8.56,0],[0.101,5.438],[-6.143,0],[0,0]],"v":[[4.23,-3.323],[21.249,1.108],[45.117,-18.53],[30.515,-35.349],[30.515,-35.55],[42.599,-50.958],[23.868,-66.568],[6.747,-61.533],[9.064,-55.087],[22.156,-59.418],[33.636,-49.548],[19.034,-38.47],[14.099,-38.47],[14.099,-31.824],[19.034,-31.824],[35.953,-18.732],[21.149,-6.042],[6.647,-10.172]],"c":true},"ix":2},"nm":"3","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"3","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"W","size":150,"style":"500","w":86.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.208,6.747],[0,0],[-2.115,-8.661],[0,0],[0,0],[0,0],[0,0],[0,0],[1.41,-7.452],[0,0],[1.913,8.057],[0,0],[0,0],[0,0],[1.108,-6.747],[0,0],[2.014,8.459],[0,0],[0,0],[0,0]],"o":[[0,0],[2.518,-8.762],[0,0],[0.906,6.848],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.115,8.459],[0,0],[-1.007,-7.15],[0,0],[0,0],[0,0],[-2.316,8.762],[0,0],[-1.208,-6.546],[0,0],[0,0],[0,0],[0,0]],"v":[[27.896,0],[37.564,-35.349],[42.801,-57.504],[43.002,-57.504],[47.433,-35.349],[55.994,0],[65.158,0],[84.393,-67.877],[75.43,-67.877],[66.467,-33.636],[61.029,-10.172],[60.828,-10.172],[56.094,-33.435],[47.836,-67.877],[38.672,-67.877],[29.608,-33.636],[24.069,-10.071],[23.868,-10.071],[18.832,-33.536],[10.776,-67.877],[1.511,-67.877],[18.732,0]],"c":true},"ix":2},"nm":"W","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"W","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"2","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,12.085],[14.099,0],[4.532,-3.827],[0,0],[-5.942,0],[0,-6.647],[16.718,-15.912],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[13.797,-13.293],[0,-9.366],[-7.553,0],[0,0],[3.021,-2.518],[9.769,0],[-0.101,9.869],[0,0],[0,0],[0,0]],"v":[[46.326,0],[46.326,-7.352],[16.919,-7.352],[16.919,-7.553],[22.156,-12.387],[44.714,-47.534],[24.673,-66.568],[6.143,-59.921],[8.963,-53.677],[22.861,-59.216],[35.852,-46.426],[11.481,-12.186],[4.532,-5.438],[4.532,0]],"c":true},"ix":2},"nm":"2","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"O","size":150,"style":"500","w":68.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[18.53,0],[0,-21.552],[-17.926,0],[0,23.364]],"o":[[-18.127,0],[0,20.544],[17.322,0],[0,-20.142]],"v":[[35.147,-68.985],[3.625,-33.334],[34.14,1.108],[65.662,-34.644]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-14.502,0],[0,-13.495],[13.898,0],[0,14.502]],"o":[[14.603,0],[0,15.408],[-13.797,0],[0,-14.905]],"v":[[34.744,-61.835],[56.396,-34.241],[34.644,-6.042],[12.991,-33.536]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"O","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"c","size":150,"style":"500","w":44.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.035,0],[0,11.279],[-11.179,0],[-2.115,-1.208],[0,0],[5.237,0],[0,-15.005],[-14.703,0],[-2.316,1.208]],"o":[[-2.518,1.108],[-9.668,0],[0,-10.172],[4.834,0],[0,0],[-2.417,-1.208],[-15.912,0],[0,14.905],[6.546,0],[0,0]],"v":[[40.585,-8.459],[29.709,-6.042],[12.79,-24.271],[30.011,-42.7],[40.283,-40.384],[42.297,-47.232],[30.011,-49.75],[3.827,-23.868],[28.098,1.007],[42.096,-1.813]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"c","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"y","size":150,"style":"500","w":48.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-0.504],[0.403,-0.906],[2.417,-1.913],[2.216,-0.705],[0,0],[-4.33,3.827],[-6.345,16.718],[0,0],[0,0],[0,0],[0.906,-2.921],[0,0],[1.108,3.223],[0,0]],"o":[[0,0],[0.403,1.108],[0,0.504],[-2.014,4.532],[-2.618,2.216],[0,0],[2.216,-0.403],[6.042,-5.237],[0,0],[0,0],[0,0],[-1.208,3.525],[0,0],[-0.806,-2.921],[0,0],[0,0]],"v":[[0.906,-48.743],[18.933,-3.827],[19.537,-1.511],[18.832,0.604],[11.38,10.474],[3.625,14.804],[5.841,22.256],[16.718,16.516],[33.435,-13.998],[46.729,-48.743],[37.363,-48.743],[27.695,-20.142],[24.573,-9.97],[24.371,-9.97],[21.249,-19.94],[10.574,-48.743]],"c":true},"ix":2},"nm":"y","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"y","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"1","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[23.767,0],[32.327,0],[32.327,-65.46],[24.774,-65.46],[10.474,-57.806],[12.186,-51.059],[23.566,-57.202],[23.767,-57.202]],"c":true},"ix":2},"nm":"1","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"l","size":150,"style":"500","w":23.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-71.503],[7.352,-71.503]],"c":true},"ix":2},"nm":"l","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"l","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/UXSample_1920x1080/D Transforms_All_01_1920x1080.json b/external/rlottie/example/resource/UXSample_1920x1080/D Transforms_All_01_1920x1080.json new file mode 100644 index 000000000..b1078dbe7 --- /dev/null +++ b/external/rlottie/example/resource/UXSample_1920x1080/D Transforms_All_01_1920x1080.json @@ -0,0 +1 @@ +{"v":"5.1.18","fr":30,"ip":0,"op":66,"w":1920,"h":1080,"nm":"D Transforms_All_01","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1924.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[483.75,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[964,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1444.25,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[3.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[174.5,244,0],"e":[296.34,182,0],"to":[23.0368061065674,0,0],"ti":[-55.0616836547852,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":20,"s":[296.34,182,0],"e":[430.132,294.129,0],"to":[41.3462142944336,0,0],"ti":[-41.2537689208984,-13.1089372634888,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":40,"s":[430.132,294.129,0],"e":[575,244,0],"to":[54.448616027832,17.301778793335,0],"ti":[-22.8313579559326,0,0]},{"t":60}],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":0,"s":[174.5],"e":[368.34]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p667_1_0p167_0"],"t":20,"s":[368.34],"e":[368.34]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":40,"s":[368.34],"e":[575]},{"t":60}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":20,"s":[185],"e":[265.5]},{"t":40}],"ix":4}},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.246,0.246,0.667],"y":[1,1,1]},"o":{"x":[0.421,0.421,0.167],"y":[0.125,0.125,0]},"n":["0p246_1_0p421_0p125","0p246_1_0p421_0p125","0p667_1_0p167_0"],"t":0,"s":[50,50,100],"e":[75,75,100]},{"i":{"x":[0.441,0.441,0.667],"y":[1,1,1]},"o":{"x":[0.651,0.651,0.167],"y":[0,0,0]},"n":["0p441_1_0p651_0","0p441_1_0p651_0","0p667_1_0p167_0"],"t":20,"s":[75,75,100],"e":[35,35,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.487,0.487,0.167],"y":[0,0,0]},"n":["0_1_0p487_0","0_1_0p487_0","0p667_1_0p167_0"],"t":40,"s":[35,35,100],"e":[50,50,100]},{"t":60}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.363],"y":[1]},"o":{"x":[0.717],"y":[0.463]},"n":["0p363_1_0p717_0p463"],"t":0,"s":[0],"e":[720]},{"t":60}],"ix":10},"p":{"a":0,"k":[375,241,0],"ix":2},"a":{"a":0,"k":[962,728,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[962,504,0],"e":[724,701,0],"to":[-39.6666679382324,32.8333320617676,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[724,701,0],"e":[962,504,0],"to":[0,0,0],"ti":[-78,50.8333320617676,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[962,504,0],"e":[1192,396,0],"to":[78,-50.8333320617676,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45,"s":[1192,396,0],"e":[962,504,0],"to":[0,0,0],"ti":[38.3333320617676,-18,0]},{"t":60}],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[0],"e":[100]},{"t":30}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.363],"y":[1]},"o":{"x":[0.717],"y":[0.463]},"n":["0p363_1_0p717_0p463"],"t":0,"s":[0],"e":[720]},{"t":60}],"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectantgle Outlines 2","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[730,278,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_8","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[139.2,378.1,0],"e":[585.6,82,0],"to":[-0.95211333036423,-289.677154541016,0],"ti":[2.61271214485168,258.688842773438,0]},{"t":60}],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[45,45,100],"ix":6}},"ao":1,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]}],"fonts":{"list":[{"fName":"SamsungOne-500","fFamily":"SamsungOne","fStyle":"500","ascent":70.9991455078125}]},"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"div","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":5,"nm":"D Transforms_01 Position","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"D Transforms_01 Position","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":67,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"D Transforms_02 Position","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519.5,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"D Transforms_02 Position","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":67,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":5,"nm":"D Transforms_03 Scale","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000.375,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"D Transforms_03 Scale","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":67,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"D Transforms_04 Rotation","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1480.5,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"D Transforms_04 Rotation","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":67,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":5,"nm":"D Transforms_05 Anchor Point","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"D Transforms_05 Anchor Point","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":67,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":5,"nm":"D Transforms_06 Opacity","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519.5,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"D Transforms_06 Opacity","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":67,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":5,"nm":"D Transforms_07 Parenting","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000.375,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"D Transforms_07 Parenting","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":67,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":5,"nm":"D Transforms_08 Auto Orient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1480.5,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"D Transforms_08 Auto Orient","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":67,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"D Transforms_01 Position","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[248,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"D Transforms_02 Position (separated X,Y)","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[726,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"D Transforms_03 Scale","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1204,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"D Transforms_04 Rotation","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1678,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"D Transforms_05 Anchor Point","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[248,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"D Transforms_06 Opacity","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[732,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"D Transforms_07 Parenting","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1198,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":0,"nm":"D Transforms_08 Auto Orient","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1678,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0}],"markers":[],"chars":[{"ch":"D","size":150,"style":"500","w":66.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.244,0],[-6.345,6.345],[0,11.078],[6.042,5.539],[12.589,0],[5.338,-0.806]],"o":[[4.431,0.504],[13.193,0],[6.345,-6.244],[0,-10.977],[-5.942,-5.539],[-6.949,0],[0,0]],"v":[[7.654,-0.201],[23.566,0.604],[53.577,-9.164],[63.345,-35.55],[53.778,-59.921],[26.285,-68.381],[7.654,-66.971]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-4.532,0],[0.101,-16.013],[18.732,0],[2.216,0.403]],"o":[[2.316,-0.504],[18.53,0],[0,18.329],[-3.424,0],[0,0]],"v":[[16.415,-60.526],[26.688,-61.432],[54.181,-35.248],[25.278,-6.445],[16.415,-6.949]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"D","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":" ","size":150,"style":"500","w":21.2,"data":{},"fFamily":"SamsungOne"},{"ch":"T","size":150,"style":"500","w":53.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[20.544,0],[29.407,0],[29.407,-60.425],[50.153,-60.425],[50.153,-67.877],[-0.101,-67.877],[-0.101,-60.425],[20.544,-60.425]],"c":true},"ix":2},"nm":"T","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"T","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"r","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.201,1.208],[-6.244,0],[-0.906,-0.201],[0,0],[1.007,0],[2.216,-6.546],[0,0],[0,0],[0,0],[0,-5.74]],"o":[[0,0],[0,0],[0,-1.511],[1.208,-6.647],[1.208,0],[0,0],[-0.806,-0.201],[-5.942,0],[0,0],[0,0],[0,0],[0.302,4.532],[0,0]],"v":[[7.352,0],[16.113,0],[16.113,-25.983],[16.516,-30.112],[28.4,-41.492],[31.421,-41.19],[31.421,-49.548],[28.903,-49.85],[15.408,-39.175],[15.005,-39.175],[14.703,-48.743],[6.949,-48.743],[7.352,-33.536]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"r","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"a","size":150,"style":"500","w":48.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.23],[0,0],[14.905,0],[4.028,-2.618],[0,0],[-4.532,0],[0,-4.028],[0,0],[0,-11.783],[-9.869,0],[-2.719,3.827],[0,0],[0,0]],"o":[[-0.604,-3.323],[0,0],[0,-9.769],[-6.143,0],[0,0],[3.424,-2.216],[9.97,0],[0,0],[-18.832,-0.101],[0,7.05],[6.949,0],[0,0],[0,0],[0,0]],"v":[[42.398,0],[41.592,-11.682],[41.592,-29.91],[23.062,-49.85],[7.05,-45.52],[9.064,-39.679],[21.753,-43.304],[32.831,-32.025],[32.831,-31.018],[3.525,-12.891],[18.43,1.108],[33.334,-6.143],[33.636,-6.143],[34.341,0]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-0.906],[6.345,0],[0,5.74],[-9.668,-0.201]],"o":[[0,0.906],[-1.41,4.129],[-4.532,0],[0,-9.467],[0,0]],"v":[[33.032,-16.415],[32.529,-13.596],[20.746,-5.438],[12.387,-13.898],[33.032,-24.875]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"a","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"n","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.403,1.108],[-5.841,0],[0,-7.855],[0,0],[0,0],[0,0],[6.747,0],[2.417,-4.633],[0,0],[0,0],[0,0],[0,-5.035]],"o":[[0,0],[0,0],[0,-1.511],[1.511,-4.935],[8.359,0],[0,0],[0,0],[0,0],[0,-16.718],[-8.057,0],[0,0],[0,0],[0,0],[0.302,4.028],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.306],[16.818,-33.435],[28.702,-42.499],[39.981,-28.098],[39.981,0],[48.843,0],[48.843,-29.105],[31.622,-49.85],[15.509,-40.686],[15.308,-40.686],[14.804,-48.743],[6.949,-48.743],[7.352,-35.55]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"n","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"s","size":150,"style":"500","w":39.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-5.338,0],[0,8.56],[8.459,3.223],[0,4.028],[-5.237,0],[-1.913,-1.208],[0,0],[4.935,0],[0,-7.855],[-8.762,-3.122],[0,-4.23],[6.445,0],[2.618,1.712]],"o":[[3.424,2.014],[11.581,0],[0,-7.251],[-6.345,-2.417],[0,-3.625],[4.532,0],[0,0],[-2.719,-1.611],[-10.474,0],[0,5.841],[6.546,2.417],[0,4.028],[-4.431,0],[0,0]],"v":[[3.928,-2.316],[17.624,1.007],[35.852,-13.596],[23.062,-28.299],[13.797,-36.557],[21.954,-43.204],[31.924,-40.384],[34.14,-46.829],[22.156,-49.85],[5.338,-35.55],[18.228,-21.753],[27.292,-12.79],[17.825,-5.539],[6.143,-9.064]],"c":true},"ix":2},"nm":"s","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"s","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"f","size":150,"style":"500","w":29.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-7.553,0],[-1.309,-0.604],[0,0],[3.122,0],[3.323,-3.223],[0,-6.848],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,-7.452],[2.518,0],[0,0],[-1.712,-0.705],[-4.129,0],[-4.129,3.928],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[17.02,0],[17.02,-41.995],[28.802,-41.995],[28.802,-48.743],[17.02,-48.743],[17.02,-51.361],[26.486,-65.46],[32.126,-64.352],[33.334,-71.201],[25.781,-72.61],[13.898,-68.079],[8.258,-51.059],[8.258,-48.743],[1.41,-48.743],[1.41,-41.995],[8.258,-41.995],[8.258,0]],"c":true},"ix":2},"nm":"f","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"f","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"o","size":150,"style":"500","w":54.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.998,0],[0,-16.315],[-13.193,0],[0,18.027]],"o":[[-13.495,0],[0,15.408],[11.783,0],[0,-14.905]],"v":[[27.997,-49.85],[3.827,-23.969],[27.191,1.108],[51.462,-24.774]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-10.474,0],[0,-8.258],[8.459,0],[0,10.675]],"o":[[10.474,0],[0,10.977],[-8.661,0],[0,-9.265]],"v":[[27.795,-43.204],[42.398,-24.472],[27.594,-5.539],[12.79,-24.271]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"o","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"m","size":150,"style":"500","w":83.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.504,1.309],[-5.539,0],[0,-7.755],[0,0],[0,0],[0,0],[-0.403,1.208],[-5.035,0],[0,-9.366],[0,0],[0,0],[0,0],[6.445,0],[2.921,-2.216],[1.511,-2.719],[0,0],[6.647,0],[2.719,-4.633],[0,0],[0,0],[0,0],[0,-5.035]],"o":[[0,0],[0,0],[0,-1.511],[1.41,-4.431],[6.747,0],[0,0],[0,0],[0,0],[0,-1.611],[1.511,-4.33],[7.15,0],[0,0],[0,0],[0,0],[0,-16.919],[-4.633,0],[-2.014,1.511],[0,0],[-2.115,-5.74],[-8.057,0],[0,0],[0,0],[0,0],[0.302,4.028],[0,0]],"v":[[7.352,0],[16.013,0],[16.013,-29.407],[16.718,-33.737],[27.695,-42.599],[37.866,-29.205],[37.866,0],[46.527,0],[46.527,-30.112],[47.232,-34.543],[57.706,-42.599],[68.28,-27.594],[68.28,0],[76.941,0],[76.941,-28.702],[60.928,-49.85],[50.153,-46.426],[44.714,-40.082],[44.513,-40.082],[30.716,-49.85],[15.408,-40.887],[15.106,-40.887],[14.703,-48.743],[6.949,-48.743],[7.352,-35.55]],"c":true},"ix":2},"nm":"m","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"m","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"_","size":150,"style":"500","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,7.553],[0,12.589],[50.354,12.589],[50.354,7.553]],"c":true},"ix":2},"nm":"_","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"_","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"0","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.797,0],[0,-21.954],[-12.79,0],[0,22.256]],"o":[[-13.293,0],[0.201,21.652],[14.502,0],[0,-20.847]],"v":[[26.385,-66.568],[3.625,-32.529],[25.278,1.108],[48.038,-33.435]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-7.755,0],[0,-16.113],[9.064,0],[0,17.02]],"o":[[9.164,0],[0,16.718],[-8.057,0],[0,-17.825]],"v":[[25.882,-59.72],[39.175,-33.032],[25.781,-5.74],[12.488,-32.428]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"0","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"8","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.696,0],[0,11.38],[8.157,3.223],[0,0],[0,5.539],[12.689,0],[0,-10.373],[-7.251,-3.424],[0,0],[0,-8.258]],"o":[[12.488,0],[0,-7.956],[0,0],[8.057,-3.827],[0,-8.157],[-11.481,0],[0,5.64],[0,0],[-8.057,3.424],[0,9.567]],"v":[[25.681,1.108],[47.937,-17.926],[34.744,-34.845],[34.744,-35.147],[45.52,-50.455],[26.486,-66.568],[6.244,-49.146],[16.617,-34.442],[16.718,-34.14],[3.726,-16.617]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.956,0],[-0.302,6.647],[-7.654,2.216],[0,-7.956]],"o":[[-8.359,0],[0,-6.244],[8.862,2.518],[0,6.747]],"v":[[25.882,-5.338],[12.79,-17.825],[24.573,-31.32],[38.974,-17.02]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-7.352,0],[0,-5.237],[5.64,-1.913],[0,6.546]],"o":[[7.956,0],[0,5.942],[-7.553,-2.014],[0,-5.64]],"v":[[25.983,-60.223],[37.061,-49.548],[27.09,-37.665],[14.603,-49.75]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"8","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"A","size":150,"style":"500","w":61.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[42.7,-21.35],[49.951,0],[59.317,0],[36.154,-67.877],[25.58,-67.877],[2.518,0],[11.581,0],[18.631,-21.35]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.007,4.028],[0,0],[-1.511,-4.431],[0,0]],"o":[[0,0],[1.309,-4.129],[0,0],[1.007,3.928],[0,0],[0,0]],"v":[[20.444,-28.198],[27.09,-47.836],[30.515,-60.123],[30.716,-60.123],[34.241,-47.736],[40.887,-28.198]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"A","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"u","size":150,"style":"500","w":55.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0.504,-1.309],[5.942,0],[0,9.265],[0,0],[0,0],[0,0],[-7.654,0],[-2.316,3.928],[0,0],[0,0],[0,0],[0,5.035]],"o":[[0,0],[0,0],[0,1.611],[-1.611,3.928],[-8.057,0],[0,0],[0,0],[0,0],[0,17.12],[8.661,0],[0,0],[0,0],[0,0],[-0.302,-3.827],[0,0]],"v":[[48.138,-48.743],[39.276,-48.743],[39.276,-18.832],[38.47,-14.301],[26.788,-6.244],[15.912,-21.753],[15.912,-48.743],[7.05,-48.743],[7.05,-20.242],[23.868,1.108],[39.981,-7.956],[40.182,-7.956],[40.686,0],[48.541,0],[48.138,-13.293]],"c":true},"ix":2},"nm":"u","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"u","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"t","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.518,-2.618],[-4.129,0],[-1.712,0.705],[0,0],[2.316,0],[0,6.042],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,5.74],[2.115,2.417],[3.424,0],[0,0],[-1.108,0.302],[-4.935,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[9.366,-60.425],[9.366,-48.743],[1.813,-48.743],[1.813,-41.995],[9.366,-41.995],[9.366,-15.408],[12.79,-2.719],[22.357,1.007],[30.212,-0.201],[29.81,-6.848],[24.673,-6.244],[18.027,-15.71],[18.027,-41.995],[30.716,-41.995],[30.716,-48.743],[18.027,-48.743],[18.027,-62.741]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"t","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"O","size":150,"style":"500","w":68.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[18.53,0],[0,-21.552],[-17.926,0],[0,23.364]],"o":[[-18.127,0],[0,20.544],[17.322,0],[0,-20.142]],"v":[[35.147,-68.985],[3.625,-33.334],[34.14,1.108],[65.662,-34.644]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-14.502,0],[0,-13.495],[13.898,0],[0,14.502]],"o":[[14.603,0],[0,15.408],[-13.797,0],[0,-14.905]],"v":[[34.744,-61.835],[56.396,-34.241],[34.644,-6.042],[12.991,-33.536]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"O","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"i","size":150,"style":"500","w":23.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16.214,0],[16.214,-48.743],[7.352,-48.743],[7.352,0]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[3.323,0],[0,-3.122],[-3.122,0],[0.101,3.021]],"o":[[-3.223,0],[0,3.021],[3.525,0],[0,-3.122]],"v":[[11.783,-67.978],[6.244,-62.439],[11.581,-57.001],[17.221,-62.439]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"i","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"e","size":150,"style":"500","w":50.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,1.813],[15.912,0],[0,-14.703],[-15.005,0],[-3.122,1.41],[0,0],[6.345,0],[0.201,11.984]],"o":[[0.101,-0.906],[0,-8.963],[-14.2,0],[0,14.703],[7.755,0],[0,0],[-3.323,1.41],[-8.862,0],[0,0]],"v":[[46.527,-22.76],[46.829,-26.889],[26.688,-49.85],[3.827,-23.566],[27.795,1.007],[44.009,-2.014],[42.499,-8.359],[29.004,-5.841],[12.286,-22.76]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-8.963,0],[0.101,-5.64]],"o":[[0.705,-6.143],[9.97,0],[0,0]],"v":[[12.387,-29.105],[25.983,-43.506],[38.269,-29.105]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"e","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"7","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[5.74,-65.46],[5.74,-58.109],[37.766,-58.109],[37.766,-57.907],[9.366,0],[18.53,0],[47.031,-59.619],[47.031,-65.46]],"c":true},"ix":2},"nm":"7","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"7","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"P","size":150,"style":"500","w":53.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.618,0],[-4.633,4.935],[0,6.143],[3.726,3.223],[8.661,0],[4.23,-0.705]],"o":[[0,0],[0,0],[2.014,0.504],[8.56,0],[3.424,-3.525],[0,-6.042],[-4.028,-3.625],[-7.05,0],[0,0]],"v":[[7.654,0],[16.415,0],[16.415,-27.191],[23.465,-26.587],[44.211,-34.039],[49.448,-48.541],[43.506,-62.741],[24.472,-68.381],[7.654,-67.072]],"c":true},"ix":2},"nm":"P","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-3.827,0],[0,-8.963],[10.574,0],[1.913,0.504]],"o":[[1.511,-0.403],[9.668,0],[0,9.366],[-2.921,0],[0,0]],"v":[[16.415,-60.727],[24.673,-61.432],[40.686,-48.138],[23.666,-33.636],[16.415,-34.341]],"c":true},"ix":2},"nm":"P","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"P","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"g","size":150,"style":"500","w":55.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[8.459,0],[0,-16.516],[-12.085,0],[-2.719,4.532],[0,0],[0,0],[9.064,0],[3.223,2.014],[0,0],[-5.841,0],[-4.733,4.431],[0,11.179],[0,0],[-0.201,3.525]],"o":[[0,0],[0,0],[-2.115,-4.028],[-11.179,0],[0,13.495],[7.553,0],[0,0],[0,0],[0,12.286],[-6.042,0],[0,0],[3.928,2.618],[6.143,0],[4.733,-4.23],[0,0],[0,-5.942],[0,0]],"v":[[41.592,-48.743],[41.19,-41.391],[40.988,-41.391],[25.781,-49.85],[3.827,-23.969],[24.573,-0.201],[40.082,-8.359],[40.283,-8.359],[40.283,-2.921],[24.573,14.099],[10.272,10.272],[8.057,17.02],[24.271,21.048],[41.995,15.207],[48.944,-7.05],[48.944,-35.349],[49.347,-48.743]],"c":true},"ix":2},"nm":"g","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.504,-1.511],[5.438,0],[0,9.567],[-8.459,0],[-1.611,-5.136],[0,-1.511]],"o":[[0,1.511],[-1.913,5.64],[-9.567,0],[0,-11.279],[6.445,0],[0.403,1.208],[0,0]],"v":[[40.182,-20.746],[39.478,-16.013],[27.191,-6.949],[12.79,-24.472],[27.292,-42.902],[39.679,-33.536],[40.182,-29.507]],"c":true},"ix":2},"nm":"g","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"g","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"6","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.618,-0.403],[5.438,-5.338],[0,-12.891],[-13.998,0],[0,11.984],[11.581,0],[3.122,-4.129],[0,0],[-13.898,2.316],[-1.813,-0.101]],"o":[[-1.611,0],[-8.258,1.007],[-6.445,6.445],[0,17.02],[13.596,0],[0,-12.79],[-7.251,0],[0,0],[1.511,-10.776],[2.518,-0.403],[0,0]],"v":[[41.895,-66.467],[35.449,-65.964],[14.502,-56.296],[3.424,-26.788],[26.587,1.108],[48.34,-21.954],[28.601,-43.103],[12.79,-35.55],[12.488,-35.55],[35.248,-58.813],[41.895,-59.216]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.654,0],[0.201,10.776],[-0.604,1.007],[-5.338,0],[0,-9.366]],"o":[[-9.265,0],[0,-1.611],[2.417,-4.733],[8.157,0],[0,9.366]],"v":[[26.587,-5.74],[12.186,-24.472],[13.193,-28.4],[25.882,-36.456],[39.377,-21.451]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"6","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"p","size":150,"style":"500","w":56.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-6.445,0],[0,17.523],[11.783,0],[3.625,-5.942],[0,0],[0,0],[0,0],[0,-6.244]],"o":[[0,0],[0,0],[0,0],[2.921,4.834],[11.481,0],[0,-14.804],[-7.956,0],[0,0],[0,0],[0,0],[0.201,4.633],[0,0]],"v":[[7.352,19.94],[16.113,19.94],[16.113,-6.546],[16.315,-6.546],[31.32,1.108],[53.476,-25.076],[32.831,-49.85],[15.509,-40.384],[15.308,-40.384],[14.905,-48.743],[6.949,-48.743],[7.352,-32.831]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.302,1.108],[-6.042,0],[0,-9.769],[9.366,0],[1.611,6.143],[0,1.309]],"o":[[0,-1.208],[1.712,-6.647],[9.366,0],[0,11.179],[-6.345,0],[-0.201,-1.108],[0,0]],"v":[[16.113,-28.198],[16.718,-31.824],[30.112,-42.801],[44.614,-24.673],[29.81,-5.841],[16.516,-16.214],[16.113,-19.839]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"p","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"c","size":150,"style":"500","w":44.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.035,0],[0,11.279],[-11.179,0],[-2.115,-1.208],[0,0],[5.237,0],[0,-15.005],[-14.703,0],[-2.316,1.208]],"o":[[-2.518,1.108],[-9.668,0],[0,-10.172],[4.834,0],[0,0],[-2.417,-1.208],[-15.912,0],[0,14.905],[6.546,0],[0,0]],"v":[[40.585,-8.459],[29.709,-6.042],[12.79,-24.271],[30.011,-42.7],[40.283,-40.384],[42.297,-47.232],[30.011,-49.75],[3.827,-23.868],[28.098,1.007],[42.096,-1.813]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"c","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"y","size":150,"style":"500","w":48.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-0.504],[0.403,-0.906],[2.417,-1.913],[2.216,-0.705],[0,0],[-4.33,3.827],[-6.345,16.718],[0,0],[0,0],[0,0],[0.906,-2.921],[0,0],[1.108,3.223],[0,0]],"o":[[0,0],[0.403,1.108],[0,0.504],[-2.014,4.532],[-2.618,2.216],[0,0],[2.216,-0.403],[6.042,-5.237],[0,0],[0,0],[0,0],[-1.208,3.525],[0,0],[-0.806,-2.921],[0,0],[0,0]],"v":[[0.906,-48.743],[18.933,-3.827],[19.537,-1.511],[18.832,0.604],[11.38,10.474],[3.625,14.804],[5.841,22.256],[16.718,16.516],[33.435,-13.998],[46.729,-48.743],[37.363,-48.743],[27.695,-20.142],[24.573,-9.97],[24.371,-9.97],[21.249,-19.94],[10.574,-48.743]],"c":true},"ix":2},"nm":"y","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"y","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"5","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-3.726,0],[-0.101,-8.459],[8.359,0],[2.719,1.611],[0,0],[-7.15,0],[0,12.79],[5.136,2.921],[5.035,0],[1.511,-0.201],[0,0],[0,0]],"o":[[0,0],[0,0],[2.417,-0.302],[13.092,0],[0,8.762],[-5.942,0],[0,0],[3.122,2.014],[14.2,0],[0,-8.258],[-4.028,-2.417],[-2.417,0],[0,0],[0,0],[0,0]],"v":[[43.607,-65.46],[12.286,-65.46],[8.057,-34.039],[17.12,-34.744],[35.953,-20.242],[20.444,-6.042],[6.445,-9.668],[4.23,-2.921],[20.544,1.108],[44.916,-21.249],[35.55,-38.068],[21.451,-41.592],[16.113,-41.19],[18.631,-58.008],[43.607,-58.008]],"c":true},"ix":2},"nm":"5","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"5","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"h","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.504,1.208],[-5.74,0],[0,-7.855],[0,0],[0,0],[0,0],[6.546,0],[2.618,-1.511],[1.41,-2.518],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-1.712],[1.611,-4.834],[8.359,0],[0,0],[0,0],[0,0],[0,-16.818],[-3.323,0],[-2.719,1.511],[0,0],[0,0],[0,0],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.407],[16.818,-33.636],[28.702,-42.499],[39.981,-27.997],[39.981,0],[48.843,0],[48.843,-29.004],[31.824,-49.85],[22.76,-47.333],[16.415,-41.089],[16.214,-41.089],[16.214,-71.503],[7.352,-71.503]],"c":true},"ix":2},"nm":"h","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"h","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"4","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[40.283,0],[40.283,-17.825],[49.448,-17.825],[49.448,-24.774],[40.283,-24.774],[40.283,-65.46],[30.716,-65.46],[1.511,-23.666],[1.511,-17.825],[31.924,-17.825],[31.924,0]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.014,3.827],[0,0],[0,-3.424],[0,0]],"o":[[0,0],[0,0],[1.813,-3.021],[0,0],[-0.201,3.424],[0,0],[0,0]],"v":[[10.474,-24.774],[10.474,-24.976],[26.486,-47.232],[31.924,-56.9],[32.227,-56.9],[31.924,-46.628],[31.924,-24.774]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"4","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"R","size":150,"style":"500","w":53.8,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-2.014,-9.366],[-1.108,-1.913],[0,0],[2.216,9.467],[5.237,1.813],[0,0],[0,8.963],[3.424,3.021],[9.366,0],[4.431,-0.906]],"o":[[0,0],[0,0],[0,0],[7.956,0.302],[1.913,8.459],[0,0],[-1.41,-2.618],[-1.611,-7.05],[0,0],[7.15,-2.417],[0,-5.237],[-4.23,-3.827],[-6.042,0],[0,0]],"v":[[7.654,0],[16.415,0],[16.415,-29.407],[24.673,-29.407],[38.269,-16.214],[42.801,0],[51.865,0],[46.628,-18.631],[36.658,-32.327],[36.658,-32.629],[49.448,-49.951],[44.11,-62.842],[24.472,-68.381],[7.654,-66.971]],"c":true},"ix":2},"nm":"R","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-4.23,0],[0,-8.762],[9.366,0],[0,0]],"o":[[1.41,-0.403],[9.265,0.101],[0,7.755],[0,0],[0,0]],"v":[[16.415,-60.828],[25.076,-61.633],[40.686,-48.944],[25.378,-36.053],[16.415,-36.053]],"c":true},"ix":2},"nm":"R","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"R","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"3","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-7.352,0],[0,10.474],[8.057,1.611],[0,0],[0,6.747],[12.891,0],[3.424,-2.518],[0,0],[-5.237,0],[0,-5.237],[6.445,0],[0,0],[0,0],[0,0],[-0.101,-9.164],[11.38,0],[2.518,1.611]],"o":[[3.223,2.115],[15.71,0],[0,-9.164],[0,0],[8.057,-2.921],[0,-7.956],[-7.05,0],[0,0],[2.82,-2.014],[8.157,0],[0,7.755],[0,0],[0,0],[0,0],[8.56,0],[0.101,5.438],[-6.143,0],[0,0]],"v":[[4.23,-3.323],[21.249,1.108],[45.117,-18.53],[30.515,-35.349],[30.515,-35.55],[42.599,-50.958],[23.868,-66.568],[6.747,-61.533],[9.064,-55.087],[22.156,-59.418],[33.636,-49.548],[19.034,-38.47],[14.099,-38.47],[14.099,-31.824],[19.034,-31.824],[35.953,-18.732],[21.149,-6.042],[6.647,-10.172]],"c":true},"ix":2},"nm":"3","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"3","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"S","size":150,"style":"500","w":49.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.546,0],[0,10.474],[11.481,4.431],[0,6.345],[-9.265,0],[-2.216,-1.208],[0,0],[6.949,0],[0,-10.574],[-11.078,-3.928],[0,-6.345],[8.963,0],[3.928,2.417]],"o":[[3.625,2.417],[16.013,0],[0,-9.97],[-9.366,-3.625],[0,-4.633],[6.143,0],[0,0],[-3.021,-1.712],[-13.193,0],[0,9.567],[9.164,3.525],[0,6.848],[-6.042,0],[0,0]],"v":[[4.23,-3.323],[21.552,1.007],[45.319,-18.53],[27.997,-38.47],[14.502,-51.562],[27.292,-61.734],[40.182,-58.511],[42.599,-65.662],[27.594,-68.985],[5.64,-50.555],[23.566,-31.32],[36.356,-17.825],[22.156,-6.244],[6.445,-10.675]],"c":true},"ix":2},"nm":"S","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"S","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"l","size":150,"style":"500","w":23.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-71.503],[7.352,-71.503]],"c":true},"ix":2},"nm":"l","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"l","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"2","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,12.085],[14.099,0],[4.532,-3.827],[0,0],[-5.942,0],[0,-6.647],[16.718,-15.912],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[13.797,-13.293],[0,-9.366],[-7.553,0],[0,0],[3.021,-2.518],[9.769,0],[-0.101,9.869],[0,0],[0,0],[0,0]],"v":[[46.326,0],[46.326,-7.352],[16.919,-7.352],[16.919,-7.553],[22.156,-12.387],[44.714,-47.534],[24.673,-66.568],[6.143,-59.921],[8.963,-53.677],[22.861,-59.216],[35.852,-46.426],[11.481,-12.186],[4.532,-5.438],[4.532,0]],"c":true},"ix":2},"nm":"2","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"1","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[23.767,0],[32.327,0],[32.327,-65.46],[24.774,-65.46],[10.474,-57.806],[12.186,-51.059],[23.566,-57.202],[23.767,-57.202]],"c":true},"ix":2},"nm":"1","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/UXSample_1920x1080/E Interpolation_All_01_1920x1080.json b/external/rlottie/example/resource/UXSample_1920x1080/E Interpolation_All_01_1920x1080.json new file mode 100644 index 000000000..46cabbe11 --- /dev/null +++ b/external/rlottie/example/resource/UXSample_1920x1080/E Interpolation_All_01_1920x1080.json @@ -0,0 +1 @@ +{"v":"5.1.18","fr":30,"ip":0,"op":41,"w":1920,"h":1080,"nm":"E Interpolation_All_01","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1924.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[643.833,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1284.167,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[3.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"01 Linear Interpolation","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[111,244,0],"e":[639,244,0],"to":[88,0,0],"ti":[-88,0,0]},{"t":35}],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[40,40,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"02 Bezier Interpolation","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.119,"y":1},"o":{"x":0.341,"y":0.896},"n":"0p119_1_0p341_0p896","t":0,"s":[111,244,0],"e":[639,244,0],"to":[0,0,0],"ti":[0,0,0]},{"t":35}],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[40,40,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"03 Hold Interpolation","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"t":0,"s":[111,244,0],"h":1},{"t":35,"s":[639,244,0],"h":1}],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[40,40,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"04 Spatial Bezier Interpolation","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.119,"y":1},"o":{"x":0.341,"y":0.888},"n":"0p119_1_0p341_0p888","t":0,"s":[111,244,0],"e":[639,244,0],"to":[87.1999969482422,-42.4000015258789,0],"ti":[-118.400001525879,55.2000007629395,0]},{"t":35}],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[40,40,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"05 Rove Across Time","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.395,"y":0.334},"o":{"x":0.501,"y":0.701},"n":"0p395_0p334_0p501_0p701","t":0,"s":[111,244,0],"e":[572.148,244,0],"to":[72.73828125,0,0],"ti":[-135.300979614258,0,0]},{"i":{"x":0.532,"y":1},"o":{"x":0.115,"y":1},"n":"0p532_1_0p115_1","t":16.283,"s":[572.148,244,0],"e":[639,244,0],"to":[28.3884334564209,0,0],"ti":[-15.2617216110229,0,0]},{"t":35}],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[40,40,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[2448.799,1789]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.054901998183,0.631372967888,0.901961023667,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":6,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"div","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"E Interpolation_01 Linear Interpolation","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[324.499,163.512,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[72.458,72.458,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.739,-5.006],[0.381,-5.753],[-1.668,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.913,8.036],[-5.913,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.084,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1124.737,391.907],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.693,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.693,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.693,-1.035],[-1.366,0],[-0.693,1.034],[0,2.011],[0.692,1.024],[1.347,0]],"v":[[3.06,4.552],[4.099,0],[3.06,-4.537],[0.03,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[0,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.109,0],[-1.133,-1.396],[0,-2.693],[1.131,-1.405],[2.108,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.142,-1.396],[2.088,0],[1.131,1.395],[0,2.675],[-1.133,1.405],[-2.108,0]],"v":[[-4.86,6.134],[-6.557,0],[-4.845,-6.133],[0.03,-8.227],[4.86,-6.133],[6.557,0],[4.86,6.119],[0,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1106.702,392.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.172,-4.831],[1.2,-4.831],[1.2,10.861],[-1.172,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.284,0.293],[0,0.527],[-0.283,0.293],[-0.526,0],[-0.283,-0.293],[0,-0.507],[0.282,-0.293],[0.528,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.284,-0.293],[0.528,0],[0.282,0.293],[0,0.547],[-0.283,0.293],[-0.526,0]],"v":[[-1.216,-7.963],[-1.639,-9.193],[-1.216,-10.422],[-0.001,-10.861],[1.215,-10.422],[1.639,-9.222],[1.215,-7.963],[-0.001,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1093.321,389.081],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.637],[-2.297,-5.637],[-2.297,-10.262],[0.075,-10.262],[0.075,-5.637],[4.758,-5.637],[4.758,-3.616],[0.075,-3.616],[0.075,4.728],[0.777,7.304],[2.944,8.124],[4.554,7.861],[4.963,9.91],[2.563,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1082.384,389.887],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.303],[-0.566,0.625],[0,0],[1.142,-0.547],[0,-1.171],[-0.517,-0.458],[-1.014,0]],"o":[[0.654,-0.302],[0,0],[-2.439,0.02],[-1.142,0.547],[0,0.898],[0.517,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.087],[-1.816,0.762],[-3.528,3.337],[-2.752,5.373],[-0.454,6.061]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.128,0],[0.859,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.614,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.015,1.542],[-1.562,0],[-0.859,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.615,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.717,0]],"v":[[4.348,-6.923],[5.9,-3.191],[5.9,7.876],[3.733,7.876],[3.733,5.884],[-0.981,8.197],[-4.611,6.967],[-5.9,3.514],[-3.616,-0.614],[3.557,-1.962],[3.557,-2.986],[2.635,-5.21],[-0.073,-5.973],[-3.762,-5.152],[-4.377,-7.114],[0.219,-8.197]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1067.159,392.067],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.409,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.253,0.245],[0.352,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.664,7.875],[-2.664,-11.359],[-0.293,-11.359],[-0.293,7.671],[0.088,8.856],[1.288,9.223],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1054.993,388.759],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1040.265,392.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.995],[0,1.971],[0.684,1.025],[1.347,0],[0.594,-0.293],[0.546,-0.625],[0,0],[-0.674,-0.302],[-0.741,0]],"o":[[0.654,-0.996],[0,-1.991],[-0.683,-1.024],[-0.723,0],[-0.596,0.293],[0,0],[0.488,0.546],[0.673,0.303],[1.289,0]],"v":[[2.854,1.727],[3.835,-2.723],[2.81,-7.247],[-0.234,-8.783],[-2.21,-8.344],[-3.923,-6.967],[-3.923,1.493],[-2.181,2.766],[-0.059,3.22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.952,0],[0.693,0.312],[0.488,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.956,0]],"o":[[1.034,1.464],[0,2.557],[-1.083,1.434],[-0.82,0],[-0.693,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.527,-0.8],[0.761,-0.41],[1.854,0]],"v":[[4.743,-8.871],[6.294,-2.751],[4.669,3.236],[0.117,5.387],[-2.152,4.918],[-3.923,3.601],[-3.923,11.066],[-6.294,11.066],[-6.294,-10.686],[-4.099,-10.686],[-4.099,-8.637],[-2.167,-10.452],[0.41,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1022.932,394.936],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.585,-0.253],[0,0],[0.605,0],[0.555,-0.312],[0.448,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.743,-0.214],[-0.742,0],[-0.557,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.113,-1.678],[0.703,0]],"v":[[4.187,-7.627],[3.661,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.99,-7.686],[-1.99,-5.49],[2.255,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1007.823,391.936],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.703,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.702,-0.849],[-2.401,0]],"v":[[-3.967,-1.245],[4.024,-1.245],[2.942,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.811,-0.888],[-1.484,0],[-1.211,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.809,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.226,0],[-1.239,-1.444],[0,-2.596],[1.143,-1.445],[1.992,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.687],[-3.997,0.687],[-2.664,4.655],[0.776,5.986],[4.786,4.816],[5.693,6.689],[3.425,7.816],[0.63,8.212],[-4.568,6.046],[-6.427,0.014],[-4.714,-6.046],[0.102,-8.212],[4.758,-6.222],[6.427,-0.66]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[991.823,392.082],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.068,8.958],[-2.298,5.079],[-2.298,-3.616],[-4.963,-3.616],[-4.963,-5.637],[-2.298,-5.637],[-2.298,-10.262],[0.074,-10.262],[0.074,-5.637],[4.757,-5.637],[4.757,-3.616],[0.074,-3.616],[0.074,4.728],[0.776,7.304],[2.943,8.124],[4.553,7.861],[4.962,9.91],[2.562,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[976.83,389.887],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.85,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.537,0.498],[1.034,0],[0.625,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.849,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.742,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.738,-5.006],[0.381,-5.753],[-1.669,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[961.532,391.907],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.216,-10.598],[1.216,-10.598],[1.216,10.598],[-1.216,10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[947.581,389.344],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-0.253],[0,0],[0.605,0],[0.556,-0.312],[0.449,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.742,-0.214],[-0.742,0],[-0.556,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.114,-1.678],[0.704,0]],"v":[[4.187,-7.627],[3.659,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.992,-7.686],[-1.992,-5.49],[2.253,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[929.411,391.936],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.303],[-0.566,0.625],[0,0],[1.143,-0.547],[0,-1.171],[-0.518,-0.458],[-1.015,0]],"o":[[0.653,-0.302],[0,0],[-2.44,0.02],[-1.142,0.547],[0,0.898],[0.516,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.087],[-1.816,0.762],[-3.528,3.337],[-2.752,5.373],[-0.454,6.061]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.034,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.127,0],[0.86,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.615,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.016,1.542],[-1.562,0],[-0.858,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.614,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.718,0]],"v":[[4.347,-6.923],[5.899,-3.191],[5.899,7.876],[3.733,7.876],[3.733,5.884],[-0.981,8.197],[-4.612,6.967],[-5.9,3.514],[-3.616,-0.614],[3.557,-1.962],[3.557,-2.986],[2.634,-5.21],[-0.074,-5.973],[-3.762,-5.152],[-4.377,-7.114],[0.219,-8.197]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[912.883,392.067],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":4,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.687],[-3.997,0.687],[-2.664,4.655],[0.776,5.986],[4.786,4.816],[5.695,6.689],[3.425,7.816],[0.63,8.212],[-4.568,6.046],[-6.427,0.014],[-4.714,-6.046],[0.102,-8.212],[4.758,-6.222],[6.427,-0.66]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[896.603,392.082],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":4,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.739,-5.006],[0.381,-5.753],[-1.668,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.913,8.036],[-5.913,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.084,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[878.903,391.907],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.171,-4.831],[1.2,-4.831],[1.2,10.861],[-1.171,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.282,0.293],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.283,-0.293],[0,-0.507],[0.283,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.282,-0.293],[0.527,0],[0.283,0.293],[0,0.547],[-0.283,0.293],[-0.527,0]],"v":[[-1.215,-7.963],[-1.64,-9.193],[-1.215,-10.422],[0,-10.861],[1.215,-10.422],[1.64,-9.222],[1.215,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[865.084,389.081],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":4,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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.899,8.373],[5.899,10.598],[-5.899,10.598],[-5.899,-10.598],[-3.469,-10.598],[-3.469,8.373]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[853.093,389.345],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":2,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[4.01,-10.598],[4.01,10.598],[1.61,10.598],[1.61,-7.963],[-3.309,-6.265],[-4.011,-8.314],[1.96,-10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[826.99,389.345],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.742,1.425],[0,3.025],[0.741,1.425],[1.581,0],[0.741,-1.425],[0,-3.025],[-0.743,-1.425],[-1.581,0]],"o":[[0.741,-1.425],[0,-3.025],[-0.742,-1.425],[-1.562,0],[-0.743,1.425],[0,3.025],[0.741,1.425],[1.561,0]],"v":[[3.47,6.675],[4.582,0],[3.47,-6.674],[-0.014,-8.812],[-3.469,-6.674],[-4.581,0],[-3.469,6.675],[0.015,8.813]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.171,1.786],[0,3.747],[-1.161,1.786],[-2.381,0],[-1.172,-1.786],[0,-3.748],[1.161,-1.786],[2.381,0]],"o":[[-1.171,-1.786],[0,-3.748],[1.161,-1.786],[2.38,0],[1.171,1.786],[0,3.747],[-1.162,1.786],[-2.381,0]],"v":[[-5.313,8.3],[-7.07,0],[-5.328,-8.299],[-0.014,-10.979],[5.315,-8.299],[7.07,0],[5.328,8.3],[0.015,10.979]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[811.516,389.344],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":4,"cix":2,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.958,-1.112],[5.958,-1.112],[5.958,1.112],[-5.958,1.112]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[792.338,403.193],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":2,"cix":2,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.913,-3.031],[5.913,8.036],[3.542,8.036],[3.542,-2.826],[2.738,-5.006],[0.38,-5.753],[-1.669,-5.388],[-3.543,-4.26],[-3.543,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.718,-7.656],[-3.718,-5.929],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[773.848,391.907],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[755.812,392.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":4,"cix":2,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.171,-4.831],[1.201,-4.831],[1.201,10.861],[-1.171,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.293],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.283,-0.293],[0,-0.507],[0.283,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.527,0],[0.283,0.293],[0,0.547],[-0.283,0.293],[-0.527,0]],"v":[[-1.215,-7.963],[-1.639,-9.193],[-1.215,-10.422],[0,-10.861],[1.215,-10.422],[1.639,-9.222],[1.215,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[742.431,389.081],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":4,"cix":2,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.469,-0.547],[-0.976,0],[-0.547,0.176],[0,0],[0.879,0]],"o":[[-0.819,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.468,0.546],[0.527,0],[0,0],[-0.722,0.235],[-1.601,0]],"v":[[-1.068,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.963,-3.616],[-4.963,-5.637],[-2.297,-5.637],[-2.297,-10.262],[0.073,-10.262],[0.073,-5.637],[4.758,-5.637],[4.758,-3.616],[0.073,-3.616],[0.073,4.728],[0.776,7.304],[2.943,8.124],[4.552,7.861],[4.962,9.91],[2.561,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[731.494,389.887],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.303],[-0.566,0.625],[0,0],[1.142,-0.547],[0,-1.171],[-0.517,-0.458],[-1.014,0]],"o":[[0.654,-0.302],[0,0],[-2.439,0.02],[-1.142,0.547],[0,0.898],[0.517,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.087],[-1.815,0.762],[-3.528,3.337],[-2.752,5.373],[-0.454,6.061]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.128,0],[0.859,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.614,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.015,1.542],[-1.562,0],[-0.859,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.615,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.717,0]],"v":[[4.348,-6.923],[5.9,-3.191],[5.9,7.876],[3.733,7.876],[3.733,5.884],[-0.981,8.197],[-4.611,6.967],[-5.899,3.514],[-3.616,-0.614],[3.557,-1.962],[3.557,-2.986],[2.635,-5.21],[-0.073,-5.973],[-3.762,-5.152],[-4.377,-7.114],[0.22,-8.197]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[716.27,392.067],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":4,"cix":2,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.41,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.254,0.245],[0.351,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.664,7.875],[-2.664,-11.359],[-0.293,-11.359],[-0.293,7.671],[0.087,8.856],[1.288,9.223],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[704.103,388.759],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":2,"cix":2,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[689.376,392.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":4,"cix":2,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.995],[0,1.971],[0.683,1.025],[1.347,0],[0.595,-0.293],[0.546,-0.625],[0,0],[-0.673,-0.302],[-0.742,0]],"o":[[0.653,-0.996],[0,-1.991],[-0.684,-1.024],[-0.723,0],[-0.595,0.293],[0,0],[0.487,0.546],[0.674,0.303],[1.288,0]],"v":[[2.855,1.727],[3.835,-2.723],[2.811,-7.247],[-0.234,-8.783],[-2.21,-8.344],[-3.922,-6.967],[-3.922,1.493],[-2.181,2.766],[-0.058,3.22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.951,0],[0.694,0.312],[0.487,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.957,0]],"o":[[1.034,1.464],[0,2.557],[-1.084,1.434],[-0.821,0],[-0.692,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.526,-0.8],[0.761,-0.41],[1.853,0]],"v":[[4.744,-8.871],[6.294,-2.751],[4.67,3.236],[0.118,5.387],[-2.152,4.918],[-3.922,3.601],[-3.922,11.066],[-6.294,11.066],[-6.294,-10.686],[-4.098,-10.686],[-4.098,-8.637],[-2.166,-10.452],[0.411,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[672.041,394.936],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":4,"cix":2,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-0.253],[0,0],[0.605,0],[0.556,-0.312],[0.449,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.742,-0.214],[-0.742,0],[-0.556,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.114,-1.678],[0.704,0]],"v":[[4.187,-7.627],[3.659,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.992,-7.686],[-1.992,-5.49],[2.253,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[656.934,391.936],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":2,"cix":2,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.687],[-3.997,0.687],[-2.664,4.655],[0.776,5.986],[4.786,4.816],[5.695,6.689],[3.425,7.816],[0.63,8.212],[-4.568,6.046],[-6.427,0.014],[-4.714,-6.046],[0.102,-8.212],[4.758,-6.222],[6.427,-0.66]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[640.932,392.082],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":4,"cix":2,"ix":32,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.637],[-2.297,-5.637],[-2.297,-10.262],[0.075,-10.262],[0.075,-5.637],[4.758,-5.637],[4.758,-3.616],[0.075,-3.616],[0.075,4.728],[0.777,7.304],[2.944,8.124],[4.554,7.861],[4.963,9.91],[2.563,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[625.94,389.887],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 33","np":2,"cix":2,"ix":33,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.85,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.537,0.498],[1.034,0],[0.625,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.849,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.742,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.738,-5.006],[0.381,-5.753],[-1.669,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[610.642,391.907],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 34","np":2,"cix":2,"ix":34,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.216,-10.598],[1.216,-10.598],[1.216,10.598],[-1.216,10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[596.692,389.344],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 35","np":2,"cix":2,"ix":35,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[6.383,8.402],[6.383,10.598],[-6.383,10.598],[-6.383,-10.598],[6.03,-10.598],[6.03,-8.403],[-3.952,-8.403],[-3.952,-1.347],[3.513,-1.347],[3.513,0.878],[-3.952,0.878],[-3.952,8.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[575.681,389.345],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 36","np":2,"cix":2,"ix":36,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"E Interpolation_02 Bezier Interpolation","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[964.374,113.924,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[72.458,72.458,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.739,-5.006],[0.381,-5.753],[-1.668,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.913,8.036],[-5.913,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.084,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1127.343,460.157],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.693,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.693,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.693,-1.035],[-1.366,0],[-0.693,1.034],[0,2.011],[0.692,1.024],[1.347,0]],"v":[[3.06,4.552],[4.099,0],[3.06,-4.537],[0.03,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[0,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.109,0],[-1.133,-1.396],[0,-2.693],[1.131,-1.405],[2.108,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.142,-1.396],[2.088,0],[1.131,1.395],[0,2.675],[-1.133,1.405],[-2.108,0]],"v":[[-4.86,6.134],[-6.557,0],[-4.845,-6.133],[0.03,-8.227],[4.86,-6.133],[6.557,0],[4.86,6.119],[0,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1109.308,460.347],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.171,-4.831],[1.201,-4.831],[1.201,10.861],[-1.171,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.293],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.284,-0.293],[0,-0.507],[0.282,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.527,0],[0.282,0.293],[0,0.547],[-0.284,0.293],[-0.527,0]],"v":[[-1.215,-7.963],[-1.639,-9.193],[-1.215,-10.422],[0,-10.861],[1.216,-10.422],[1.639,-9.222],[1.216,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1095.926,457.331],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.637],[-2.297,-5.637],[-2.297,-10.262],[0.075,-10.262],[0.075,-5.637],[4.758,-5.637],[4.758,-3.616],[0.075,-3.616],[0.075,4.728],[0.777,7.304],[2.944,8.124],[4.554,7.861],[4.963,9.91],[2.563,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1084.989,458.137],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.303],[-0.566,0.625],[0,0],[1.143,-0.547],[0,-1.171],[-0.518,-0.458],[-1.015,0]],"o":[[0.653,-0.302],[0,0],[-2.44,0.02],[-1.142,0.547],[0,0.898],[0.516,0.459],[0.8,0]],"v":[[1.728,5.606],[3.557,4.215],[3.557,-0.087],[-1.816,0.762],[-3.527,3.337],[-2.751,5.373],[-0.453,6.061]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.034,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.127,0],[0.86,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.615,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.016,1.542],[-1.562,0],[-0.858,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.614,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.718,0]],"v":[[4.348,-6.923],[5.9,-3.191],[5.9,7.876],[3.734,7.876],[3.734,5.884],[-0.98,8.197],[-4.612,6.967],[-5.9,3.514],[-3.615,-0.614],[3.557,-1.962],[3.557,-2.986],[2.635,-5.21],[-0.073,-5.973],[-3.761,-5.152],[-4.376,-7.114],[0.219,-8.197]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1069.765,460.317],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.409,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.253,0.245],[0.352,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.664,7.875],[-2.664,-11.359],[-0.293,-11.359],[-0.293,7.671],[0.088,8.856],[1.288,9.223],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1057.599,457.009],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1042.871,460.347],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.995],[0,1.971],[0.684,1.025],[1.347,0],[0.594,-0.293],[0.546,-0.625],[0,0],[-0.674,-0.302],[-0.741,0]],"o":[[0.654,-0.996],[0,-1.991],[-0.683,-1.024],[-0.723,0],[-0.596,0.293],[0,0],[0.488,0.546],[0.673,0.303],[1.289,0]],"v":[[2.854,1.727],[3.835,-2.723],[2.81,-7.247],[-0.234,-8.783],[-2.21,-8.344],[-3.923,-6.967],[-3.923,1.493],[-2.181,2.766],[-0.059,3.22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.952,0],[0.693,0.312],[0.488,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.956,0]],"o":[[1.034,1.464],[0,2.557],[-1.083,1.434],[-0.82,0],[-0.693,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.527,-0.8],[0.761,-0.41],[1.854,0]],"v":[[4.743,-8.871],[6.294,-2.751],[4.669,3.236],[0.117,5.387],[-2.152,4.918],[-3.923,3.601],[-3.923,11.066],[-6.294,11.066],[-6.294,-10.686],[-4.099,-10.686],[-4.099,-8.637],[-2.167,-10.452],[0.41,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1025.538,463.186],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.585,-0.253],[0,0],[0.605,0],[0.555,-0.312],[0.448,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.743,-0.214],[-0.742,0],[-0.557,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.113,-1.678],[0.703,0]],"v":[[4.187,-7.627],[3.661,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.99,-7.686],[-1.99,-5.49],[2.255,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1010.429,460.186],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.703,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.702,-0.849],[-2.401,0]],"v":[[-3.967,-1.245],[4.024,-1.245],[2.942,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.811,-0.888],[-1.484,0],[-1.211,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.809,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.226,0],[-1.239,-1.444],[0,-2.596],[1.143,-1.445],[1.992,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.687],[-3.997,0.687],[-2.664,4.655],[0.776,5.986],[4.786,4.816],[5.693,6.689],[3.425,7.816],[0.63,8.212],[-4.568,6.046],[-6.427,0.014],[-4.714,-6.046],[0.102,-8.212],[4.758,-6.222],[6.427,-0.66]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[994.428,460.332],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.637],[-2.297,-5.637],[-2.297,-10.262],[0.075,-10.262],[0.075,-5.637],[4.758,-5.637],[4.758,-3.616],[0.075,-3.616],[0.075,4.728],[0.777,7.304],[2.944,8.124],[4.554,7.861],[4.963,9.91],[2.563,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[979.436,458.137],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.85,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.537,0.498],[1.034,0],[0.625,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.849,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.742,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.738,-5.006],[0.381,-5.753],[-1.669,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[964.137,460.157],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.216,-10.598],[1.216,-10.598],[1.216,10.598],[-1.216,10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[950.187,457.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-0.253],[0,0],[0.605,0],[0.556,-0.312],[0.449,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.742,-0.214],[-0.742,0],[-0.556,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.114,-1.678],[0.704,0]],"v":[[4.187,-7.627],[3.659,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.992,-7.686],[-1.992,-5.49],[2.253,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[932.017,460.186],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.687],[-3.997,0.687],[-2.664,4.655],[0.776,5.986],[4.786,4.816],[5.695,6.689],[3.425,7.816],[0.63,8.212],[-4.568,6.046],[-6.427,0.014],[-4.714,-6.046],[0.102,-8.212],[4.758,-6.222],[6.427,-0.66]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[916.015,460.332],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":4,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.172,-4.831],[1.2,-4.831],[1.2,10.861],[-1.172,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.284,0.293],[0,0.527],[-0.283,0.293],[-0.526,0],[-0.283,-0.293],[0,-0.507],[0.282,-0.293],[0.528,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.284,-0.293],[0.528,0],[0.282,0.293],[0,0.547],[-0.283,0.293],[-0.526,0]],"v":[[-1.216,-7.963],[-1.639,-9.193],[-1.216,-10.422],[-0.001,-10.861],[1.215,-10.422],[1.639,-9.222],[1.215,-7.963],[-0.001,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[902.825,457.331],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":4,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.549,5.826],[5.549,7.846],[-5.549,7.846],[-5.549,5.826],[2.737,-5.826],[-5.314,-5.826],[-5.314,-7.846],[5.432,-7.846],[5.432,-5.826],[-2.826,5.826]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[890.805,460.347],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.687],[-3.997,0.687],[-2.664,4.655],[0.776,5.986],[4.786,4.816],[5.695,6.689],[3.425,7.816],[0.63,8.212],[-4.568,6.046],[-6.427,0.014],[-4.714,-6.046],[0.102,-8.212],[4.758,-6.222],[6.427,-0.66]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[874.877,460.332],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":4,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.644,0.645],[0,1.269],[0.664,0.634],[1.288,0],[0,0],[0,0],[0,0]],"o":[[0.645,-0.644],[0,-1.249],[-0.663,-0.634],[0,0],[0,0],[0,0],[1.249,0]],"v":[[3.776,7.436],[4.743,4.567],[3.747,1.742],[0.82,0.79],[-4.86,0.79],[-4.86,8.402],[0.936,8.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.643,0.576],[0,1.132],[0.663,0.615],[1.288,0]],"o":[[0,0],[0,0],[1.249,0],[0.645,-0.576],[0,-1.19],[-0.663,-0.615],[0,0]],"v":[[-4.86,-8.402],[-4.86,-1.347],[-0.235,-1.347],[2.605,-2.21],[3.572,-4.772],[2.576,-7.48],[-0.352,-8.402]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,-2.752],[1.141,-1.063],[2.029,0],[0,0],[0,0],[0,0],[-1.113,-1.014],[0,-1.835],[0.459,-0.712],[0.897,-0.273]],"o":[[0,1.893],[-1.142,1.064],[0,0],[0,0],[0,0],[1.991,0],[1.112,1.015],[0,1.112],[-0.459,0.713],[2.615,0.683]],"v":[[7.29,4.567],[5.577,9.002],[0.82,10.598],[-7.29,10.598],[-7.29,-10.598],[-0.235,-10.598],[4.421,-9.076],[6.089,-4.801],[5.401,-2.064],[3.367,-0.585]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[856.797,457.595],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":5,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.361,0.712],[0,0.703],[0.674,0.605],[1.191,0],[0.859,-0.283],[0.722,-0.508],[0,0],[-1.152,0.361],[-1.094,0],[-1.113,-0.986],[0,-1.62],[0.459,-0.985],[1.093,-1.327],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.898,-1.113],[0.36,-0.713],[0,-1.034],[-0.673,-0.605],[-0.839,0],[-0.859,0.283],[0,0],[0.742,-0.586],[1.151,-0.361],[1.834,0],[1.112,0.985],[0,0.957],[-0.459,0.986],[0,0],[0,0]],"v":[[6.266,8.68],[6.266,10.789],[-6.208,10.789],[-6.208,8.651],[1.17,-0.307],[3.059,-3.044],[3.6,-5.167],[2.59,-7.626],[-0.206,-8.534],[-2.753,-8.109],[-5.124,-6.923],[-6.266,-8.826],[-3.426,-10.246],[-0.059,-10.789],[4.362,-9.31],[6.031,-5.401],[5.342,-2.488],[3.016,0.981],[-3.397,8.68]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[829.362,457.404],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.742,1.425],[0,3.025],[0.741,1.425],[1.581,0],[0.741,-1.425],[0,-3.025],[-0.743,-1.425],[-1.581,0]],"o":[[0.741,-1.425],[0,-3.025],[-0.742,-1.425],[-1.562,0],[-0.743,1.425],[0,3.025],[0.741,1.425],[1.561,0]],"v":[[3.47,6.675],[4.582,0],[3.47,-6.674],[-0.014,-8.812],[-3.469,-6.674],[-4.581,0],[-3.469,6.675],[0.015,8.813]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.171,1.786],[0,3.747],[-1.161,1.786],[-2.381,0],[-1.172,-1.786],[0,-3.748],[1.161,-1.786],[2.381,0]],"o":[[-1.171,-1.786],[0,-3.748],[1.161,-1.786],[2.38,0],[1.171,1.786],[0,3.747],[-1.162,1.786],[-2.381,0]],"v":[[-5.313,8.3],[-7.07,0],[-5.328,-8.299],[-0.014,-10.979],[5.315,-8.299],[7.07,0],[5.328,8.3],[0.015,10.979]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[811.516,457.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":4,"cix":2,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.958,-1.112],[5.958,-1.112],[5.958,1.112],[-5.958,1.112]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[792.338,471.443],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":2,"cix":2,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.913,-3.031],[5.913,8.036],[3.542,8.036],[3.542,-2.826],[2.738,-5.006],[0.38,-5.753],[-1.669,-5.388],[-3.543,-4.26],[-3.543,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.718,-7.656],[-3.718,-5.929],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[773.848,460.157],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[755.812,460.347],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":4,"cix":2,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.171,-4.831],[1.201,-4.831],[1.201,10.861],[-1.171,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.293],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.283,-0.293],[0,-0.507],[0.283,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.527,0],[0.283,0.293],[0,0.547],[-0.283,0.293],[-0.527,0]],"v":[[-1.215,-7.963],[-1.639,-9.193],[-1.215,-10.422],[0,-10.861],[1.215,-10.422],[1.639,-9.222],[1.215,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[742.431,457.331],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":4,"cix":2,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.469,-0.547],[-0.976,0],[-0.547,0.176],[0,0],[0.879,0]],"o":[[-0.819,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.468,0.546],[0.527,0],[0,0],[-0.722,0.235],[-1.601,0]],"v":[[-1.068,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.963,-3.616],[-4.963,-5.637],[-2.297,-5.637],[-2.297,-10.262],[0.073,-10.262],[0.073,-5.637],[4.758,-5.637],[4.758,-3.616],[0.073,-3.616],[0.073,4.728],[0.776,7.304],[2.943,8.124],[4.552,7.861],[4.962,9.91],[2.561,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[731.494,458.137],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.303],[-0.566,0.625],[0,0],[1.142,-0.547],[0,-1.171],[-0.517,-0.458],[-1.014,0]],"o":[[0.654,-0.302],[0,0],[-2.439,0.02],[-1.142,0.547],[0,0.898],[0.517,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.087],[-1.815,0.762],[-3.528,3.337],[-2.752,5.373],[-0.454,6.061]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.128,0],[0.859,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.614,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.015,1.542],[-1.562,0],[-0.859,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.615,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.717,0]],"v":[[4.348,-6.923],[5.9,-3.191],[5.9,7.876],[3.733,7.876],[3.733,5.884],[-0.981,8.197],[-4.611,6.967],[-5.899,3.514],[-3.616,-0.614],[3.557,-1.962],[3.557,-2.986],[2.635,-5.21],[-0.073,-5.973],[-3.762,-5.152],[-4.377,-7.114],[0.22,-8.197]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[716.27,460.317],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":4,"cix":2,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.41,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.254,0.245],[0.351,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.664,7.875],[-2.664,-11.359],[-0.293,-11.359],[-0.293,7.671],[0.087,8.856],[1.288,9.223],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[704.103,457.009],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":2,"cix":2,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[689.376,460.347],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":4,"cix":2,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.995],[0,1.971],[0.683,1.025],[1.347,0],[0.595,-0.293],[0.546,-0.625],[0,0],[-0.673,-0.302],[-0.742,0]],"o":[[0.653,-0.996],[0,-1.991],[-0.684,-1.024],[-0.723,0],[-0.595,0.293],[0,0],[0.487,0.546],[0.674,0.303],[1.288,0]],"v":[[2.855,1.727],[3.835,-2.723],[2.811,-7.247],[-0.234,-8.783],[-2.21,-8.344],[-3.922,-6.967],[-3.922,1.493],[-2.181,2.766],[-0.058,3.22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.951,0],[0.694,0.312],[0.487,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.957,0]],"o":[[1.034,1.464],[0,2.557],[-1.084,1.434],[-0.821,0],[-0.692,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.526,-0.8],[0.761,-0.41],[1.853,0]],"v":[[4.744,-8.871],[6.294,-2.751],[4.67,3.236],[0.118,5.387],[-2.152,4.918],[-3.922,3.601],[-3.922,11.066],[-6.294,11.066],[-6.294,-10.686],[-4.098,-10.686],[-4.098,-8.637],[-2.166,-10.452],[0.411,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[672.041,463.186],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":4,"cix":2,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-0.253],[0,0],[0.605,0],[0.556,-0.312],[0.449,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.742,-0.214],[-0.742,0],[-0.556,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.114,-1.678],[0.704,0]],"v":[[4.187,-7.627],[3.659,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.992,-7.686],[-1.992,-5.49],[2.253,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[656.934,460.186],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":2,"cix":2,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.687],[-3.997,0.687],[-2.664,4.655],[0.776,5.986],[4.786,4.816],[5.695,6.689],[3.425,7.816],[0.63,8.212],[-4.568,6.046],[-6.427,0.014],[-4.714,-6.046],[0.102,-8.212],[4.758,-6.222],[6.427,-0.66]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[640.932,460.332],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":4,"cix":2,"ix":32,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.637],[-2.297,-5.637],[-2.297,-10.262],[0.075,-10.262],[0.075,-5.637],[4.758,-5.637],[4.758,-3.616],[0.075,-3.616],[0.075,4.728],[0.777,7.304],[2.944,8.124],[4.554,7.861],[4.963,9.91],[2.563,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[625.94,458.137],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 33","np":2,"cix":2,"ix":33,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.85,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.537,0.498],[1.034,0],[0.625,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.849,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.742,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.738,-5.006],[0.381,-5.753],[-1.669,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[610.642,460.157],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 34","np":2,"cix":2,"ix":34,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.216,-10.598],[1.216,-10.598],[1.216,10.598],[-1.216,10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[596.692,457.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 35","np":2,"cix":2,"ix":35,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[6.383,8.402],[6.383,10.598],[-6.383,10.598],[-6.383,-10.598],[6.03,-10.598],[6.03,-8.403],[-3.952,-8.403],[-3.952,-1.347],[3.513,-1.347],[3.513,0.878],[-3.952,0.878],[-3.952,8.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[575.681,457.595],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 36","np":2,"cix":2,"ix":36,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"E Interpolation_03 Hold Interpolation","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1605.124,64.606,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[72.458,72.458,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.739,-5.006],[0.381,-5.753],[-1.668,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.913,8.036],[-5.913,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.084,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1104.68,528.407],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1086.644,528.597],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.171,-4.831],[1.201,-4.831],[1.201,10.861],[-1.171,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.293],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.284,-0.293],[0,-0.507],[0.282,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.527,0],[0.282,0.293],[0,0.547],[-0.284,0.293],[-0.527,0]],"v":[[-1.215,-7.963],[-1.639,-9.193],[-1.215,-10.422],[0,-10.861],[1.216,-10.422],[1.639,-9.222],[1.216,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1073.263,525.581],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.08],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.636],[-2.297,-5.636],[-2.297,-10.261],[0.075,-10.261],[0.075,-5.636],[4.758,-5.636],[4.758,-3.616],[0.075,-3.616],[0.075,4.729],[0.777,7.305],[2.944,8.125],[4.554,7.861],[4.963,9.91],[2.563,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1062.326,526.387],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.303],[-0.566,0.625],[0,0],[1.142,-0.547],[0,-1.171],[-0.517,-0.458],[-1.014,0]],"o":[[0.654,-0.302],[0,0],[-2.439,0.02],[-1.142,0.547],[0,0.898],[0.517,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.088],[-1.816,0.761],[-3.528,3.337],[-2.752,5.372],[-0.454,6.06]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.128,0],[0.859,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.614,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.015,1.542],[-1.562,0],[-0.859,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.615,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.717,0]],"v":[[4.348,-6.924],[5.9,-3.191],[5.9,7.875],[3.733,7.875],[3.733,5.884],[-0.981,8.197],[-4.611,6.967],[-5.9,3.513],[-3.616,-0.615],[3.557,-1.962],[3.557,-2.987],[2.635,-5.211],[-0.073,-5.973],[-3.762,-5.153],[-4.377,-7.115],[0.219,-8.198]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1047.102,528.567],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.41,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.254,0.245],[0.351,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.665,7.875],[-2.665,-11.359],[-0.293,-11.359],[-0.293,7.671],[0.087,8.856],[1.288,9.223],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1034.935,525.259],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1020.208,528.597],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.995],[0,1.971],[0.683,1.025],[1.347,0],[0.595,-0.293],[0.546,-0.625],[0,0],[-0.673,-0.302],[-0.742,0]],"o":[[0.653,-0.996],[0,-1.991],[-0.684,-1.024],[-0.723,0],[-0.595,0.293],[0,0],[0.487,0.546],[0.674,0.303],[1.288,0]],"v":[[2.855,1.727],[3.835,-2.722],[2.811,-7.247],[-0.234,-8.782],[-2.21,-8.344],[-3.922,-6.967],[-3.922,1.494],[-2.181,2.766],[-0.058,3.221]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.951,0],[0.694,0.312],[0.487,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.957,0]],"o":[[1.034,1.464],[0,2.557],[-1.084,1.434],[-0.821,0],[-0.692,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.526,-0.8],[0.761,-0.41],[1.853,0]],"v":[[4.744,-8.87],[6.294,-2.751],[4.67,3.236],[0.118,5.387],[-2.152,4.919],[-3.922,3.602],[-3.922,11.067],[-6.294,11.067],[-6.294,-10.686],[-4.098,-10.686],[-4.098,-8.636],[-2.166,-10.451],[0.411,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1002.873,531.436],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.585,-0.253],[0,0],[0.605,0],[0.555,-0.312],[0.448,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.743,-0.214],[-0.742,0],[-0.557,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.113,-1.678],[0.703,0]],"v":[[4.187,-7.627],[3.661,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.99,-7.686],[-1.99,-5.49],[2.255,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[987.766,528.436],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.802],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.687],[-3.997,0.687],[-2.664,4.654],[0.776,5.986],[4.786,4.815],[5.695,6.689],[3.425,7.816],[0.63,8.212],[-4.568,6.045],[-6.427,0.014],[-4.714,-6.046],[0.102,-8.213],[4.758,-6.222],[6.427,-0.66]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[971.764,528.582],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.068,8.958],[-2.298,5.08],[-2.298,-3.616],[-4.963,-3.616],[-4.963,-5.636],[-2.298,-5.636],[-2.298,-10.261],[0.074,-10.261],[0.074,-5.636],[4.757,-5.636],[4.757,-3.616],[0.074,-3.616],[0.074,4.729],[0.776,7.305],[2.943,8.125],[4.553,7.861],[4.962,9.91],[2.562,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[956.773,526.387],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.85,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.537,0.498],[1.034,0],[0.625,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.849,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.742,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.738,-5.006],[0.381,-5.753],[-1.669,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[941.474,528.407],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.216,-10.598],[1.216,-10.598],[1.216,10.598],[-1.216,10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[927.523,525.844],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.596,0.293],[-0.547,0.625],[0,0],[0.674,0.302],[0.741,0],[0.653,-0.995],[0,-1.971],[-0.683,-1.025],[-1.346,0]],"o":[[0.596,-0.292],[0,0],[-0.488,-0.546],[-0.673,-0.303],[-1.288,0],[-0.655,0.995],[0,1.991],[0.683,1.025],[0.723,0]],"v":[[2.211,8.739],[3.923,7.363],[3.923,-1.098],[2.181,-2.371],[0.06,-2.825],[-2.854,-1.332],[-3.836,3.118],[-2.811,7.641],[0.233,9.178]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0.762,-0.41],[0.956,0],[1.034,1.464],[0,2.616],[-1.083,1.435],[-1.952,0],[-0.693,-0.312],[-0.488,-0.566],[0,0]],"o":[[0,0],[0,0],[0,0],[-0.528,0.8],[-0.761,0.41],[-1.855,0],[-1.035,-1.464],[0,-2.556],[1.083,-1.434],[0.819,0],[0.693,0.312],[0,0],[0,0]],"v":[[6.294,-11.462],[6.294,11.081],[4.099,11.081],[4.099,9.032],[2.167,10.847],[-0.41,11.462],[-4.742,9.266],[-6.294,3.147],[-4.669,-2.84],[-0.117,-4.991],[2.151,-4.523],[3.923,-3.206],[3.923,-11.462]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[905.225,525.362],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":4,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.409,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.253,0.245],[0.352,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.664,7.875],[-2.664,-11.359],[-0.293,-11.359],[-0.293,7.671],[0.088,8.856],[1.288,9.223],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[892.312,525.259],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.693,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.693,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.693,-1.035],[-1.366,0],[-0.693,1.034],[0,2.011],[0.692,1.024],[1.347,0]],"v":[[3.06,4.552],[4.098,0],[3.06,-4.537],[0.029,-6.089],[-3.06,-4.537],[-4.099,0],[-3.06,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.109,0],[-1.133,-1.396],[0,-2.693],[1.131,-1.405],[2.108,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.142,-1.396],[2.088,0],[1.131,1.395],[0,2.675],[-1.133,1.405],[-2.108,0]],"v":[[-4.861,6.134],[-6.557,0],[-4.846,-6.133],[0.029,-8.227],[4.86,-6.133],[6.557,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[877.585,528.597],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":4,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[7.466,-10.598],[7.466,10.598],[5.035,10.598],[5.035,0.937],[-5.035,0.937],[-5.035,10.598],[-7.466,10.598],[-7.466,-10.598],[-5.035,-10.598],[-5.035,-1.259],[5.035,-1.259],[5.035,-10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[857.85,525.845],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.112,-1.151],[0,-1.874],[0.585,-1.044],[1.054,-0.566],[1.405,0],[1.102,0.302],[0.801,0.508],[0,0],[-0.878,-0.263],[-0.801,0],[-0.791,0.81],[0,1.444],[0.761,0.761],[1.367,0],[0.586,-0.176],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[1.113,1.152],[0,1.346],[-0.586,1.044],[-1.055,0.565],[-1.015,0],[-1.103,-0.303],[0,0],[0.819,0.468],[0.878,0.263],[1.424,0],[0.79,-0.81],[0,-1.347],[-0.762,-0.761],[-0.742,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.854,0.039]],"v":[[4.86,-0.6],[6.529,3.938],[5.651,7.524],[3.192,9.94],[-0.497,10.788],[-3.674,10.335],[-6.529,9.12],[-5.562,7.041],[-3.015,8.139],[-0.497,8.534],[2.826,7.319],[4.011,3.938],[2.87,0.776],[-0.322,-0.366],[-2.313,-0.102],[-3.22,-1.273],[3.22,-8.681],[-6.177,-8.681],[-6.177,-10.788],[5.915,-10.788],[5.915,-8.681],[0.41,-2.386]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[829.624,526.035],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.742,1.425],[0,3.025],[0.741,1.425],[1.581,0],[0.741,-1.425],[0,-3.025],[-0.743,-1.425],[-1.581,0]],"o":[[0.741,-1.425],[0,-3.025],[-0.742,-1.425],[-1.562,0],[-0.743,1.425],[0,3.025],[0.741,1.425],[1.561,0]],"v":[[3.47,6.675],[4.582,0],[3.47,-6.674],[-0.014,-8.812],[-3.469,-6.674],[-4.581,0],[-3.469,6.675],[0.015,8.813]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.171,1.786],[0,3.747],[-1.161,1.786],[-2.381,0],[-1.172,-1.786],[0,-3.748],[1.161,-1.786],[2.381,0]],"o":[[-1.171,-1.786],[0,-3.748],[1.161,-1.786],[2.38,0],[1.171,1.786],[0,3.747],[-1.162,1.786],[-2.381,0]],"v":[[-5.313,8.3],[-7.07,0],[-5.328,-8.299],[-0.014,-10.979],[5.315,-8.299],[7.07,0],[5.328,8.3],[0.015,10.979]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[811.516,525.844],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":4,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.958,-1.112],[5.958,-1.112],[5.958,1.112],[-5.958,1.112]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[792.338,539.693],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.913,-3.031],[5.913,8.036],[3.542,8.036],[3.542,-2.826],[2.738,-5.006],[0.38,-5.753],[-1.669,-5.388],[-3.543,-4.26],[-3.543,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.718,-7.656],[-3.718,-5.929],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[773.848,528.407],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":2,"cix":2,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[755.812,528.597],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":4,"cix":2,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.171,-4.831],[1.201,-4.831],[1.201,10.861],[-1.171,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.293],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.283,-0.293],[0,-0.507],[0.283,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.527,0],[0.283,0.293],[0,0.547],[-0.283,0.293],[-0.527,0]],"v":[[-1.215,-7.963],[-1.639,-9.193],[-1.215,-10.422],[0,-10.861],[1.215,-10.422],[1.639,-9.222],[1.215,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[742.431,525.581],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":4,"cix":2,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.469,-0.547],[-0.976,0],[-0.547,0.176],[0,0],[0.879,0]],"o":[[-0.819,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.468,0.546],[0.527,0],[0,0],[-0.722,0.235],[-1.601,0]],"v":[[-1.068,8.958],[-2.297,5.08],[-2.297,-3.616],[-4.963,-3.616],[-4.963,-5.636],[-2.297,-5.636],[-2.297,-10.261],[0.073,-10.261],[0.073,-5.636],[4.758,-5.636],[4.758,-3.616],[0.073,-3.616],[0.073,4.729],[0.776,7.305],[2.943,8.125],[4.552,7.861],[4.962,9.91],[2.561,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[731.494,526.387],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":2,"cix":2,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.303],[-0.566,0.625],[0,0],[1.142,-0.547],[0,-1.171],[-0.517,-0.458],[-1.014,0]],"o":[[0.654,-0.302],[0,0],[-2.439,0.02],[-1.142,0.547],[0,0.898],[0.517,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.088],[-1.815,0.761],[-3.528,3.337],[-2.752,5.372],[-0.454,6.06]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.128,0],[0.859,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.614,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.015,1.542],[-1.562,0],[-0.859,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.615,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.717,0]],"v":[[4.348,-6.924],[5.9,-3.191],[5.9,7.875],[3.733,7.875],[3.733,5.884],[-0.981,8.197],[-4.611,6.967],[-5.899,3.513],[-3.616,-0.615],[3.557,-1.962],[3.557,-2.987],[2.635,-5.211],[-0.073,-5.973],[-3.762,-5.153],[-4.377,-7.115],[0.22,-8.198]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[716.27,528.567],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":4,"cix":2,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.41,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.254,0.245],[0.351,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.664,7.875],[-2.664,-11.359],[-0.293,-11.359],[-0.293,7.671],[0.087,8.856],[1.288,9.223],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[704.103,525.259],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[689.376,528.597],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":4,"cix":2,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.995],[0,1.971],[0.683,1.025],[1.347,0],[0.595,-0.293],[0.546,-0.625],[0,0],[-0.673,-0.302],[-0.742,0]],"o":[[0.653,-0.996],[0,-1.991],[-0.684,-1.024],[-0.723,0],[-0.595,0.293],[0,0],[0.487,0.546],[0.674,0.303],[1.288,0]],"v":[[2.855,1.727],[3.835,-2.722],[2.811,-7.247],[-0.234,-8.782],[-2.21,-8.344],[-3.922,-6.967],[-3.922,1.494],[-2.181,2.766],[-0.058,3.221]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.951,0],[0.694,0.312],[0.487,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.957,0]],"o":[[1.034,1.464],[0,2.557],[-1.084,1.434],[-0.821,0],[-0.692,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.526,-0.8],[0.761,-0.41],[1.853,0]],"v":[[4.744,-8.87],[6.294,-2.751],[4.67,3.236],[0.118,5.387],[-2.152,4.919],[-3.922,3.602],[-3.922,11.067],[-6.294,11.067],[-6.294,-10.686],[-4.098,-10.686],[-4.098,-8.636],[-2.166,-10.451],[0.411,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[672.041,531.436],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":4,"cix":2,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-0.253],[0,0],[0.605,0],[0.556,-0.312],[0.449,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.742,-0.214],[-0.742,0],[-0.556,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.114,-1.678],[0.704,0]],"v":[[4.187,-7.627],[3.659,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.992,-7.686],[-1.992,-5.49],[2.253,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[656.934,528.436],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":2,"cix":2,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.802],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.687],[-3.997,0.687],[-2.664,4.654],[0.776,5.986],[4.786,4.815],[5.695,6.689],[3.425,7.816],[0.63,8.212],[-4.568,6.045],[-6.427,0.014],[-4.714,-6.046],[0.102,-8.213],[4.758,-6.222],[6.427,-0.66]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[640.932,528.582],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":4,"cix":2,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.08],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.636],[-2.297,-5.636],[-2.297,-10.261],[0.075,-10.261],[0.075,-5.636],[4.758,-5.636],[4.758,-3.616],[0.075,-3.616],[0.075,4.729],[0.777,7.305],[2.944,8.125],[4.554,7.861],[4.963,9.91],[2.563,10.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[625.94,526.387],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":2,"cix":2,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.85,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.537,0.498],[1.034,0],[0.625,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.849,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.742,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.705],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.826],[2.738,-5.006],[0.381,-5.753],[-1.669,-5.388],[-3.542,-4.26],[-3.542,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.717,-7.656],[-3.717,-5.929],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[610.642,528.407],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":2,"cix":2,"ix":32,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.216,-10.598],[1.216,-10.598],[1.216,10.598],[-1.216,10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[596.692,525.844],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 33","np":2,"cix":2,"ix":33,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[6.383,8.402],[6.383,10.598],[-6.383,10.598],[-6.383,-10.598],[6.03,-10.598],[6.03,-8.403],[-3.952,-8.403],[-3.952,-1.347],[3.513,-1.347],[3.513,0.878],[-3.952,0.878],[-3.952,8.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[575.681,525.845],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 34","np":2,"cix":2,"ix":34,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"E Interpolation_04 Spatial Bezier Interpolation","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[324.499,555.091,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[72.458,72.458,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.85,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.537,0.498],[1.034,0],[0.625,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.849,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.742,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.704],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.825],[2.738,-5.006],[0.381,-5.752],[-1.669,-5.387],[-3.542,-4.26],[-3.542,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.717,-7.656],[-3.717,-5.928],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1238.255,596.656],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1220.22,596.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.172,-4.831],[1.2,-4.831],[1.2,10.861],[-1.172,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.292],[0,0.527],[-0.283,0.293],[-0.526,0],[-0.284,-0.293],[0,-0.507],[0.282,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.527,0],[0.282,0.293],[0,0.547],[-0.284,0.292],[-0.526,0]],"v":[[-1.215,-7.963],[-1.64,-9.193],[-1.215,-10.422],[0,-10.861],[1.216,-10.422],[1.64,-9.222],[1.216,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1206.839,593.831],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.469,-0.547],[-0.976,0],[-0.547,0.176],[0,0],[0.879,0]],"o":[[-0.819,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.468,0.546],[0.527,0],[0,0],[-0.722,0.235],[-1.601,0]],"v":[[-1.068,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.636],[-2.297,-5.636],[-2.297,-10.261],[0.074,-10.261],[0.074,-5.636],[4.758,-5.636],[4.758,-3.616],[0.074,-3.616],[0.074,4.729],[0.777,7.305],[2.943,8.125],[4.553,7.86],[4.963,9.91],[2.562,10.261]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1195.902,594.637],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.303],[-0.566,0.625],[0,0],[1.142,-0.547],[0,-1.171],[-0.517,-0.458],[-1.014,0]],"o":[[0.654,-0.302],[0,0],[-2.439,0.02],[-1.142,0.547],[0,0.898],[0.517,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.088],[-1.816,0.761],[-3.528,3.337],[-2.752,5.372],[-0.454,6.06]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.128,0],[0.859,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.614,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.015,1.542],[-1.562,0],[-0.859,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.615,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.717,0]],"v":[[4.348,-6.924],[5.9,-3.191],[5.9,7.875],[3.733,7.875],[3.733,5.884],[-0.981,8.197],[-4.611,6.967],[-5.9,3.513],[-3.616,-0.615],[3.557,-1.962],[3.557,-2.987],[2.635,-5.211],[-0.073,-5.973],[-3.762,-5.153],[-4.377,-7.115],[0.219,-8.198]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1180.678,596.817],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.41,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.254,0.245],[0.351,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.665,7.875],[-2.665,-11.359],[-0.293,-11.359],[-0.293,7.67],[0.087,8.855],[1.288,9.222],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1168.511,593.509],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1153.784,596.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.995],[0,1.971],[0.683,1.025],[1.347,0],[0.595,-0.293],[0.546,-0.625],[0,0],[-0.673,-0.302],[-0.742,0]],"o":[[0.653,-0.996],[0,-1.991],[-0.684,-1.024],[-0.723,0],[-0.595,0.293],[0,0],[0.487,0.546],[0.674,0.303],[1.288,0]],"v":[[2.855,1.728],[3.835,-2.722],[2.811,-7.246],[-0.234,-8.782],[-2.21,-8.344],[-3.922,-6.967],[-3.922,1.494],[-2.181,2.766],[-0.058,3.221]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.951,0],[0.694,0.312],[0.487,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.957,0]],"o":[[1.034,1.464],[0,2.557],[-1.084,1.434],[-0.821,0],[-0.692,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.526,-0.8],[0.761,-0.41],[1.853,0]],"v":[[4.744,-8.87],[6.294,-2.751],[4.67,3.236],[0.118,5.387],[-2.152,4.919],[-3.922,3.602],[-3.922,11.067],[-6.294,11.067],[-6.294,-10.686],[-4.098,-10.686],[-4.098,-8.636],[-2.166,-10.451],[0.411,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1136.45,599.686],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-0.253],[0,0],[0.605,0],[0.556,-0.312],[0.449,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.742,-0.214],[-0.742,0],[-0.556,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.114,-1.678],[0.704,0]],"v":[[4.187,-7.627],[3.659,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.816,-3.704],[-1.816,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.992,-7.686],[-1.992,-5.49],[2.253,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1121.342,596.686],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.045,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.688],[-3.996,0.688],[-2.664,4.654],[0.776,5.987],[4.786,4.815],[5.695,6.69],[3.426,7.816],[0.63,8.212],[-4.568,6.045],[-6.427,0.014],[-4.714,-6.045],[0.103,-8.212],[4.758,-6.221],[6.427,-0.659]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1105.34,596.832],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.636],[-2.297,-5.636],[-2.297,-10.261],[0.075,-10.261],[0.075,-5.636],[4.758,-5.636],[4.758,-3.616],[0.075,-3.616],[0.075,4.729],[0.777,7.305],[2.944,8.125],[4.554,7.86],[4.963,9.91],[2.563,10.261]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1090.349,594.637],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.704],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.825],[2.739,-5.006],[0.381,-5.752],[-1.668,-5.387],[-3.542,-4.26],[-3.542,8.036],[-5.913,8.036],[-5.913,-7.656],[-3.717,-7.656],[-3.717,-5.928],[1.084,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1075.05,596.656],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.215,-10.598],[1.215,-10.598],[1.215,10.598],[-1.215,10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1061.099,594.094],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.585,-0.253],[0,0],[0.605,0],[0.555,-0.312],[0.448,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.743,-0.214],[-0.742,0],[-0.557,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.113,-1.678],[0.703,0]],"v":[[4.187,-7.627],[3.661,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.99,-7.686],[-1.99,-5.49],[2.255,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1042.929,596.686],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.703,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.702,-0.849],[-2.401,0]],"v":[[-3.967,-1.245],[4.024,-1.245],[2.942,-4.801],[0.043,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.811,-0.888],[-1.484,0],[-1.211,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.809,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.226,0],[-1.239,-1.444],[0,-2.596],[1.143,-1.445],[1.992,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.688],[-3.997,0.688],[-2.665,4.654],[0.776,5.987],[4.786,4.815],[5.693,6.69],[3.425,7.816],[0.63,8.212],[-4.568,6.045],[-6.427,0.014],[-4.714,-6.045],[0.101,-8.212],[4.757,-6.221],[6.427,-0.659]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1026.928,596.832],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":4,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.172,-4.831],[1.199,-4.831],[1.199,10.861],[-1.172,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.292],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.283,-0.293],[0,-0.507],[0.283,-0.293],[0.528,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.528,0],[0.283,0.293],[0,0.547],[-0.283,0.292],[-0.527,0]],"v":[[-1.216,-7.963],[-1.64,-9.193],[-1.216,-10.422],[-0.001,-10.861],[1.214,-10.422],[1.639,-9.222],[1.214,-7.963],[-0.001,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1013.738,593.831],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":4,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.548,5.826],[5.548,7.846],[-5.548,7.846],[-5.548,5.826],[2.737,-5.826],[-5.313,-5.826],[-5.313,-7.846],[5.431,-7.846],[5.431,-5.826],[-2.825,5.826]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1001.718,596.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.688],[-3.997,0.688],[-2.664,4.654],[0.776,5.987],[4.786,4.815],[5.695,6.69],[3.425,7.816],[0.63,8.212],[-4.568,6.045],[-6.427,0.014],[-4.714,-6.045],[0.102,-8.212],[4.758,-6.221],[6.427,-0.659]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[985.79,596.832],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":4,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.645,0.645],[0,1.269],[0.663,0.634],[1.288,0],[0,0],[0,0],[0,0]],"o":[[0.644,-0.644],[0,-1.249],[-0.664,-0.634],[0,0],[0,0],[0,0],[1.249,0]],"v":[[3.777,7.436],[4.742,4.567],[3.747,1.742],[0.82,0.79],[-4.86,0.79],[-4.86,8.402],[0.937,8.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.644,0.576],[0,1.132],[0.663,0.615],[1.288,0]],"o":[[0,0],[0,0],[1.249,0],[0.644,-0.576],[0,-1.19],[-0.664,-0.615],[0,0]],"v":[[-4.86,-8.402],[-4.86,-1.347],[-0.234,-1.347],[2.606,-2.21],[3.572,-4.772],[2.577,-7.48],[-0.352,-8.402]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,-2.752],[1.141,-1.063],[2.029,0],[0,0],[0,0],[0,0],[-1.113,-1.014],[0,-1.835],[0.458,-0.712],[0.897,-0.273]],"o":[[0,1.893],[-1.143,1.064],[0,0],[0,0],[0,0],[1.99,0],[1.113,1.015],[0,1.112],[-0.459,0.713],[2.615,0.683]],"v":[[7.289,4.567],[5.578,9.002],[0.82,10.598],[-7.289,10.598],[-7.289,-10.598],[-0.234,-10.598],[4.421,-9.076],[6.09,-4.801],[5.402,-2.064],[3.367,-0.585]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[967.71,594.095],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":5,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.41,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.254,0.245],[0.351,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.664,7.875],[-2.664,-11.359],[-0.293,-11.359],[-0.293,7.67],[0.087,8.855],[1.288,9.222],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[944.636,593.509],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.303],[-0.566,0.625],[0,0],[1.142,-0.547],[0,-1.171],[-0.517,-0.458],[-1.014,0]],"o":[[0.654,-0.302],[0,0],[-2.439,0.02],[-1.142,0.547],[0,0.898],[0.517,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.088],[-1.815,0.761],[-3.528,3.337],[-2.752,5.372],[-0.454,6.06]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.128,0],[0.859,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.614,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.015,1.542],[-1.562,0],[-0.859,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.615,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.717,0]],"v":[[4.348,-6.924],[5.9,-3.191],[5.9,7.875],[3.733,7.875],[3.733,5.884],[-0.981,8.197],[-4.611,6.967],[-5.899,3.513],[-3.616,-0.615],[3.557,-1.962],[3.557,-2.987],[2.635,-5.211],[-0.073,-5.973],[-3.762,-5.153],[-4.377,-7.115],[0.22,-8.198]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[929.689,596.817],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":4,"cix":2,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.172,-4.831],[1.2,-4.831],[1.2,10.861],[-1.172,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.292],[0,0.527],[-0.284,0.293],[-0.526,0],[-0.283,-0.293],[0,-0.507],[0.282,-0.293],[0.528,0]],"o":[[-0.284,-0.293],[0,-0.527],[0.283,-0.293],[0.528,0],[0.282,0.293],[0,0.547],[-0.283,0.292],[-0.526,0]],"v":[[-1.215,-7.963],[-1.639,-9.193],[-1.215,-10.422],[-0.001,-10.861],[1.215,-10.422],[1.639,-9.222],[1.215,-7.963],[-0.001,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[917.318,593.831],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":4,"cix":2,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.068,8.958],[-2.298,5.079],[-2.298,-3.616],[-4.963,-3.616],[-4.963,-5.636],[-2.298,-5.636],[-2.298,-10.261],[0.074,-10.261],[0.074,-5.636],[4.757,-5.636],[4.757,-3.616],[0.074,-3.616],[0.074,4.729],[0.776,7.305],[2.943,8.125],[4.553,7.86],[4.962,9.91],[2.562,10.261]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[906.381,594.637],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.303],[-0.566,0.625],[0,0],[1.143,-0.547],[0,-1.171],[-0.518,-0.458],[-1.015,0]],"o":[[0.653,-0.302],[0,0],[-2.44,0.02],[-1.142,0.547],[0,0.898],[0.516,0.459],[0.8,0]],"v":[[1.728,5.606],[3.557,4.215],[3.557,-0.088],[-1.815,0.761],[-3.527,3.337],[-2.751,5.372],[-0.453,6.06]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.034,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.127,0],[0.86,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.615,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.016,1.542],[-1.562,0],[-0.858,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.614,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.718,0]],"v":[[4.348,-6.924],[5.9,-3.191],[5.9,7.875],[3.734,7.875],[3.734,5.884],[-0.98,8.197],[-4.612,6.967],[-5.899,3.513],[-3.615,-0.615],[3.557,-1.962],[3.557,-2.987],[2.635,-5.211],[-0.073,-5.973],[-3.761,-5.153],[-4.376,-7.115],[0.219,-8.198]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[891.156,596.817],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":4,"cix":2,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.995],[0,1.971],[0.683,1.025],[1.347,0],[0.595,-0.293],[0.546,-0.625],[0,0],[-0.673,-0.302],[-0.742,0]],"o":[[0.653,-0.996],[0,-1.991],[-0.684,-1.024],[-0.723,0],[-0.595,0.293],[0,0],[0.487,0.546],[0.674,0.303],[1.288,0]],"v":[[2.855,1.728],[3.835,-2.722],[2.811,-7.246],[-0.234,-8.782],[-2.21,-8.344],[-3.922,-6.967],[-3.922,1.494],[-2.181,2.766],[-0.058,3.221]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.951,0],[0.694,0.312],[0.487,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.957,0]],"o":[[1.034,1.464],[0,2.557],[-1.084,1.434],[-0.821,0],[-0.692,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.526,-0.8],[0.761,-0.41],[1.853,0]],"v":[[4.744,-8.87],[6.294,-2.751],[4.67,3.236],[0.118,5.387],[-2.152,4.919],[-3.922,3.602],[-3.922,11.067],[-6.294,11.067],[-6.294,-10.686],[-4.098,-10.686],[-4.098,-8.636],[-2.166,-10.451],[0.411,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[874.832,599.686],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":4,"cix":2,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.151,0.293],[0.879,0.547],[0,0],[-1.952,0],[-0.81,0.634],[0,1.131],[0.546,0.596],[1.132,0.293],[0,0],[0.839,0.946],[0,1.523],[-1.2,1.064],[-2.068,0],[-1.073,-0.224],[-0.897,-0.429],[0,0],[1.561,0],[0.731,-0.595],[0,-1.054],[-0.537,-0.595],[-1.132,-0.292],[0,0],[-0.85,-0.936],[0,-1.522],[1.269,-1.102],[2.186,0]],"o":[[-1.151,-0.292],[0,0],[1.834,1.053],[1.464,0],[0.809,-0.634],[0,-0.956],[-0.547,-0.595],[0,0],[-1.796,-0.488],[-0.839,-0.947],[0,-1.815],[1.2,-1.064],[1.035,0],[1.074,0.225],[0,0],[-1.991,-0.801],[-1.327,0],[-0.733,0.596],[0,0.957],[0.536,0.596],[0,0],[1.796,0.507],[0.849,0.937],[0,1.894],[-1.269,1.103],[-1.171,0]],"v":[[-3.762,10.51],[-6.807,9.251],[-5.957,7.173],[-0.278,8.754],[3.133,7.802],[4.347,5.153],[3.528,2.825],[1.01,1.493],[-1.391,0.82],[-5.343,-1.332],[-6.602,-5.036],[-4.801,-9.354],[0.102,-10.949],[3.264,-10.613],[6.221,-9.632],[5.373,-7.553],[0.044,-8.754],[-3.044,-7.861],[-4.143,-5.387],[-3.337,-3.06],[-0.834,-1.728],[1.566,-1.054],[5.534,1.112],[6.807,4.801],[4.904,9.295],[-0.278,10.949]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[856.226,594.095],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.137,3.865],[2.137,-8.343],[-4.655,3.865]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.231,3.865],[7.231,6.002],[4.479,6.002],[4.479,10.598],[2.137,10.598],[2.137,6.002],[-7.231,6.002],[-7.231,3.865],[1.083,-10.598],[4.479,-10.598],[4.479,3.865]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[830.094,594.094],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":4,"cix":2,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.742,1.425],[0,3.025],[0.741,1.425],[1.581,0],[0.741,-1.425],[0,-3.025],[-0.743,-1.425],[-1.581,0]],"o":[[0.741,-1.425],[0,-3.025],[-0.742,-1.425],[-1.562,0],[-0.743,1.425],[0,3.025],[0.741,1.425],[1.561,0]],"v":[[3.47,6.676],[4.582,0.001],[3.47,-6.674],[-0.014,-8.811],[-3.469,-6.674],[-4.581,0.001],[-3.469,6.676],[0.015,8.813]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.171,1.786],[0,3.747],[-1.161,1.786],[-2.381,0],[-1.172,-1.786],[0,-3.748],[1.161,-1.786],[2.381,0]],"o":[[-1.171,-1.786],[0,-3.748],[1.161,-1.786],[2.38,0],[1.171,1.786],[0,3.747],[-1.162,1.786],[-2.381,0]],"v":[[-5.313,8.301],[-7.07,0.001],[-5.328,-8.299],[-0.014,-10.978],[5.315,-8.299],[7.07,0.001],[5.328,8.301],[0.015,10.979]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[811.516,594.094],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":4,"cix":2,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.958,-1.113],[5.958,-1.113],[5.958,1.112],[-5.958,1.112]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[792.338,607.943],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":2,"cix":2,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.704],[5.913,-3.031],[5.913,8.036],[3.542,8.036],[3.542,-2.825],[2.738,-5.006],[0.38,-5.752],[-1.669,-5.387],[-3.543,-4.26],[-3.543,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.718,-7.656],[-3.718,-5.928],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[773.848,596.656],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":2,"cix":2,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[755.812,596.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":4,"cix":2,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.171,-4.831],[1.201,-4.831],[1.201,10.861],[-1.171,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.292],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.283,-0.293],[0,-0.507],[0.283,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.527,0],[0.283,0.293],[0,0.547],[-0.283,0.292],[-0.527,0]],"v":[[-1.215,-7.963],[-1.639,-9.193],[-1.215,-10.422],[0,-10.861],[1.215,-10.422],[1.639,-9.222],[1.215,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[742.431,593.831],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":4,"cix":2,"ix":32,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.469,-0.547],[-0.976,0],[-0.547,0.176],[0,0],[0.879,0]],"o":[[-0.819,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.468,0.546],[0.527,0],[0,0],[-0.722,0.235],[-1.601,0]],"v":[[-1.068,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.963,-3.616],[-4.963,-5.636],[-2.297,-5.636],[-2.297,-10.261],[0.073,-10.261],[0.073,-5.636],[4.758,-5.636],[4.758,-3.616],[0.073,-3.616],[0.073,4.729],[0.776,7.305],[2.943,8.125],[4.552,7.86],[4.962,9.91],[2.561,10.261]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[731.494,594.637],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 33","np":2,"cix":2,"ix":33,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.303],[-0.566,0.625],[0,0],[1.142,-0.547],[0,-1.171],[-0.517,-0.458],[-1.014,0]],"o":[[0.654,-0.302],[0,0],[-2.439,0.02],[-1.142,0.547],[0,0.898],[0.517,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.088],[-1.815,0.761],[-3.528,3.337],[-2.752,5.372],[-0.454,6.06]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.128,0],[0.859,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.614,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.015,1.542],[-1.562,0],[-0.859,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.615,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.717,0]],"v":[[4.348,-6.924],[5.9,-3.191],[5.9,7.875],[3.733,7.875],[3.733,5.884],[-0.981,8.197],[-4.611,6.967],[-5.899,3.513],[-3.616,-0.615],[3.557,-1.962],[3.557,-2.987],[2.635,-5.211],[-0.073,-5.973],[-3.762,-5.153],[-4.377,-7.115],[0.22,-8.198]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[716.27,596.817],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 34","np":4,"cix":2,"ix":34,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.41,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.254,0.245],[0.351,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.664,7.875],[-2.664,-11.359],[-0.293,-11.359],[-0.293,7.67],[0.087,8.855],[1.288,9.222],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[704.103,593.509],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 35","np":2,"cix":2,"ix":35,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[689.376,596.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 36","np":4,"cix":2,"ix":36,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.995],[0,1.971],[0.683,1.025],[1.347,0],[0.595,-0.293],[0.546,-0.625],[0,0],[-0.673,-0.302],[-0.742,0]],"o":[[0.653,-0.996],[0,-1.991],[-0.684,-1.024],[-0.723,0],[-0.595,0.293],[0,0],[0.487,0.546],[0.674,0.303],[1.288,0]],"v":[[2.855,1.728],[3.835,-2.722],[2.811,-7.246],[-0.234,-8.782],[-2.21,-8.344],[-3.922,-6.967],[-3.922,1.494],[-2.181,2.766],[-0.058,3.221]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.951,0],[0.694,0.312],[0.487,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.957,0]],"o":[[1.034,1.464],[0,2.557],[-1.084,1.434],[-0.821,0],[-0.692,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.526,-0.8],[0.761,-0.41],[1.853,0]],"v":[[4.744,-8.87],[6.294,-2.751],[4.67,3.236],[0.118,5.387],[-2.152,4.919],[-3.922,3.602],[-3.922,11.067],[-6.294,11.067],[-6.294,-10.686],[-4.098,-10.686],[-4.098,-8.636],[-2.166,-10.451],[0.411,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[672.041,599.686],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 37","np":4,"cix":2,"ix":37,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-0.253],[0,0],[0.605,0],[0.556,-0.312],[0.449,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.742,-0.214],[-0.742,0],[-0.556,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.114,-1.678],[0.704,0]],"v":[[4.187,-7.627],[3.659,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.992,-7.686],[-1.992,-5.49],[2.253,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[656.934,596.686],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 38","np":2,"cix":2,"ix":38,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.688],[-3.997,0.688],[-2.664,4.654],[0.776,5.987],[4.786,4.815],[5.695,6.69],[3.425,7.816],[0.63,8.212],[-4.568,6.045],[-6.427,0.014],[-4.714,-6.045],[0.102,-8.212],[4.758,-6.221],[6.427,-0.659]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[640.932,596.832],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 39","np":4,"cix":2,"ix":39,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.636],[-2.297,-5.636],[-2.297,-10.261],[0.075,-10.261],[0.075,-5.636],[4.758,-5.636],[4.758,-3.616],[0.075,-3.616],[0.075,4.729],[0.777,7.305],[2.944,8.125],[4.554,7.86],[4.963,9.91],[2.563,10.261]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[625.94,594.637],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 40","np":2,"cix":2,"ix":40,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.85,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.537,0.498],[1.034,0],[0.625,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.849,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.742,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.704],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.825],[2.738,-5.006],[0.381,-5.752],[-1.669,-5.387],[-3.542,-4.26],[-3.542,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.717,-7.656],[-3.717,-5.928],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[610.642,596.656],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 41","np":2,"cix":2,"ix":41,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.216,-10.598],[1.216,-10.598],[1.216,10.598],[-1.216,10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[596.692,594.094],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 42","np":2,"cix":2,"ix":42,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[6.383,8.402],[6.383,10.598],[-6.383,10.598],[-6.383,-10.598],[6.03,-10.598],[6.03,-8.403],[-3.952,-8.403],[-3.952,-1.347],[3.513,-1.347],[3.513,0.878],[-3.952,0.878],[-3.952,8.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[575.681,594.095],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 43","np":2,"cix":2,"ix":43,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"E Interpolation_05 Rove Across Time","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[964.374,505.638,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[72.458,72.458,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.703,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.702,-0.849],[-2.401,0]],"v":[[-3.967,-1.245],[4.025,-1.245],[2.942,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.811,-0.888],[-1.484,0],[-1.211,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.809,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.226,0],[-1.239,-1.444],[0,-2.596],[1.143,-1.445],[1.992,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.688],[-3.996,0.688],[-2.664,4.654],[0.776,5.987],[4.786,4.815],[5.693,6.69],[3.426,7.816],[0.63,8.212],[-4.568,6.045],[-6.427,0.014],[-4.714,-6.045],[0.102,-8.212],[4.758,-6.221],[6.427,-0.659]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1091.986,665.082],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.82,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.507,0.498],[0.977,0],[0.624,-0.253],[0.625,-0.546],[0,-0.41],[0,0],[0,0],[0,0],[0.518,0.498],[0.976,0],[0.606,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.834,0],[-0.722,-0.419],[-0.352,-0.781],[-1.932,0]],"o":[[0.819,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.508,-0.498],[-0.702,0],[-0.625,0.254],[0.058,0.352],[0,0],[0,0],[0,0],[0,-0.956],[-0.516,-0.498],[-0.703,0],[-0.604,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[0.996,0],[0.722,0.42],[1.384,-1.62],[1.464,0]],"v":[[9.121,-6.704],[10.349,-3.031],[10.349,8.036],[7.978,8.036],[7.978,-2.825],[7.218,-5.006],[4.992,-5.752],[3.002,-5.372],[1.128,-4.172],[1.216,-3.031],[1.216,8.036],[-1.155,8.036],[-1.155,-2.825],[-1.932,-5.006],[-4.172,-5.752],[-6.133,-5.387],[-7.977,-4.26],[-7.977,8.036],[-10.349,8.036],[-10.349,-7.656],[-8.152,-7.656],[-8.152,-5.928],[-3.469,-8.036],[-0.892,-7.407],[0.719,-5.606],[5.695,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1069.85,664.906],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.171,-4.831],[1.201,-4.831],[1.201,10.861],[-1.171,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.292],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.284,-0.293],[0,-0.507],[0.282,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.527,0],[0.282,0.293],[0,0.547],[-0.284,0.292],[-0.527,0]],"v":[[-1.215,-7.963],[-1.639,-9.193],[-1.215,-10.422],[0,-10.861],[1.216,-10.422],[1.639,-9.222],[1.216,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1051.595,662.081],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[6.836,-8.373],[1.215,-8.373],[1.215,10.598],[-1.215,10.598],[-1.215,-8.373],[-6.836,-8.373],[-6.836,-10.598],[6.836,-10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1038.668,662.344],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.927,0.244],[0.703,0.45],[0,0],[-1.621,0],[-0.576,0.41],[0,0.8],[0.361,0.371],[0.781,0.195],[0,0],[0.683,0.712],[0,1.152],[-0.966,0.82],[-1.738,0],[-0.86,-0.214],[-0.683,-0.351],[0,0],[1.308,0],[0.527,-0.39],[0,-0.742],[-0.371,-0.361],[-0.782,-0.195],[0,0],[-0.673,-0.732],[0,-1.19],[1.014,-0.839],[1.795,0]],"o":[[-0.928,-0.244],[0,0],[1.367,0.86],[1.112,0],[0.575,-0.41],[0,-0.625],[-0.361,-0.371],[0,0],[-1.425,-0.332],[-0.683,-0.712],[0,-1.444],[0.967,-0.82],[0.859,0],[0.858,0.215],[0,0],[-1.367,-0.703],[-1.015,0],[-0.528,0.39],[0,0.586],[0.371,0.361],[0,0],[1.424,0.332],[0.674,0.732],[0,1.483],[-1.016,0.839],[-0.996,0]],"v":[[-3.089,7.831],[-5.534,6.792],[-4.685,4.771],[-0.205,6.06],[2.327,5.445],[3.19,3.63],[2.649,2.138],[0.936,1.289],[-1.143,0.79],[-4.304,-0.776],[-5.329,-3.571],[-3.88,-6.967],[0.175,-8.198],[2.752,-7.875],[5.064,-7.026],[4.128,-5.007],[0.116,-6.06],[-2.196,-5.475],[-2.986,-3.776],[-2.431,-2.357],[-0.703,-1.523],[1.376,-1.024],[4.522,0.57],[5.533,3.455],[4.011,6.939],[-0.205,8.198]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1014.76,665.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.927,0.244],[0.703,0.45],[0,0],[-1.621,0],[-0.576,0.41],[0,0.8],[0.361,0.371],[0.781,0.195],[0,0],[0.683,0.712],[0,1.152],[-0.966,0.82],[-1.738,0],[-0.86,-0.214],[-0.683,-0.351],[0,0],[1.308,0],[0.527,-0.39],[0,-0.742],[-0.371,-0.361],[-0.782,-0.195],[0,0],[-0.673,-0.732],[0,-1.19],[1.014,-0.839],[1.795,0]],"o":[[-0.928,-0.244],[0,0],[1.367,0.86],[1.112,0],[0.575,-0.41],[0,-0.625],[-0.361,-0.371],[0,0],[-1.425,-0.332],[-0.683,-0.712],[0,-1.444],[0.967,-0.82],[0.859,0],[0.858,0.215],[0,0],[-1.367,-0.703],[-1.015,0],[-0.528,0.39],[0,0.586],[0.371,0.361],[0,0],[1.424,0.332],[0.674,0.732],[0,1.483],[-1.016,0.839],[-0.996,0]],"v":[[-3.088,7.831],[-5.533,6.792],[-4.684,4.771],[-0.204,6.06],[2.328,5.445],[3.191,3.63],[2.65,2.138],[0.937,1.289],[-1.142,0.79],[-4.303,-0.776],[-5.328,-3.571],[-3.879,-6.967],[0.176,-8.198],[2.753,-7.875],[5.065,-7.026],[4.129,-5.007],[0.117,-6.06],[-2.195,-5.475],[-2.985,-3.776],[-2.43,-2.357],[-0.702,-1.523],[1.377,-1.024],[4.523,0.57],[5.534,3.455],[4.012,6.939],[-0.204,8.198]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[999.857,665.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[983.724,665.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-0.253],[0,0],[0.605,0],[0.556,-0.312],[0.449,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.742,-0.214],[-0.742,0],[-0.556,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.114,-1.678],[0.704,0]],"v":[[4.187,-7.627],[3.659,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.992,-7.686],[-1.992,-5.49],[2.253,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[969.436,664.936],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.249,1.444],[0,2.576],[-0.576,1.24],[-1.044,0.683],[-1.366,0],[-0.78,-0.225],[-0.645,-0.409],[0,0],[1.151,0],[0.771,-1.025],[0,-1.834],[-0.81,-1.044],[-1.562,0],[-1.132,0.644],[0,0],[0.78,-0.225],[0.878,0]],"o":[[-1.249,-1.444],[0,-1.64],[0.575,-1.239],[1.044,-0.683],[0.78,0],[0.78,0.224],[0,0],[-1.268,-0.682],[-1.386,0],[-0.771,1.025],[0,2.03],[0.809,1.044],[1.171,0],[0,0],[-0.566,0.429],[-0.781,0.224],[-2.206,0]],"v":[[-3.909,6.046],[-5.782,0.015],[-4.919,-4.304],[-2.489,-7.187],[1.127,-8.212],[3.469,-7.875],[5.607,-6.924],[4.698,-4.992],[1.069,-6.016],[-2.167,-4.479],[-3.323,-0.19],[-2.108,4.421],[1.449,5.987],[4.904,5.021],[5.782,6.895],[3.762,7.876],[1.274,8.213]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[954.459,665.082],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.616,2.81],[-0.044,-8.022],[-3.674,2.81]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"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":[[4.346,4.978],[-4.406,4.978],[-6.281,10.599],[-8.885,10.599],[-1.362,-10.599],[1.361,-10.599],[8.885,10.599],[6.25,10.599]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[936.131,662.345],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.688],[-3.997,0.688],[-2.664,4.654],[0.776,5.987],[4.786,4.815],[5.695,6.69],[3.425,7.816],[0.63,8.212],[-4.568,6.045],[-6.427,0.014],[-4.714,-6.045],[0.102,-8.212],[4.758,-6.221],[6.427,-0.659]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[909.251,665.082],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":4,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[6.763,-7.846],[1.318,7.846],[-1.289,7.846],[-6.763,-7.846],[-4.187,-7.846],[0.058,5.3],[4.245,-7.846]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[892.371,665.096],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[875.301,665.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":4,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.684,0.732],[0,1.444],[0.702,0.742],[1.366,0],[0,0]],"o":[[0,0],[1.327,0],[0.682,-0.732],[0,-1.425],[-0.703,-0.742],[0,0],[0,0]],"v":[[-4.904,0.322],[-0.278,0.322],[2.738,-0.776],[3.762,-4.04],[2.708,-7.29],[-0.395,-8.403],[-4.904,-8.403]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.161,-1.151],[0,-2.049],[0.78,-1.084],[1.464,-0.352],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[2.068,0],[1.161,1.152],[0,1.679],[-0.781,1.083],[0,0],[0,0],[0,0]],"v":[[-0.835,2.489],[-4.904,2.489],[-4.904,10.598],[-7.334,10.598],[-7.334,-10.598],[-0.278,-10.598],[4.567,-8.871],[6.309,-4.07],[5.138,0.073],[1.771,2.225],[7.333,10.598],[4.347,10.598]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[857.455,662.345],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":4,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.956,-0.556],[-0.518,-1.014],[0,-1.327],[0.585,-1.064],[1.073,-0.585],[1.406,0],[1.025,0.282],[0.722,0.468],[0,0],[-0.83,-0.244],[-0.742,0],[-0.821,0.84],[0,1.484],[0.77,0.8],[1.347,0],[0.625,-0.185],[0.468,-0.351],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.586,0.127],[-0.566,0]],"o":[[0.956,0.556],[0.517,1.016],[0,1.386],[-0.586,1.064],[-1.074,0.586],[-0.995,0],[-1.024,-0.283],[0,0],[0.721,0.429],[0.829,0.244],[1.425,0],[0.819,-0.839],[0,-1.424],[-0.772,-0.8],[-0.664,0],[-0.624,0.186],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.469,-0.214],[0.585,-0.127],[1.248,0]],"v":[[3.382,-2.107],[5.593,0.248],[6.367,3.763],[5.49,7.436],[3.002,9.91],[-0.718,10.789],[-3.747,10.365],[-6.367,9.237],[-5.401,7.159],[-3.073,8.169],[-0.718,8.534],[2.651,7.276],[3.88,3.792],[2.724,0.455],[-0.453,-0.747],[-2.386,-0.469],[-4.024,0.336],[-5.518,-0.482],[-4.875,-10.789],[5.461,-10.789],[5.461,-8.68],[-2.795,-8.68],[-3.234,-2.24],[-1.654,-2.752],[0.073,-2.941]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[829.698,662.535],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.742,1.425],[0,3.025],[0.741,1.425],[1.581,0],[0.741,-1.425],[0,-3.025],[-0.743,-1.425],[-1.581,0]],"o":[[0.741,-1.425],[0,-3.025],[-0.742,-1.425],[-1.562,0],[-0.743,1.425],[0,3.025],[0.741,1.425],[1.561,0]],"v":[[3.47,6.676],[4.582,0.001],[3.47,-6.674],[-0.014,-8.811],[-3.469,-6.674],[-4.581,0.001],[-3.469,6.676],[0.015,8.813]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.171,1.786],[0,3.747],[-1.161,1.786],[-2.381,0],[-1.172,-1.786],[0,-3.748],[1.161,-1.786],[2.381,0]],"o":[[-1.171,-1.786],[0,-3.748],[1.161,-1.786],[2.38,0],[1.171,1.786],[0,3.747],[-1.162,1.786],[-2.381,0]],"v":[[-5.313,8.301],[-7.07,0.001],[-5.328,-8.299],[-0.014,-10.978],[5.315,-8.299],[7.07,0.001],[5.328,8.301],[0.015,10.979]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[811.516,662.344],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":4,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.958,-1.113],[5.958,-1.113],[5.958,1.112],[-5.958,1.112]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[792.338,676.193],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.849,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.536,0.498],[1.035,0],[0.624,-0.243],[0.625,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.85,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.741,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.704],[5.913,-3.031],[5.913,8.036],[3.542,8.036],[3.542,-2.825],[2.738,-5.006],[0.38,-5.752],[-1.669,-5.387],[-3.543,-4.26],[-3.543,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.718,-7.656],[-3.718,-5.928],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[773.848,664.906],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[755.812,665.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":4,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.171,-4.831],[1.201,-4.831],[1.201,10.861],[-1.171,10.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.283,0.292],[0,0.527],[-0.283,0.293],[-0.527,0],[-0.283,-0.293],[0,-0.507],[0.283,-0.293],[0.527,0]],"o":[[-0.283,-0.293],[0,-0.527],[0.283,-0.293],[0.527,0],[0.283,0.293],[0,0.547],[-0.283,0.292],[-0.527,0]],"v":[[-1.215,-7.963],[-1.639,-9.193],[-1.215,-10.422],[0,-10.861],[1.215,-10.422],[1.639,-9.222],[1.215,-7.963],[0,-7.524]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[742.431,662.081],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":4,"cix":2,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.469,-0.547],[-0.976,0],[-0.547,0.176],[0,0],[0.879,0]],"o":[[-0.819,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.468,0.546],[0.527,0],[0,0],[-0.722,0.235],[-1.601,0]],"v":[[-1.068,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.963,-3.616],[-4.963,-5.636],[-2.297,-5.636],[-2.297,-10.261],[0.073,-10.261],[0.073,-5.636],[4.758,-5.636],[4.758,-3.616],[0.073,-3.616],[0.073,4.729],[0.776,7.305],[2.943,8.125],[4.552,7.86],[4.962,9.91],[2.561,10.261]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[731.494,662.887],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":2,"cix":2,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.653,0.303],[-0.566,0.625],[0,0],[1.142,-0.547],[0,-1.171],[-0.517,-0.458],[-1.014,0]],"o":[[0.654,-0.302],[0,0],[-2.439,0.02],[-1.142,0.547],[0,0.898],[0.517,0.459],[0.8,0]],"v":[[1.727,5.606],[3.557,4.215],[3.557,-0.088],[-1.815,0.761],[-3.528,3.337],[-2.752,5.372],[-0.454,6.06]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-0.849],[0,-1.64],[0,0],[0,0],[0,0],[2.128,0],[0.859,0.82],[0,1.483],[-1.522,0.878],[-3.26,0.02],[0,0],[0.614,0.507],[1.191,0],[1.151,-0.546],[0,0],[-1.639,0]],"o":[[1.034,0.849],[0,0],[0,0],[0,0],[-1.015,1.542],[-1.562,0],[-0.859,-0.819],[0,-1.874],[1.523,-0.879],[0,0],[0,-0.975],[-0.615,-0.508],[-1.307,0],[0,0],[1.424,-0.721],[1.717,0]],"v":[[4.348,-6.924],[5.9,-3.191],[5.9,7.875],[3.733,7.875],[3.733,5.884],[-0.981,8.197],[-4.611,6.967],[-5.899,3.513],[-3.616,-0.615],[3.557,-1.962],[3.557,-2.987],[2.635,-5.211],[-0.073,-5.973],[-3.762,-5.153],[-4.377,-7.115],[0.22,-8.198]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[716.27,665.067],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":4,"cix":2,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.323],[0,0],[0,0],[0,0],[-0.254,-0.243],[-0.547,0],[-0.41,0.079],[0,0],[0.644,0]],"o":[[0,0],[0,0],[0,0],[0,0.547],[0.254,0.245],[0.351,0],[0,0],[-0.625,0.156],[-2.283,0]],"v":[[-2.664,7.875],[-2.664,-11.359],[-0.293,-11.359],[-0.293,7.67],[0.087,8.855],[1.288,9.222],[2.43,9.104],[2.664,11.125],[0.761,11.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[704.103,661.759],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.692,1.024],[0,2.011],[0.692,1.034],[1.327,0],[0.692,-1.035],[0,-1.99],[-0.694,-1.025],[-1.346,0]],"o":[[0.692,-1.025],[0,-1.99],[-0.692,-1.035],[-1.366,0],[-0.694,1.034],[0,2.011],[0.692,1.024],[1.348,0]],"v":[[3.059,4.552],[4.099,0],[3.059,-4.537],[0.029,-6.089],[-3.059,-4.537],[-4.099,0],[-3.059,4.552],[-0.001,6.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.132,1.396],[0,2.694],[-1.142,1.395],[-2.108,0],[-1.132,-1.396],[0,-2.693],[1.132,-1.405],[2.109,0]],"o":[[-1.132,-1.395],[0,-2.693],[1.141,-1.396],[2.089,0],[1.132,1.395],[0,2.675],[-1.132,1.405],[-2.107,0]],"v":[[-4.86,6.134],[-6.558,0],[-4.845,-6.133],[0.029,-8.227],[4.86,-6.133],[6.558,0],[4.86,6.119],[-0.001,8.227]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[689.376,665.097],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":4,"cix":2,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.654,0.995],[0,1.971],[0.683,1.025],[1.347,0],[0.595,-0.293],[0.546,-0.625],[0,0],[-0.673,-0.302],[-0.742,0]],"o":[[0.653,-0.996],[0,-1.991],[-0.684,-1.024],[-0.723,0],[-0.595,0.293],[0,0],[0.487,0.546],[0.674,0.303],[1.288,0]],"v":[[2.855,1.728],[3.835,-2.722],[2.811,-7.246],[-0.234,-8.782],[-2.21,-8.344],[-3.922,-6.967],[-3.922,1.494],[-2.181,2.766],[-0.058,3.221]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-1.035,-1.464],[0,-2.616],[1.083,-1.435],[1.951,0],[0.694,0.312],[0.487,0.566],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.761,0.409],[-0.957,0]],"o":[[1.034,1.464],[0,2.557],[-1.084,1.434],[-0.821,0],[-0.692,-0.312],[0,0],[0,0],[0,0],[0,0],[0,0],[0.526,-0.8],[0.761,-0.41],[1.853,0]],"v":[[4.744,-8.87],[6.294,-2.751],[4.67,3.236],[0.118,5.387],[-2.152,4.919],[-3.922,3.602],[-3.922,11.067],[-6.294,11.067],[-6.294,-10.686],[-4.098,-10.686],[-4.098,-8.636],[-2.166,-10.451],[0.411,-11.066]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[672.041,667.936],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":4,"cix":2,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-0.253],[0,0],[0.605,0],[0.556,-0.312],[0.449,-0.663],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.717,0]],"o":[[0,0],[-0.742,-0.214],[-0.742,0],[-0.556,0.313],[0,0],[0,0],[0,0],[0,0],[0,0],[1.114,-1.678],[0.704,0]],"v":[[4.187,-7.627],[3.659,-5.314],[1.639,-5.636],[-0.307,-5.168],[-1.815,-3.704],[-1.815,8.007],[-4.187,8.007],[-4.187,-7.686],[-1.992,-7.686],[-1.992,-5.49],[2.253,-8.007]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[656.934,664.936],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.273,-3.221],[0,0],[0.702,0.849],[1.229,0]],"o":[[0,0],[-0.019,-1.522],[-0.703,-0.849],[-2.402,0]],"v":[[-3.967,-1.245],[4.026,-1.245],[2.943,-4.801],[0.044,-6.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.078,-0.331],[0,0],[-0.81,-0.888],[-1.483,0],[-1.21,0.781],[0,0],[0.887,-0.264],[0.975,0],[1.24,1.444],[0,2.576],[-1.142,1.444],[-2.069,0],[-1.113,-1.327],[0,-2.38]],"o":[[0,0],[0.078,1.757],[0.81,0.889],[1.464,0],[0,0],[-0.625,0.488],[-0.889,0.264],[-2.225,0],[-1.24,-1.444],[0,-2.596],[1.142,-1.445],[1.991,0],[1.112,1.328],[0,0.567]],"v":[[6.308,0.688],[-3.997,0.688],[-2.664,4.654],[0.776,5.987],[4.786,4.815],[5.695,6.69],[3.425,7.816],[0.63,8.212],[-4.568,6.045],[-6.427,0.014],[-4.714,-6.045],[0.102,-8.212],[4.758,-6.221],[6.427,-0.659]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[640.932,665.082],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":4,"cix":2,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.819,0.869],[0,1.717],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.468,-0.547],[-0.977,0],[-0.547,0.176],[0,0],[0.878,0]],"o":[[-0.82,-0.869],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.17],[0.469,0.546],[0.526,0],[0,0],[-0.721,0.235],[-1.601,0]],"v":[[-1.067,8.958],[-2.297,5.079],[-2.297,-3.616],[-4.962,-3.616],[-4.962,-5.636],[-2.297,-5.636],[-2.297,-10.261],[0.075,-10.261],[0.075,-5.636],[4.758,-5.636],[4.758,-3.616],[0.075,-3.616],[0.075,4.729],[0.777,7.305],[2.944,8.125],[4.554,7.86],[4.963,9.91],[2.563,10.261]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[625.94,662.887],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":2,"cix":2,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.85,-0.888],[0,-1.561],[0,0],[0,0],[0,0],[0.537,0.498],[1.034,0],[0.625,-0.243],[0.624,-0.507],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.913,0]],"o":[[0.849,0.888],[0,0],[0,0],[0,0],[0,-0.956],[-0.537,-0.498],[-0.742,0],[-0.625,0.245],[0,0],[0,0],[0,0],[0,0],[0,0],[1.288,-1.405],[1.523,0]],"v":[[4.641,-6.704],[5.914,-3.031],[5.914,8.036],[3.543,8.036],[3.543,-2.825],[2.738,-5.006],[0.381,-5.752],[-1.669,-5.387],[-3.542,-4.26],[-3.542,8.036],[-5.914,8.036],[-5.914,-7.656],[-3.717,-7.656],[-3.717,-5.928],[1.083,-8.036]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[610.642,664.906],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":2,"cix":2,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.216,-10.598],[1.216,-10.598],[1.216,10.598],[-1.216,10.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[596.692,662.344],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":2,"cix":2,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[6.383,8.402],[6.383,10.598],[-6.383,10.598],[-6.383,-10.598],[6.03,-10.598],[6.03,-8.403],[-3.952,-8.403],[-3.952,-1.347],[3.513,-1.347],[3.513,0.878],[-3.952,0.878],[-3.952,8.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.630999995213,0.902000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[575.681,662.345],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":2,"cix":2,"ix":31,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"E Interpolation_01 Linear Interpolation","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[328,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"E Interpolation_02 Bezier Interpolation","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965.75,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"E Interpolation_03 Hold Interpolation","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1597.5,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"E Interpolation_04 Spatial Bezier Interpolation","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[328,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"E Interpolation_05 Rove Across Time","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965.75,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[70,70,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":120,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/UXSample_1920x1080/F Masks_All_01_1920x1080.json b/external/rlottie/example/resource/UXSample_1920x1080/F Masks_All_01_1920x1080.json new file mode 100644 index 000000000..40895fb58 --- /dev/null +++ b/external/rlottie/example/resource/UXSample_1920x1080/F Masks_All_01_1920x1080.json @@ -0,0 +1 @@ +{"v":"5.1.18","fr":30,"ip":0,"op":41,"w":1920,"h":1080,"nm":"F Masks_All_01","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1924.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[643.833,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1284.167,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[3.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,461],[823,547],[1101,547],[1101,461]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[1101,643],[1101,365]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[0],"e":[100]},{"t":30}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[1101,643],[1101,365]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1060,471],[1060,537],[1126,537],[1126,471]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1060,471],[1060,537],[1126,537],[1126,471]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[1101,643],[1101,365]],"c":true}]},{"t":40}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[1101,643],[1101,365]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1060,471],[1060,537],[1126,537],[1126,471]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1060,471],[1060,537],[1126,537],[1126,471]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[1101,643],[1101,365]],"c":true}]},{"t":40}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"i","pt":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[1101,643],[1101,365]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1087,365],[1087,643],[1101,643],[1101,365]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1087,365],[1087,643],[1101,643],[1101,365]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[1101,643],[1101,365]],"c":true}]},{"t":40}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"},{"inv":false,"mode":"i","pt":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[1101,643],[1101,365]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[836.5,643],[836.5,365]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[836.5,643],[836.5,365]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,365],[823,643],[1101,643],[1101,365]],"c":true}]},{"t":40}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 2"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,403],[823,519.5],[994,519.5],[994,403]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[90]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[90],"e":[100]},{"t":40}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"},{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1009.5,484],[1009.5,643],[1101,643],[1101,484]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[80]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[80],"e":[100]},{"t":40}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 2"},{"inv":false,"mode":"l","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[862,365],[862,626],[1073.5,626],[1073.5,365]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[80],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[100],"e":[80]},{"t":40}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 3"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]}],"fonts":{"list":[{"fName":"SamsungOne-500","fFamily":"SamsungOne","fStyle":"500","ascent":70.9991455078125}]},"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"div","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":5,"nm":"F Masks_01 Mask Path","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_01 Mask Path","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"F Masks_02 Mask Opacity","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[679.25,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_02 Mask Opacity","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":5,"nm":"F Masks_03 Add","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1320,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_03 Add","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"F Masks_04 Subtract","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_04 Subtract","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":5,"nm":"F Masks_05 Intersect","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[679.25,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_05 Intersect","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":5,"nm":"F Masks_06 Lighten","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1320,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_06 Lighten","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"F Masks_01 Mask Path","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[328,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"F Masks_02 Mask Opacity","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965.75,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"F Masks_03 Add","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1597.5,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"F Masks_04 Subtract","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[328,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"F Masks_05 Intersect","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965.75,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"F Masks_06 Lighten","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1597.5,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0}],"markers":[],"chars":[{"ch":"F","size":150,"style":"500","w":48.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.654,0],[16.415,0],[16.415,-30.716],[42.096,-30.716],[42.096,-37.967],[16.415,-37.967],[16.415,-60.526],[44.211,-60.526],[44.211,-67.877],[7.654,-67.877]],"c":true},"ix":2},"nm":"F","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"F","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":" ","size":150,"style":"500","w":21.2,"data":{},"fFamily":"SamsungOne"},{"ch":"M","size":150,"style":"500","w":80.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.712,-6.848],[0,0],[2.82,8.359],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.201,8.459],[0,0],[-3.223,-9.567],[0,0],[0,0],[0,0],[-2.316,7.956],[0,0],[-0.504,-9.467]],"o":[[0,0],[0,0],[0,0],[0,0],[-3.021,8.56],[0,0],[-1.712,-7.05],[0,0],[0,0],[0,0],[0,0],[0,0],[0.604,-10.172],[0,0],[1.913,8.057],[0,0],[0,0],[0,0],[3.424,-9.366],[0,0],[-0.101,8.459],[0,0]],"v":[[66.568,0],[75.128,0],[70.898,-67.877],[59.72,-67.877],[47.635,-35.046],[40.485,-12.186],[40.182,-12.186],[33.334,-35.046],[21.753,-67.877],[10.574,-67.877],[5.841,0],[14.2,0],[16.013,-29.105],[17.322,-59.116],[17.523,-59.116],[25.378,-32.73],[36.356,-0.403],[43.002,-0.403],[54.987,-33.334],[63.547,-59.116],[63.849,-59.116],[64.856,-29.81]],"c":true},"ix":2},"nm":"M","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"M","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"a","size":150,"style":"500","w":48.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.23],[0,0],[14.905,0],[4.028,-2.618],[0,0],[-4.532,0],[0,-4.028],[0,0],[0,-11.783],[-9.869,0],[-2.719,3.827],[0,0],[0,0]],"o":[[-0.604,-3.323],[0,0],[0,-9.769],[-6.143,0],[0,0],[3.424,-2.216],[9.97,0],[0,0],[-18.832,-0.101],[0,7.05],[6.949,0],[0,0],[0,0],[0,0]],"v":[[42.398,0],[41.592,-11.682],[41.592,-29.91],[23.062,-49.85],[7.05,-45.52],[9.064,-39.679],[21.753,-43.304],[32.831,-32.025],[32.831,-31.018],[3.525,-12.891],[18.43,1.108],[33.334,-6.143],[33.636,-6.143],[34.341,0]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-0.906],[6.345,0],[0,5.74],[-9.668,-0.201]],"o":[[0,0.906],[-1.41,4.129],[-4.532,0],[0,-9.467],[0,0]],"v":[[33.032,-16.415],[32.529,-13.596],[20.746,-5.438],[12.387,-13.898],[33.032,-24.875]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"a","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"s","size":150,"style":"500","w":39.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-5.338,0],[0,8.56],[8.459,3.223],[0,4.028],[-5.237,0],[-1.913,-1.208],[0,0],[4.935,0],[0,-7.855],[-8.762,-3.122],[0,-4.23],[6.445,0],[2.618,1.712]],"o":[[3.424,2.014],[11.581,0],[0,-7.251],[-6.345,-2.417],[0,-3.625],[4.532,0],[0,0],[-2.719,-1.611],[-10.474,0],[0,5.841],[6.546,2.417],[0,4.028],[-4.431,0],[0,0]],"v":[[3.928,-2.316],[17.624,1.007],[35.852,-13.596],[23.062,-28.299],[13.797,-36.557],[21.954,-43.204],[31.924,-40.384],[34.14,-46.829],[22.156,-49.85],[5.338,-35.55],[18.228,-21.753],[27.292,-12.79],[17.825,-5.539],[6.143,-9.064]],"c":true},"ix":2},"nm":"s","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"s","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"k","size":150,"style":"500","w":48.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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],[1.208,-1.712],[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],[-1.41,1.712],[0,0],[0,0]],"v":[[16.113,-71.503],[7.352,-71.503],[7.352,0],[16.113,0],[16.113,-18.329],[20.645,-23.364],[37.463,0],[48.239,0],[26.788,-28.702],[45.621,-48.743],[34.946,-48.743],[20.645,-31.924],[16.315,-26.385],[16.113,-26.385]],"c":true},"ix":2},"nm":"k","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"k","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"_","size":150,"style":"500","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,7.553],[0,12.589],[50.354,12.589],[50.354,7.553]],"c":true},"ix":2},"nm":"_","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"_","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"0","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.797,0],[0,-21.954],[-12.79,0],[0,22.256]],"o":[[-13.293,0],[0.201,21.652],[14.502,0],[0,-20.847]],"v":[[26.385,-66.568],[3.625,-32.529],[25.278,1.108],[48.038,-33.435]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-7.755,0],[0,-16.113],[9.064,0],[0,17.02]],"o":[[9.164,0],[0,16.718],[-8.057,0],[0,-17.825]],"v":[[25.882,-59.72],[39.175,-33.032],[25.781,-5.74],[12.488,-32.428]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"0","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"6","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.618,-0.403],[5.438,-5.338],[0,-12.891],[-13.998,0],[0,11.984],[11.581,0],[3.122,-4.129],[0,0],[-13.898,2.316],[-1.813,-0.101]],"o":[[-1.611,0],[-8.258,1.007],[-6.445,6.445],[0,17.02],[13.596,0],[0,-12.79],[-7.251,0],[0,0],[1.511,-10.776],[2.518,-0.403],[0,0]],"v":[[41.895,-66.467],[35.449,-65.964],[14.502,-56.296],[3.424,-26.788],[26.587,1.108],[48.34,-21.954],[28.601,-43.103],[12.79,-35.55],[12.488,-35.55],[35.248,-58.813],[41.895,-59.216]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.654,0],[0.201,10.776],[-0.604,1.007],[-5.338,0],[0,-9.366]],"o":[[-9.265,0],[0,-1.611],[2.417,-4.733],[8.157,0],[0,9.366]],"v":[[26.587,-5.74],[12.186,-24.472],[13.193,-28.4],[25.882,-36.456],[39.377,-21.451]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"6","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"L","size":150,"style":"500","w":47.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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.654,0],[45.419,0],[45.419,-7.352],[16.415,-7.352],[16.415,-67.877],[7.654,-67.877]],"c":true},"ix":2},"nm":"L","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"L","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"i","size":150,"style":"500","w":23.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16.214,0],[16.214,-48.743],[7.352,-48.743],[7.352,0]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[3.323,0],[0,-3.122],[-3.122,0],[0.101,3.021]],"o":[[-3.223,0],[0,3.021],[3.525,0],[0,-3.122]],"v":[[11.783,-67.978],[6.244,-62.439],[11.581,-57.001],[17.221,-62.439]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"i","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"g","size":150,"style":"500","w":55.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[8.459,0],[0,-16.516],[-12.085,0],[-2.719,4.532],[0,0],[0,0],[9.064,0],[3.223,2.014],[0,0],[-5.841,0],[-4.733,4.431],[0,11.179],[0,0],[-0.201,3.525]],"o":[[0,0],[0,0],[-2.115,-4.028],[-11.179,0],[0,13.495],[7.553,0],[0,0],[0,0],[0,12.286],[-6.042,0],[0,0],[3.928,2.618],[6.143,0],[4.733,-4.23],[0,0],[0,-5.942],[0,0]],"v":[[41.592,-48.743],[41.19,-41.391],[40.988,-41.391],[25.781,-49.85],[3.827,-23.969],[24.573,-0.201],[40.082,-8.359],[40.283,-8.359],[40.283,-2.921],[24.573,14.099],[10.272,10.272],[8.057,17.02],[24.271,21.048],[41.995,15.207],[48.944,-7.05],[48.944,-35.349],[49.347,-48.743]],"c":true},"ix":2},"nm":"g","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.504,-1.511],[5.438,0],[0,9.567],[-8.459,0],[-1.611,-5.136],[0,-1.511]],"o":[[0,1.511],[-1.913,5.64],[-9.567,0],[0,-11.279],[6.445,0],[0.403,1.208],[0,0]],"v":[[40.182,-20.746],[39.478,-16.013],[27.191,-6.949],[12.79,-24.472],[27.292,-42.902],[39.679,-33.536],[40.182,-29.507]],"c":true},"ix":2},"nm":"g","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"g","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"h","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.504,1.208],[-5.74,0],[0,-7.855],[0,0],[0,0],[0,0],[6.546,0],[2.618,-1.511],[1.41,-2.518],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-1.712],[1.611,-4.834],[8.359,0],[0,0],[0,0],[0,0],[0,-16.818],[-3.323,0],[-2.719,1.511],[0,0],[0,0],[0,0],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.407],[16.818,-33.636],[28.702,-42.499],[39.981,-27.997],[39.981,0],[48.843,0],[48.843,-29.004],[31.824,-49.85],[22.76,-47.333],[16.415,-41.089],[16.214,-41.089],[16.214,-71.503],[7.352,-71.503]],"c":true},"ix":2},"nm":"h","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"h","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"t","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.518,-2.618],[-4.129,0],[-1.712,0.705],[0,0],[2.316,0],[0,6.042],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,5.74],[2.115,2.417],[3.424,0],[0,0],[-1.108,0.302],[-4.935,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[9.366,-60.425],[9.366,-48.743],[1.813,-48.743],[1.813,-41.995],[9.366,-41.995],[9.366,-15.408],[12.79,-2.719],[22.357,1.007],[30.212,-0.201],[29.81,-6.848],[24.673,-6.244],[18.027,-15.71],[18.027,-41.995],[30.716,-41.995],[30.716,-48.743],[18.027,-48.743],[18.027,-62.741]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"t","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"e","size":150,"style":"500","w":50.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,1.813],[15.912,0],[0,-14.703],[-15.005,0],[-3.122,1.41],[0,0],[6.345,0],[0.201,11.984]],"o":[[0.101,-0.906],[0,-8.963],[-14.2,0],[0,14.703],[7.755,0],[0,0],[-3.323,1.41],[-8.862,0],[0,0]],"v":[[46.527,-22.76],[46.829,-26.889],[26.688,-49.85],[3.827,-23.566],[27.795,1.007],[44.009,-2.014],[42.499,-8.359],[29.004,-5.841],[12.286,-22.76]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-8.963,0],[0.101,-5.64]],"o":[[0.705,-6.143],[9.97,0],[0,0]],"v":[[12.387,-29.105],[25.983,-43.506],[38.269,-29.105]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"e","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"n","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.403,1.108],[-5.841,0],[0,-7.855],[0,0],[0,0],[0,0],[6.747,0],[2.417,-4.633],[0,0],[0,0],[0,0],[0,-5.035]],"o":[[0,0],[0,0],[0,-1.511],[1.511,-4.935],[8.359,0],[0,0],[0,0],[0,0],[0,-16.718],[-8.057,0],[0,0],[0,0],[0,0],[0.302,4.028],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.306],[16.818,-33.435],[28.702,-42.499],[39.981,-28.098],[39.981,0],[48.843,0],[48.843,-29.105],[31.622,-49.85],[15.509,-40.686],[15.308,-40.686],[14.804,-48.743],[6.949,-48.743],[7.352,-35.55]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"n","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"5","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-3.726,0],[-0.101,-8.459],[8.359,0],[2.719,1.611],[0,0],[-7.15,0],[0,12.79],[5.136,2.921],[5.035,0],[1.511,-0.201],[0,0],[0,0]],"o":[[0,0],[0,0],[2.417,-0.302],[13.092,0],[0,8.762],[-5.942,0],[0,0],[3.122,2.014],[14.2,0],[0,-8.258],[-4.028,-2.417],[-2.417,0],[0,0],[0,0],[0,0]],"v":[[43.607,-65.46],[12.286,-65.46],[8.057,-34.039],[17.12,-34.744],[35.953,-20.242],[20.444,-6.042],[6.445,-9.668],[4.23,-2.921],[20.544,1.108],[44.916,-21.249],[35.55,-38.068],[21.451,-41.592],[16.113,-41.19],[18.631,-58.008],[43.607,-58.008]],"c":true},"ix":2},"nm":"5","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"5","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"I","size":150,"style":"500","w":23.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.654,-67.877],[7.654,0],[16.415,0],[16.415,-67.877]],"c":true},"ix":2},"nm":"I","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"I","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"r","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.201,1.208],[-6.244,0],[-0.906,-0.201],[0,0],[1.007,0],[2.216,-6.546],[0,0],[0,0],[0,0],[0,-5.74]],"o":[[0,0],[0,0],[0,-1.511],[1.208,-6.647],[1.208,0],[0,0],[-0.806,-0.201],[-5.942,0],[0,0],[0,0],[0,0],[0.302,4.532],[0,0]],"v":[[7.352,0],[16.113,0],[16.113,-25.983],[16.516,-30.112],[28.4,-41.492],[31.421,-41.19],[31.421,-49.548],[28.903,-49.85],[15.408,-39.175],[15.005,-39.175],[14.703,-48.743],[6.949,-48.743],[7.352,-33.536]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"r","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"c","size":150,"style":"500","w":44.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.035,0],[0,11.279],[-11.179,0],[-2.115,-1.208],[0,0],[5.237,0],[0,-15.005],[-14.703,0],[-2.316,1.208]],"o":[[-2.518,1.108],[-9.668,0],[0,-10.172],[4.834,0],[0,0],[-2.417,-1.208],[-15.912,0],[0,14.905],[6.546,0],[0,0]],"v":[[40.585,-8.459],[29.709,-6.042],[12.79,-24.271],[30.011,-42.7],[40.283,-40.384],[42.297,-47.232],[30.011,-49.75],[3.827,-23.868],[28.098,1.007],[42.096,-1.813]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"c","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"4","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[40.283,0],[40.283,-17.825],[49.448,-17.825],[49.448,-24.774],[40.283,-24.774],[40.283,-65.46],[30.716,-65.46],[1.511,-23.666],[1.511,-17.825],[31.924,-17.825],[31.924,0]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.014,3.827],[0,0],[0,-3.424],[0,0]],"o":[[0,0],[0,0],[1.813,-3.021],[0,0],[-0.201,3.424],[0,0],[0,0]],"v":[[10.474,-24.774],[10.474,-24.976],[26.486,-47.232],[31.924,-56.9],[32.227,-56.9],[31.924,-46.628],[31.924,-24.774]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"4","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"S","size":150,"style":"500","w":49.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.546,0],[0,10.474],[11.481,4.431],[0,6.345],[-9.265,0],[-2.216,-1.208],[0,0],[6.949,0],[0,-10.574],[-11.078,-3.928],[0,-6.345],[8.963,0],[3.928,2.417]],"o":[[3.625,2.417],[16.013,0],[0,-9.97],[-9.366,-3.625],[0,-4.633],[6.143,0],[0,0],[-3.021,-1.712],[-13.193,0],[0,9.567],[9.164,3.525],[0,6.848],[-6.042,0],[0,0]],"v":[[4.23,-3.323],[21.552,1.007],[45.319,-18.53],[27.997,-38.47],[14.502,-51.562],[27.292,-61.734],[40.182,-58.511],[42.599,-65.662],[27.594,-68.985],[5.64,-50.555],[23.566,-31.32],[36.356,-17.825],[22.156,-6.244],[6.445,-10.675]],"c":true},"ix":2},"nm":"S","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"S","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"u","size":150,"style":"500","w":55.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0.504,-1.309],[5.942,0],[0,9.265],[0,0],[0,0],[0,0],[-7.654,0],[-2.316,3.928],[0,0],[0,0],[0,0],[0,5.035]],"o":[[0,0],[0,0],[0,1.611],[-1.611,3.928],[-8.057,0],[0,0],[0,0],[0,0],[0,17.12],[8.661,0],[0,0],[0,0],[0,0],[-0.302,-3.827],[0,0]],"v":[[48.138,-48.743],[39.276,-48.743],[39.276,-18.832],[38.47,-14.301],[26.788,-6.244],[15.912,-21.753],[15.912,-48.743],[7.05,-48.743],[7.05,-20.242],[23.868,1.108],[39.981,-7.956],[40.182,-7.956],[40.686,0],[48.541,0],[48.138,-13.293]],"c":true},"ix":2},"nm":"u","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"u","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"b","size":150,"style":"500","w":56.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-7.05,0],[0,17.422],[12.085,0],[3.122,-5.438],[0,0],[0,0],[0,0],[0,0],[0.201,-3.323]],"o":[[0,0],[0,0],[3.625,6.445],[10.876,0],[0.101,-14.804],[-7.855,0],[0,0],[0,0],[0,0],[0,0],[0,4.33],[0,0]],"v":[[14.603,0],[15.005,-8.057],[15.308,-8.057],[31.622,1.108],[53.476,-24.976],[32.932,-49.85],[16.315,-40.887],[16.113,-40.887],[16.113,-71.503],[7.352,-71.503],[7.352,-12.589],[6.949,0]],"c":true},"ix":2},"nm":"b","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.201,1.007],[-6.042,0],[0,-9.769],[9.265,0],[1.712,6.143],[0,1.108]],"o":[[0,-1.41],[1.813,-6.747],[9.467,0],[0,11.179],[-6.445,0],[-0.201,-1.007],[0,0]],"v":[[16.113,-28.299],[16.617,-31.924],[30.112,-42.801],[44.614,-24.673],[29.81,-5.942],[16.516,-16.315],[16.113,-19.537]],"c":true},"ix":2},"nm":"b","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"b","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"3","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-7.352,0],[0,10.474],[8.057,1.611],[0,0],[0,6.747],[12.891,0],[3.424,-2.518],[0,0],[-5.237,0],[0,-5.237],[6.445,0],[0,0],[0,0],[0,0],[-0.101,-9.164],[11.38,0],[2.518,1.611]],"o":[[3.223,2.115],[15.71,0],[0,-9.164],[0,0],[8.057,-2.921],[0,-7.956],[-7.05,0],[0,0],[2.82,-2.014],[8.157,0],[0,7.755],[0,0],[0,0],[0,0],[8.56,0],[0.101,5.438],[-6.143,0],[0,0]],"v":[[4.23,-3.323],[21.249,1.108],[45.117,-18.53],[30.515,-35.349],[30.515,-35.55],[42.599,-50.958],[23.868,-66.568],[6.747,-61.533],[9.064,-55.087],[22.156,-59.418],[33.636,-49.548],[19.034,-38.47],[14.099,-38.47],[14.099,-31.824],[19.034,-31.824],[35.953,-18.732],[21.149,-6.042],[6.647,-10.172]],"c":true},"ix":2},"nm":"3","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"3","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"A","size":150,"style":"500","w":61.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[42.7,-21.35],[49.951,0],[59.317,0],[36.154,-67.877],[25.58,-67.877],[2.518,0],[11.581,0],[18.631,-21.35]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.007,4.028],[0,0],[-1.511,-4.431],[0,0]],"o":[[0,0],[1.309,-4.129],[0,0],[1.007,3.928],[0,0],[0,0]],"v":[[20.444,-28.198],[27.09,-47.836],[30.515,-60.123],[30.716,-60.123],[34.241,-47.736],[40.887,-28.198]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"A","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"d","size":150,"style":"500","w":56.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[7.452,0],[-0.101,-16.214],[-11.783,0],[-2.719,5.438],[0,0],[0,0],[0,0],[0,4.33],[0,0]],"o":[[0,0],[0,0],[-2.216,-3.928],[-11.884,0],[0,14.804],[7.956,0],[0,0],[0,0],[0,0],[-0.302,-3.323],[0,0],[0,0]],"v":[[40.585,-71.503],[40.585,-42.398],[40.384,-42.398],[25.681,-49.85],[3.827,-23.666],[24.673,1.108],[41.29,-8.459],[41.492,-8.459],[41.895,0],[49.85,0],[49.448,-12.589],[49.448,-71.503]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-1.208],[5.942,0],[0,9.869],[-9.164,0],[-1.309,-5.64],[0,-1.108]],"o":[[0,1.41],[-1.611,6.647],[-9.567,0],[0,-10.776],[6.647,0],[0.302,1.108],[0,0]],"v":[[40.585,-20.444],[40.182,-16.617],[27.191,-6.042],[12.79,-24.069],[27.393,-42.902],[40.182,-32.629],[40.585,-28.903]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"d","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"2","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,12.085],[14.099,0],[4.532,-3.827],[0,0],[-5.942,0],[0,-6.647],[16.718,-15.912],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[13.797,-13.293],[0,-9.366],[-7.553,0],[0,0],[3.021,-2.518],[9.769,0],[-0.101,9.869],[0,0],[0,0],[0,0]],"v":[[46.326,0],[46.326,-7.352],[16.919,-7.352],[16.919,-7.553],[22.156,-12.387],[44.714,-47.534],[24.673,-66.568],[6.143,-59.921],[8.963,-53.677],[22.861,-59.216],[35.852,-46.426],[11.481,-12.186],[4.532,-5.438],[4.532,0]],"c":true},"ix":2},"nm":"2","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"O","size":150,"style":"500","w":68.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[18.53,0],[0,-21.552],[-17.926,0],[0,23.364]],"o":[[-18.127,0],[0,20.544],[17.322,0],[0,-20.142]],"v":[[35.147,-68.985],[3.625,-33.334],[34.14,1.108],[65.662,-34.644]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-14.502,0],[0,-13.495],[13.898,0],[0,14.502]],"o":[[14.603,0],[0,15.408],[-13.797,0],[0,-14.905]],"v":[[34.744,-61.835],[56.396,-34.241],[34.644,-6.042],[12.991,-33.536]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"O","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"p","size":150,"style":"500","w":56.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-6.445,0],[0,17.523],[11.783,0],[3.625,-5.942],[0,0],[0,0],[0,0],[0,-6.244]],"o":[[0,0],[0,0],[0,0],[2.921,4.834],[11.481,0],[0,-14.804],[-7.956,0],[0,0],[0,0],[0,0],[0.201,4.633],[0,0]],"v":[[7.352,19.94],[16.113,19.94],[16.113,-6.546],[16.315,-6.546],[31.32,1.108],[53.476,-25.076],[32.831,-49.85],[15.509,-40.384],[15.308,-40.384],[14.905,-48.743],[6.949,-48.743],[7.352,-32.831]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.302,1.108],[-6.042,0],[0,-9.769],[9.366,0],[1.611,6.143],[0,1.309]],"o":[[0,-1.208],[1.712,-6.647],[9.366,0],[0,11.179],[-6.345,0],[-0.201,-1.108],[0,0]],"v":[[16.113,-28.198],[16.718,-31.824],[30.112,-42.801],[44.614,-24.673],[29.81,-5.841],[16.516,-16.214],[16.113,-19.839]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"p","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"y","size":150,"style":"500","w":48.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-0.504],[0.403,-0.906],[2.417,-1.913],[2.216,-0.705],[0,0],[-4.33,3.827],[-6.345,16.718],[0,0],[0,0],[0,0],[0.906,-2.921],[0,0],[1.108,3.223],[0,0]],"o":[[0,0],[0.403,1.108],[0,0.504],[-2.014,4.532],[-2.618,2.216],[0,0],[2.216,-0.403],[6.042,-5.237],[0,0],[0,0],[0,0],[-1.208,3.525],[0,0],[-0.806,-2.921],[0,0],[0,0]],"v":[[0.906,-48.743],[18.933,-3.827],[19.537,-1.511],[18.832,0.604],[11.38,10.474],[3.625,14.804],[5.841,22.256],[16.718,16.516],[33.435,-13.998],[46.729,-48.743],[37.363,-48.743],[27.695,-20.142],[24.573,-9.97],[24.371,-9.97],[21.249,-19.94],[10.574,-48.743]],"c":true},"ix":2},"nm":"y","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"y","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"1","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[23.767,0],[32.327,0],[32.327,-65.46],[24.774,-65.46],[10.474,-57.806],[12.186,-51.059],[23.566,-57.202],[23.767,-57.202]],"c":true},"ix":2},"nm":"1","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"P","size":150,"style":"500","w":53.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.618,0],[-4.633,4.935],[0,6.143],[3.726,3.223],[8.661,0],[4.23,-0.705]],"o":[[0,0],[0,0],[2.014,0.504],[8.56,0],[3.424,-3.525],[0,-6.042],[-4.028,-3.625],[-7.05,0],[0,0]],"v":[[7.654,0],[16.415,0],[16.415,-27.191],[23.465,-26.587],[44.211,-34.039],[49.448,-48.541],[43.506,-62.741],[24.472,-68.381],[7.654,-67.072]],"c":true},"ix":2},"nm":"P","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-3.827,0],[0,-8.963],[10.574,0],[1.913,0.504]],"o":[[1.511,-0.403],[9.668,0],[0,9.366],[-2.921,0],[0,0]],"v":[[16.415,-60.727],[24.673,-61.432],[40.686,-48.138],[23.666,-33.636],[16.415,-34.341]],"c":true},"ix":2},"nm":"P","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"P","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/UXSample_1920x1080/F Masks_All_02_1920x1080.json b/external/rlottie/example/resource/UXSample_1920x1080/F Masks_All_02_1920x1080.json new file mode 100644 index 000000000..e4e2462df --- /dev/null +++ b/external/rlottie/example/resource/UXSample_1920x1080/F Masks_All_02_1920x1080.json @@ -0,0 +1 @@ +{"v":"5.1.18","fr":30,"ip":0,"op":41,"w":1920,"h":1080,"nm":"F Masks_All_02","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1924.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[643.833,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[1284.167,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[3.5,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[60,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-994,4],[1024,4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,403],[823,519.5],[994,519.5],[994,403]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[20],"e":[100]},{"t":40}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"},{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1009.5,484],[1009.5,643],[1101,643],[1101,484]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[50],"e":[100]},{"t":40}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 2"},{"inv":false,"mode":"d","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[862,365],[862,626],[1073.5,626],[1073.5,365]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[80],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[100],"e":[80]},{"t":40}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 3"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[823,403],[823,519.5],[994,519.5],[994,403]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[100],"e":[100]},{"t":40}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"},{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1009.5,484],[1009.5,643],[1101,643],[1101,484]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[80]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[80],"e":[100]},{"t":40}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 2"},{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[862,365],[862,626],[1073.5,626],[1073.5,365]],"c":true},"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[80],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[100],"e":[80]},{"t":40}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 3"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[904,446],[904,562],[1020,562],[1020,446]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":0,"s":[0],"e":[200]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":20,"s":[200],"e":[0]},{"t":40}],"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectantgle Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,244,0],"ix":2},"a":{"a":0,"k":[962,504,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[904,446],[904,562],[1020,562],[1020,446]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139,139],[-139,139],[-139,-139],[139,-139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054901960784,0.63137254902,0.901960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[962,504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":6300,"st":0,"bm":0}]}],"fonts":{"list":[{"fName":"SamsungOne-500","fFamily":"SamsungOne","fStyle":"500","ascent":70.9991455078125}]},"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"div","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":5,"nm":"F Masks_07 Darken","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_07 Darken","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"F Masks_08 Difference","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[679.25,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_08 Difference","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":5,"nm":"F Masks_09 Expansion","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1320,62,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_09 Expansion","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"F Masks_10 Feather","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.375,601.938,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[14.576,14.576,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":150,"f":"SamsungOne-500","t":"F Masks_10 Feather","j":0,"tr":44,"lh":180,"ls":0,"fc":[0.05,0.63,0.9]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":42,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"F Masks_07 Darken_750x488","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[328,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"F Masks_08 Difference_750x488","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965.75,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"F Masks_09 Expansion_750x488","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1597.5,267,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"F Masks_10 Feather_750x488","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[328,809.5,0],"ix":2},"a":{"a":0,"k":[375,244,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"w":750,"h":488,"ip":0,"op":6300,"st":0,"bm":0}],"markers":[],"chars":[{"ch":"F","size":150,"style":"500","w":48.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.654,0],[16.415,0],[16.415,-30.716],[42.096,-30.716],[42.096,-37.967],[16.415,-37.967],[16.415,-60.526],[44.211,-60.526],[44.211,-67.877],[7.654,-67.877]],"c":true},"ix":2},"nm":"F","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"F","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":" ","size":150,"style":"500","w":21.2,"data":{},"fFamily":"SamsungOne"},{"ch":"M","size":150,"style":"500","w":80.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.712,-6.848],[0,0],[2.82,8.359],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.201,8.459],[0,0],[-3.223,-9.567],[0,0],[0,0],[0,0],[-2.316,7.956],[0,0],[-0.504,-9.467]],"o":[[0,0],[0,0],[0,0],[0,0],[-3.021,8.56],[0,0],[-1.712,-7.05],[0,0],[0,0],[0,0],[0,0],[0,0],[0.604,-10.172],[0,0],[1.913,8.057],[0,0],[0,0],[0,0],[3.424,-9.366],[0,0],[-0.101,8.459],[0,0]],"v":[[66.568,0],[75.128,0],[70.898,-67.877],[59.72,-67.877],[47.635,-35.046],[40.485,-12.186],[40.182,-12.186],[33.334,-35.046],[21.753,-67.877],[10.574,-67.877],[5.841,0],[14.2,0],[16.013,-29.105],[17.322,-59.116],[17.523,-59.116],[25.378,-32.73],[36.356,-0.403],[43.002,-0.403],[54.987,-33.334],[63.547,-59.116],[63.849,-59.116],[64.856,-29.81]],"c":true},"ix":2},"nm":"M","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"M","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"a","size":150,"style":"500","w":48.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.23],[0,0],[14.905,0],[4.028,-2.618],[0,0],[-4.532,0],[0,-4.028],[0,0],[0,-11.783],[-9.869,0],[-2.719,3.827],[0,0],[0,0]],"o":[[-0.604,-3.323],[0,0],[0,-9.769],[-6.143,0],[0,0],[3.424,-2.216],[9.97,0],[0,0],[-18.832,-0.101],[0,7.05],[6.949,0],[0,0],[0,0],[0,0]],"v":[[42.398,0],[41.592,-11.682],[41.592,-29.91],[23.062,-49.85],[7.05,-45.52],[9.064,-39.679],[21.753,-43.304],[32.831,-32.025],[32.831,-31.018],[3.525,-12.891],[18.43,1.108],[33.334,-6.143],[33.636,-6.143],[34.341,0]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.302,-0.906],[6.345,0],[0,5.74],[-9.668,-0.201]],"o":[[0,0.906],[-1.41,4.129],[-4.532,0],[0,-9.467],[0,0]],"v":[[33.032,-16.415],[32.529,-13.596],[20.746,-5.438],[12.387,-13.898],[33.032,-24.875]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"a","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"s","size":150,"style":"500","w":39.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-5.338,0],[0,8.56],[8.459,3.223],[0,4.028],[-5.237,0],[-1.913,-1.208],[0,0],[4.935,0],[0,-7.855],[-8.762,-3.122],[0,-4.23],[6.445,0],[2.618,1.712]],"o":[[3.424,2.014],[11.581,0],[0,-7.251],[-6.345,-2.417],[0,-3.625],[4.532,0],[0,0],[-2.719,-1.611],[-10.474,0],[0,5.841],[6.546,2.417],[0,4.028],[-4.431,0],[0,0]],"v":[[3.928,-2.316],[17.624,1.007],[35.852,-13.596],[23.062,-28.299],[13.797,-36.557],[21.954,-43.204],[31.924,-40.384],[34.14,-46.829],[22.156,-49.85],[5.338,-35.55],[18.228,-21.753],[27.292,-12.79],[17.825,-5.539],[6.143,-9.064]],"c":true},"ix":2},"nm":"s","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"s","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"k","size":150,"style":"500","w":48.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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],[1.208,-1.712],[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],[-1.41,1.712],[0,0],[0,0]],"v":[[16.113,-71.503],[7.352,-71.503],[7.352,0],[16.113,0],[16.113,-18.329],[20.645,-23.364],[37.463,0],[48.239,0],[26.788,-28.702],[45.621,-48.743],[34.946,-48.743],[20.645,-31.924],[16.315,-26.385],[16.113,-26.385]],"c":true},"ix":2},"nm":"k","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"k","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"_","size":150,"style":"500","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,7.553],[0,12.589],[50.354,12.589],[50.354,7.553]],"c":true},"ix":2},"nm":"_","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"_","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"1","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[23.767,0],[32.327,0],[32.327,-65.46],[24.774,-65.46],[10.474,-57.806],[12.186,-51.059],[23.566,-57.202],[23.767,-57.202]],"c":true},"ix":2},"nm":"1","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"0","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.797,0],[0,-21.954],[-12.79,0],[0,22.256]],"o":[[-13.293,0],[0.201,21.652],[14.502,0],[0,-20.847]],"v":[[26.385,-66.568],[3.625,-32.529],[25.278,1.108],[48.038,-33.435]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-7.755,0],[0,-16.113],[9.064,0],[0,17.02]],"o":[[9.164,0],[0,16.718],[-8.057,0],[0,-17.825]],"v":[[25.882,-59.72],[39.175,-33.032],[25.781,-5.74],[12.488,-32.428]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"0","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"e","size":150,"style":"500","w":50.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,1.813],[15.912,0],[0,-14.703],[-15.005,0],[-3.122,1.41],[0,0],[6.345,0],[0.201,11.984]],"o":[[0.101,-0.906],[0,-8.963],[-14.2,0],[0,14.703],[7.755,0],[0,0],[-3.323,1.41],[-8.862,0],[0,0]],"v":[[46.527,-22.76],[46.829,-26.889],[26.688,-49.85],[3.827,-23.566],[27.795,1.007],[44.009,-2.014],[42.499,-8.359],[29.004,-5.841],[12.286,-22.76]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-8.963,0],[0.101,-5.64]],"o":[[0.705,-6.143],[9.97,0],[0,0]],"v":[[12.387,-29.105],[25.983,-43.506],[38.269,-29.105]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"e","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"t","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.518,-2.618],[-4.129,0],[-1.712,0.705],[0,0],[2.316,0],[0,6.042],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,5.74],[2.115,2.417],[3.424,0],[0,0],[-1.108,0.302],[-4.935,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[9.366,-60.425],[9.366,-48.743],[1.813,-48.743],[1.813,-41.995],[9.366,-41.995],[9.366,-15.408],[12.79,-2.719],[22.357,1.007],[30.212,-0.201],[29.81,-6.848],[24.673,-6.244],[18.027,-15.71],[18.027,-41.995],[30.716,-41.995],[30.716,-48.743],[18.027,-48.743],[18.027,-62.741]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"t","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"h","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.504,1.208],[-5.74,0],[0,-7.855],[0,0],[0,0],[0,0],[6.546,0],[2.618,-1.511],[1.41,-2.518],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-1.712],[1.611,-4.834],[8.359,0],[0,0],[0,0],[0,0],[0,-16.818],[-3.323,0],[-2.719,1.511],[0,0],[0,0],[0,0],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.407],[16.818,-33.636],[28.702,-42.499],[39.981,-27.997],[39.981,0],[48.843,0],[48.843,-29.004],[31.824,-49.85],[22.76,-47.333],[16.415,-41.089],[16.214,-41.089],[16.214,-71.503],[7.352,-71.503]],"c":true},"ix":2},"nm":"h","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"h","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"r","size":150,"style":"500","w":33.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.201,1.208],[-6.244,0],[-0.906,-0.201],[0,0],[1.007,0],[2.216,-6.546],[0,0],[0,0],[0,0],[0,-5.74]],"o":[[0,0],[0,0],[0,-1.511],[1.208,-6.647],[1.208,0],[0,0],[-0.806,-0.201],[-5.942,0],[0,0],[0,0],[0,0],[0.302,4.532],[0,0]],"v":[[7.352,0],[16.113,0],[16.113,-25.983],[16.516,-30.112],[28.4,-41.492],[31.421,-41.19],[31.421,-49.548],[28.903,-49.85],[15.408,-39.175],[15.005,-39.175],[14.703,-48.743],[6.949,-48.743],[7.352,-33.536]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"r","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"9","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.223,0.504],[-5.035,4.935],[0,14.401],[13.394,0],[0,-12.387],[-11.783,0],[-3.625,4.431],[0,0],[4.33,-3.928],[5.136,-0.705],[1.913,0.201]],"o":[[2.115,0.101],[7.05,-0.806],[6.445,-6.244],[0,-16.718],[-13.394,0],[0,11.179],[6.546,0],[0,0],[-1.208,7.755],[-3.726,3.525],[-3.021,0.302],[0,0]],"v":[[9.668,1.007],[17.825,0.504],[36.859,-8.258],[48.138,-38.974],[26.486,-66.568],[4.129,-43.304],[23.465,-23.264],[38.873,-30.313],[39.175,-30.313],[30.515,-12.891],[16.818,-6.546],[9.668,-6.244]],"c":true},"ix":2},"nm":"9","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-7.553,0],[0,-11.179],[0.504,-0.806],[5.942,0],[0,8.157]],"o":[[9.265,0],[0,1.41],[-2.316,3.928],[-7.654,0],[0,-9.265]],"v":[[25.781,-59.821],[39.175,-40.082],[38.37,-36.859],[25.479,-30.011],[12.891,-43.909]],"c":true},"ix":2},"nm":"9","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"9","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"E","size":150,"style":"500","w":49.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[42.801,-39.075],[16.415,-39.075],[16.415,-60.526],[44.312,-60.526],[44.312,-67.877],[7.654,-67.877],[7.654,0],[45.822,0],[45.822,-7.352],[16.415,-7.352],[16.415,-31.824],[42.801,-31.824]],"c":true},"ix":2},"nm":"E","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"E","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"x","size":150,"style":"500","w":46.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-1.611,2.921],[0,0],[-1.913,-2.82],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.611,-2.921],[0,0],[1.813,2.719],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[1.813,-2.921],[0,0],[1.712,2.921],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.611,2.618],[0,0],[-1.611,-2.719],[0,0],[0,0]],"v":[[1.611,-48.743],[18.127,-24.875],[0.806,0],[10.574,0],[17.624,-10.977],[22.76,-19.437],[22.961,-19.437],[28.198,-10.977],[35.349,0],[45.419,0],[28.299,-25.177],[44.916,-48.743],[35.349,-48.743],[28.5,-38.37],[23.666,-30.313],[23.364,-30.313],[18.43,-38.269],[11.481,-48.743]],"c":true},"ix":2},"nm":"x","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"x","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"p","size":150,"style":"500","w":56.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-6.445,0],[0,17.523],[11.783,0],[3.625,-5.942],[0,0],[0,0],[0,0],[0,-6.244]],"o":[[0,0],[0,0],[0,0],[2.921,4.834],[11.481,0],[0,-14.804],[-7.956,0],[0,0],[0,0],[0,0],[0.201,4.633],[0,0]],"v":[[7.352,19.94],[16.113,19.94],[16.113,-6.546],[16.315,-6.546],[31.32,1.108],[53.476,-25.076],[32.831,-49.85],[15.509,-40.384],[15.308,-40.384],[14.905,-48.743],[6.949,-48.743],[7.352,-32.831]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.302,1.108],[-6.042,0],[0,-9.769],[9.366,0],[1.611,6.143],[0,1.309]],"o":[[0,-1.208],[1.712,-6.647],[9.366,0],[0,11.179],[-6.345,0],[-0.201,-1.108],[0,0]],"v":[[16.113,-28.198],[16.718,-31.824],[30.112,-42.801],[44.614,-24.673],[29.81,-5.841],[16.516,-16.214],[16.113,-19.839]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"p","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"n","size":150,"style":"500","w":55.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.403,1.108],[-5.841,0],[0,-7.855],[0,0],[0,0],[0,0],[6.747,0],[2.417,-4.633],[0,0],[0,0],[0,0],[0,-5.035]],"o":[[0,0],[0,0],[0,-1.511],[1.511,-4.935],[8.359,0],[0,0],[0,0],[0,0],[0,-16.718],[-8.057,0],[0,0],[0,0],[0,0],[0.302,4.028],[0,0]],"v":[[7.352,0],[16.214,0],[16.214,-29.306],[16.818,-33.435],[28.702,-42.499],[39.981,-28.098],[39.981,0],[48.843,0],[48.843,-29.105],[31.622,-49.85],[15.509,-40.686],[15.308,-40.686],[14.804,-48.743],[6.949,-48.743],[7.352,-35.55]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"n","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"i","size":150,"style":"500","w":23.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16.214,0],[16.214,-48.743],[7.352,-48.743],[7.352,0]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[3.323,0],[0,-3.122],[-3.122,0],[0.101,3.021]],"o":[[-3.223,0],[0,3.021],[3.525,0],[0,-3.122]],"v":[[11.783,-67.978],[6.244,-62.439],[11.581,-57.001],[17.221,-62.439]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"i","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"o","size":150,"style":"500","w":54.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.998,0],[0,-16.315],[-13.193,0],[0,18.027]],"o":[[-13.495,0],[0,15.408],[11.783,0],[0,-14.905]],"v":[[27.997,-49.85],[3.827,-23.969],[27.191,1.108],[51.462,-24.774]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-10.474,0],[0,-8.258],[8.459,0],[0,10.675]],"o":[[10.474,0],[0,10.977],[-8.661,0],[0,-9.265]],"v":[[27.795,-43.204],[42.398,-24.472],[27.594,-5.539],[12.79,-24.271]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"o","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"8","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.696,0],[0,11.38],[8.157,3.223],[0,0],[0,5.539],[12.689,0],[0,-10.373],[-7.251,-3.424],[0,0],[0,-8.258]],"o":[[12.488,0],[0,-7.956],[0,0],[8.057,-3.827],[0,-8.157],[-11.481,0],[0,5.64],[0,0],[-8.057,3.424],[0,9.567]],"v":[[25.681,1.108],[47.937,-17.926],[34.744,-34.845],[34.744,-35.147],[45.52,-50.455],[26.486,-66.568],[6.244,-49.146],[16.617,-34.442],[16.718,-34.14],[3.726,-16.617]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.956,0],[-0.302,6.647],[-7.654,2.216],[0,-7.956]],"o":[[-8.359,0],[0,-6.244],[8.862,2.518],[0,6.747]],"v":[[25.882,-5.338],[12.79,-17.825],[24.573,-31.32],[38.974,-17.02]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-7.352,0],[0,-5.237],[5.64,-1.913],[0,6.546]],"o":[[7.956,0],[0,5.942],[-7.553,-2.014],[0,-5.64]],"v":[[25.983,-60.223],[37.061,-49.548],[27.09,-37.665],[14.603,-49.75]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"8","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"D","size":150,"style":"500","w":66.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.244,0],[-6.345,6.345],[0,11.078],[6.042,5.539],[12.589,0],[5.338,-0.806]],"o":[[4.431,0.504],[13.193,0],[6.345,-6.244],[0,-10.977],[-5.942,-5.539],[-6.949,0],[0,0]],"v":[[7.654,-0.201],[23.566,0.604],[53.577,-9.164],[63.345,-35.55],[53.778,-59.921],[26.285,-68.381],[7.654,-66.971]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-4.532,0],[0.101,-16.013],[18.732,0],[2.216,0.403]],"o":[[2.316,-0.504],[18.53,0],[0,18.329],[-3.424,0],[0,0]],"v":[[16.415,-60.526],[26.688,-61.432],[54.181,-35.248],[25.278,-6.445],[16.415,-6.949]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"D","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"f","size":150,"style":"500","w":29.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-7.553,0],[-1.309,-0.604],[0,0],[3.122,0],[3.323,-3.223],[0,-6.848],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,-7.452],[2.518,0],[0,0],[-1.712,-0.705],[-4.129,0],[-4.129,3.928],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[17.02,0],[17.02,-41.995],[28.802,-41.995],[28.802,-48.743],[17.02,-48.743],[17.02,-51.361],[26.486,-65.46],[32.126,-64.352],[33.334,-71.201],[25.781,-72.61],[13.898,-68.079],[8.258,-51.059],[8.258,-48.743],[1.41,-48.743],[1.41,-41.995],[8.258,-41.995],[8.258,0]],"c":true},"ix":2},"nm":"f","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"f","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"c","size":150,"style":"500","w":44.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.035,0],[0,11.279],[-11.179,0],[-2.115,-1.208],[0,0],[5.237,0],[0,-15.005],[-14.703,0],[-2.316,1.208]],"o":[[-2.518,1.108],[-9.668,0],[0,-10.172],[4.834,0],[0,0],[-2.417,-1.208],[-15.912,0],[0,14.905],[6.546,0],[0,0]],"v":[[40.585,-8.459],[29.709,-6.042],[12.79,-24.271],[30.011,-42.7],[40.283,-40.384],[42.297,-47.232],[30.011,-49.75],[3.827,-23.868],[28.098,1.007],[42.096,-1.813]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"c","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"},{"ch":"7","size":150,"style":"500","w":51.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[5.74,-65.46],[5.74,-58.109],[37.766,-58.109],[37.766,-57.907],[9.366,0],[18.53,0],[47.031,-59.619],[47.031,-65.46]],"c":true},"ix":2},"nm":"7","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"7","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"SamsungOne"}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/_alarm.json b/external/rlottie/example/resource/_alarm.json new file mode 100644 index 000000000..683448405 --- /dev/null +++ b/external/rlottie/example/resource/_alarm.json @@ -0,0 +1 @@ +{"v":"5.1.13","fr":30,"ip":0,"op":60,"w":300,"h":300,"nm":"alram","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"02","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-36,"ix":10},"p":{"a":0,"k":[114.4,38.435,0],"ix":2},"a":{"a":0,"k":[56,-77,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[100,100,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":11,"s":[100,100,100],"e":[120,120,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":16,"s":[120,120,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":21,"s":[100,100,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":41,"s":[100,100,100],"e":[120,120,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":46,"s":[120,120,100],"e":[100,100,100]},{"t":51}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[40,40],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"타원 패스 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"선 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.803921568627,0.122952704336,0.235112313663,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"칠 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[55,-78],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"변형"}],"nm":"타원 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"01","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.883],"y":[1.286]},"o":{"x":[0.377],"y":[-0.667]},"n":["0p883_1p286_0p377_-0p667"],"t":0,"s":[0],"e":[-24.645]},{"i":{"x":[0.79],"y":[1.277]},"o":{"x":[0.479],"y":[1.173]},"n":["0p79_1p277_0p479_1p173"],"t":15,"s":[-24.645],"e":[0]},{"i":{"x":[0.558],"y":[0.987]},"o":{"x":[0.382],"y":[-0.496]},"n":["0p558_0p987_0p382_-0p496"],"t":30,"s":[0],"e":[25.003]},{"i":{"x":[0.606],"y":[1.408]},"o":{"x":[0.368],"y":[-0.01]},"n":["0p606_1p408_0p368_-0p01"],"t":45,"s":[25.003],"e":[0]},{"t":60}],"ix":10},"p":{"a":0,"k":[150,68,0],"ix":2},"a":{"a":0,"k":[79.5,1.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16.704,0],[2.581,16.778],[-2.692,0.414],[-0.413,-2.691],[-11.823,0],[-1.848,11.914],[-2.689,-0.401],[0.417,-2.69]],"o":[[-16.725,0],[-0.414,-2.692],[2.687,-0.43],[1.836,11.934],[11.809,0],[0.419,-2.692],[2.691,0.419],[-2.6,16.754]],"v":[[0.001,17.505],[-33.318,-11.453],[-29.195,-17.075],[-23.573,-12.952],[0.001,7.645],[23.57,-12.918],[29.199,-17.035],[33.315,-11.407]],"c":true},"ix":2},"nm":"패스 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"칠 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[79.299,148.318],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"변형"}],"nm":"그룹 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.119,0],[0.276,-14.184],[0,-23.047],[0,0],[6.395,-4.16],[0,-4.302],[-8.032,-0.949],[-18.918,0],[-13.078,1.594],[0,16.065],[6.281,5.042],[0.249,9.057],[0.054,0.809],[18.499,9.322]],"o":[[-14.096,0],[-19.936,9.885],[0,0],[0.038,8.569],[-8.422,5.477],[0,16.08],[13.468,1.59],[18.738,0],[7.804,-0.951],[0,-3.69],[-7.863,-6.311],[-0.022,-0.803],[-1.404,-21.085],[-0.24,-14.216]],"v":[[0,-68.536],[-25.872,-42.896],[-58.71,10.594],[-58.709,10.879],[-68.861,31.212],[-79.051,47.267],[-49.681,66.815],[0.801,68.536],[50.519,66.81],[79.051,47.267],[71.452,33.077],[58.687,8.896],[58.573,6.478],[25.873,-42.831]],"c":true},"ix":2},"nm":"패스 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-8.845,0],[0,-9.001],[0.648,-1.77],[-1.361,-20.457],[-0.019,-0.676],[-9.666,-7.758],[0,-2.278],[38.213,0],[0,10.802],[-3.67,2.386],[0.051,11.472],[0,0.078],[-19.637,6.445],[0,1.993]],"o":[[8.846,0],[0,2],[18.524,6.142],[0.046,0.682],[0.344,12.522],[2.533,2.033],[0,10.802],[-38.213,0],[0,-2.768],[9.499,-6.179],[-0.001,-0.077],[0,-22.126],[-0.643,-1.765],[0,-9.001]],"v":[[0,-58.674],[16.017,-42.376],[14.998,-36.699],[48.734,7.133],[48.831,9.169],[65.28,40.768],[69.191,47.267],[0.801,58.676],[-69.19,47.267],[-63.485,39.478],[-48.849,10.827],[-48.85,10.594],[-15.004,-36.719],[-16.016,-42.376]],"c":true},"ix":2},"nm":"패스 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"패스 병합 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"칠 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[79.301,68.785],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"변형"}],"nm":"그룹 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/a_cup_of_coffee.json b/external/rlottie/example/resource/a_cup_of_coffee.json new file mode 100644 index 000000000..9d6b2e521 --- /dev/null +++ b/external/rlottie/example/resource/a_cup_of_coffee.json @@ -0,0 +1 @@ +{"v":"5.1.9","fr":60,"ip":0,"op":72,"w":600,"h":600,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"1-Hello Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[300,300,0],"ix":2},"a":{"a":0,"k":[300,300,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-20.4,189.08],[0,0],[0,-44.148],[44.147,0],[2.388,0.215]],"o":[[20.4,189.08],[0,0],[0,0],[0,0],[44.147,0],[0,44.147],[-2.443,0],[0,0]],"v":[[135.532,-154.949],[68.843,154.949],[-128.378,154.949],[-195.068,-154.949],[135.532,-154.949],[215.468,-75.013],[135.532,4.922],[128.284,4.598]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[0],"e":[0]},{"t":35}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[0],"e":[100]},{"t":35}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.19199999641,0.722000002394,0.741000007181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[291.348,370.49],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.78,8.259],[-5.781,8.258],[5.78,8.259],[0,0]],"o":[[0,0],[5.78,-8.259],[-5.781,-8.258],[5.78,-8.259],[0,0],[0,0]],"v":[[-7.704,55.018],[1.924,41.264],[1.924,13.754],[1.924,-13.754],[1.924,-41.264],[-7.704,-55.018]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[-13.53]},"o":{"x":[0.333],"y":[0]},"n":["0p667_-13p53_0p333_0"],"t":23,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.156]},"n":["0p667_1_0p333_0p156"],"t":36,"s":[0],"e":[100]},{"t":50}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":23,"s":[0],"e":[100]},{"t":50}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.19199999641,0.722000002394,0.741000007181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[330.898,129.578],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.781,8.259],[-5.781,8.258],[5.781,8.259],[0,0]],"o":[[0,0],[5.781,-8.259],[-5.781,-8.258],[5.781,-8.259],[0,0],[0,0]],"v":[[-7.704,55.018],[1.923,41.264],[1.923,13.754],[1.923,-13.754],[1.923,-41.264],[-7.704,-55.018]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[0.763]},"o":{"x":[0.333],"y":[0]},"n":["0p667_0p763_0p333_0"],"t":10,"s":[0],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[25.626]},"n":["0p667_1_0p333_25p626"],"t":22,"s":[100],"e":[100]},{"t":35}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[0],"e":[100]},{"t":35}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.19199999641,0.722000002394,0.741000007181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[262.303,129.578],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.781,8.259],[-5.781,8.258],[5.781,8.259],[0,0]],"o":[[0,0],[5.781,-8.259],[-5.781,-8.258],[5.781,-8.259],[0,0],[0,0]],"v":[[-7.704,55.018],[1.923,41.264],[1.923,13.754],[1.923,-13.754],[1.923,-41.264],[-7.704,-55.018]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":16,"s":[0],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":27,"s":[100],"e":[100]},{"t":39}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":16,"s":[0],"e":[100]},{"t":39}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.19199999641,0.722000002394,0.741000007181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[193.707,129.578],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.78,8.259],[-5.781,8.258],[5.78,8.259],[0,0]],"o":[[0,0],[5.78,-8.259],[-5.781,-8.258],[5.78,-8.259],[0,0],[0,0]],"v":[[-7.704,55.018],[1.924,41.264],[1.924,13.754],[1.924,-13.754],[1.924,-41.264],[-7.704,-55.018]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":45,"s":[0],"e":[0]},{"t":72}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":45,"s":[0],"e":[100]},{"t":72}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.19199999641,0.722000002394,0.741000007181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[330.898,129.578],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.781,8.259],[-5.781,8.258],[5.781,8.259],[0,0]],"o":[[0,0],[5.781,-8.259],[-5.781,-8.258],[5.781,-8.259],[0,0],[0,0]],"v":[[-7.704,55.018],[1.923,41.264],[1.923,13.754],[1.923,-13.754],[1.923,-41.264],[-7.704,-55.018]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":32,"s":[0],"e":[0]},{"t":57}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":32,"s":[0],"e":[100]},{"t":57}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.19199999641,0.722000002394,0.741000007181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[262.303,129.578],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":3,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.781,8.259],[-5.781,8.258],[5.781,8.259],[0,0]],"o":[[0,0],[5.781,-8.259],[-5.781,-8.258],[5.781,-8.259],[0,0],[0,0]],"v":[[-7.704,55.018],[1.923,41.264],[1.923,13.754],[1.923,-13.754],[1.923,-41.264],[-7.704,-55.018]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":38,"s":[0],"e":[0]},{"t":61}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":38,"s":[0],"e":[100]},{"t":61}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.19199999641,0.722000002394,0.741000007181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[193.707,129.578],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":3,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":72,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/a_mountain.json b/external/rlottie/example/resource/a_mountain.json new file mode 100644 index 000000000..65fed4be0 --- /dev/null +++ b/external/rlottie/example/resource/a_mountain.json @@ -0,0 +1 @@ +{"v":"5.1.15","fr":25,"ip":0,"op":89,"w":300,"h":300,"nm":"MountainCircle","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"CloudA contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[65,155,0],"e":[136,155,0],"to":[11.8333330154419,0,0],"ti":[-11.8333330154419,0,0]},{"t":88}],"ix":2},"a":{"a":0,"k":[21.25,16.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":10,"s":[100,0,100],"e":[100,110,100]},{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":17,"s":[100,110,100],"e":[100,90,100]},{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":22,"s":[100,90,100],"e":[100,100,100]},{"t":24}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.418],[4.418,0],[0,4.418],[-4.418,0]],"o":[[0,4.418],[-4.418,0],[0,-4.418],[4.418,0]],"v":[[8,0],[0,8],[-8,0],[0,-8]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-78,149],[222,149],[222,-151],[-78,-151]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-78,-151],[222,-151],[222,149],[-78,149]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929000016755,0.929000016755,0.929000016755,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[34.25,12.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-6.627],[6.627,0],[0,6.627],[-6.627,0]],"o":[[0,6.627],[-6.627,0],[0,-6.627],[6.627,0]],"v":[[12,0],[0,12],[-12,0],[0,-12]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-72,141],[228,141],[228,-159],[-72,-159]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-72,-159],[228,-159],[228,141],[-72,141]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929000016755,0.929000016755,0.929000016755,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.25,20.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-6.075],[6.075,0],[0,6.075],[-6.075,0]],"o":[[0,6.075],[-6.075,0],[0,-6.075],[6.075,0]],"v":[[11,0],[0,11],[-11,0],[0,-11]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-65,150],[235,150],[235,-150],[-65,-150]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-65,-150],[235,-150],[235,150],[-65,150]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929000016755,0.929000016755,0.929000016755,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[21.25,11.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.18],[7.18,0],[0,7.18],[-7.18,0]],"o":[[0,7.18],[-7.18,0],[0,-7.18],[7.18,0]],"v":[[13,0],[0,13],[-13,0],[0,-13]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-57,145],[243,145],[243,-155],[-57,-155]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-57,-155],[243,-155],[243,145],[-57,145]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929000016755,0.929000016755,0.929000016755,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.25,16.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":89,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Circle 4","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150,0],"ix":2},"a":{"a":0,"k":[137.25,137.25,0],"ix":1},"s":{"a":0,"k":[97.333,97.333,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-75.663],[75.663,0],[0,75.663],[-75.663,0]],"o":[[0,75.663],[-75.663,0],[0,-75.663],[75.663,0]],"v":[[137,0],[0,137],[-137,0],[0,-137]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-150,150],[150,150],[150,-150],[-150,-150]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-150,-150],[150,-150],[150,150],[-150,150]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.081999999402,0.626999978458,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.25,137.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":89,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Sun contornos","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.25,"y":1},"o":{"x":0.75,"y":0},"n":"0p25_1_0p75_0","t":11,"s":[182,-13,0],"e":[182,83,0],"to":[0,16,0],"ti":[0,-13.6666669845581,0]},{"i":{"x":0.25,"y":1},"o":{"x":0.75,"y":0},"n":"0p25_1_0p75_0","t":29,"s":[182,83,0],"e":[182,69,0],"to":[0,13.6666669845581,0],"ti":[0,2.33333325386047,0]},{"t":33}],"ix":2},"a":{"a":0,"k":[20.25,20.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-11.05],[11.05,0],[0,0]],"o":[[0,11.05],[0,0],[11.05,0]],"v":[[10,0],[-10,20],[-10,-20]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-192,207],[108,207],[108,-93],[-192,-93]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-192,-93],[108,-93],[108,207],[-192,207]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.611999990426,0.071000005685,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.25,20.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-11.046],[11.046,0],[0,11.046],[-11.046,0]],"o":[[0,11.046],[-11.046,0],[0,-11.046],[11.046,0]],"v":[[20,0],[0,20],[-20,0],[0,-20]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-182,207],[118,207],[118,-93],[-182,-93]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-182,-93],[118,-93],[118,207],[-182,207]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.769000004787,0.059000000299,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[20.25,20.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":89,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Circle 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150,0],"ix":2},"a":{"a":0,"k":[137.25,137.25,0],"ix":1},"s":{"a":0,"k":[97.333,97.333,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-75.663],[75.663,0],[0,75.663],[-75.663,0]],"o":[[0,75.663],[-75.663,0],[0,-75.663],[75.663,0]],"v":[[137,0],[0,137],[-137,0],[0,-137]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-150,150],[150,150],[150,-150],[-150,-150]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-150,-150],[150,-150],[150,150],[-150,150]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.081999999402,0.626999978458,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.25,137.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":89,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"MountainF contornos","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,280.135,0],"ix":2},"a":{"a":0,"k":[113.88,151.115,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":0,"s":[100,0,100],"e":[100,110,100]},{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":7,"s":[100,110,100],"e":[100,90,100]},{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":12,"s":[100,90,100],"e":[100,100,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[30.77,0],[14.62,5.52],[0,0],[-0.921,-0.9]],"o":[[-22.529,17.55],[-16.54,0],[0,0],[1.17,-0.03],[0,0]],"v":[[64.32,48.55],[-17.32,76.55],[-64.32,68.01],[-64.32,-76.52],[-61.039,-75.22]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-167.32,93.55],[132.68,93.55],[132.68,-206.45],[-167.32,-206.45]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-167.32,-206.45],[132.68,-206.45],[132.68,93.55],[-167.32,93.55]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.172999991623,0.243000000598,0.313999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[131.2,77.429],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[30.77,0],[23.34,38.3],[0,0],[-1.987,-1.96]],"o":[[-22.529,17.55],[-48.13,0],[0,0],[1.634,-2.264],[0,0]],"v":[[97.635,48.864],[15.995,76.865],[-97.635,12.995],[-34.613,-74.329],[-27.725,-74.905]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-134.005,93.865],[165.995,93.865],[165.995,-206.135],[-134.005,-206.135]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-134.005,-206.135],[165.995,-206.135],[165.995,93.865],[-134.005,93.865]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.204000001795,0.286000001197,0.368999974868,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[97.885,77.115],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":89,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"CloudB contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[181.824,192.221,0],"e":[216.824,192.221,0],"to":[5.83333349227905,0,0],"ti":[-5.83333349227905,0,0]},{"t":88}],"ix":2},"a":{"a":0,"k":[14.733,8.87,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":17,"s":[100,0,100],"e":[100,110,100]},{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":24,"s":[100,110,100],"e":[100,90,100]},{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":29,"s":[100,90,100],"e":[100,100,100]},{"t":31}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.392,-3.246],[3.246,0.392],[-0.391,3.246],[-3.246,-0.392]],"o":[[-0.391,3.246],[-3.246,-0.391],[0.391,-3.246],[3.246,0.391]],"v":[[5.877,0.708],[-0.709,5.878],[-5.878,-0.709],[0.708,-5.878]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-190.038,106.159],[109.962,106.159],[109.962,-193.841],[-190.038,-193.841]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-190.038,-193.841],[109.962,-193.841],[109.962,106.159],[-190.038,106.159]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.808000033509,0.808000033509,0.808000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.948,10.49],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.245,-2.028],[2.029,0.245],[-0.244,2.029],[-2.029,-0.244]],"o":[[-0.244,2.029],[-2.029,-0.245],[0.244,-2.029],[2.029,0.245]],"v":[[3.673,0.442],[-0.443,3.673],[-3.674,-0.443],[0.443,-3.674]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-191.304,110.478],[108.696,110.478],[108.696,-189.522],[-191.304,-189.522]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-191.304,-189.522],[108.696,-189.522],[108.696,110.478],[-191.304,110.478]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.808000033509,0.808000033509,0.808000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.213,6.171],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.391,-3.246],[3.246,0.391],[-0.39,3.246],[-3.246,-0.391]],"o":[[-0.392,3.246],[-3.246,-0.392],[0.392,-3.246],[3.246,0.392]],"v":[[5.878,0.708],[-0.709,5.878],[-5.879,-0.708],[0.708,-5.878]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-173.609,105.902],[126.391,105.902],[126.391,-194.098],[-173.609,-194.098]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-173.609,-194.098],[126.391,-194.098],[126.391,105.902],[-173.609,105.902]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.808000033509,0.808000033509,0.808000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6.518,10.746],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.538,-4.464],[4.464,0.539],[-0.538,4.464],[-4.464,-0.538]],"o":[[-0.537,4.463],[-4.463,-0.538],[0.538,-4.463],[4.463,0.538]],"v":[[8.082,0.974],[-0.975,8.081],[-8.082,-0.974],[0.975,-8.082]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-182.779,107.779],[117.221,107.779],[117.221,-192.221],[-182.779,-192.221]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-182.779,-192.221],[117.221,-192.221],[117.221,107.779],[-182.779,107.779]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.808000033509,0.808000033509,0.808000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.689,8.87],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":89,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Circle 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150,0],"ix":2},"a":{"a":0,"k":[137.25,137.25,0],"ix":1},"s":{"a":0,"k":[96.667,96.667,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-75.663],[75.663,0],[0,75.663],[-75.663,0]],"o":[[0,75.663],[-75.663,0],[0,-75.663],[75.663,0]],"v":[[137,0],[0,137],[-137,0],[0,-137]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-150,150],[150,150],[150,-150],[-150,-150]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-150,-150],[150,-150],[150,150],[-150,150]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.081999999402,0.626999978458,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.25,137.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":89,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"MountainB contornos","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.57,280.73,0],"ix":2},"a":{"a":0,"k":[0.249,105.98,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":0,"s":[100,0,100],"e":[100,110,100]},{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":7,"s":[100,110,100],"e":[100,90,100]},{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"n":["0p25_1_0p75_0","0p25_1_0p75_0","0p667_1_0p333_0"],"t":12,"s":[100,90,100],"e":[100,100,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[36.889,-6.891],[0,0]],"o":[[-19.399,30.58],[0,0],[0,0]],"v":[[43.91,-6.726],[-43.91,52.866],[8.52,-52.866]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-218.48,72.135],[81.52,72.135],[81.52,-227.865],[-218.48,-227.865]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-218.48,-227.865],[81.52,-227.865],[81.52,72.135],[-218.48,72.135]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.109999997008,0.165000002992,0.20800000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[44.159,53.116],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":89,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150,0],"ix":2},"a":{"a":0,"k":[137.25,137.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-75.663],[75.663,0],[0,75.663],[-75.663,0]],"o":[[0,75.663],[-75.663,0],[0,-75.663],[75.663,0]],"v":[[137,0],[0,137],[-137,0],[0,-137]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-150,150],[150,150],[150,-150],[-150,-150]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-150,-150],[150,-150],[150,150],[-150,150]],"c":true},"ix":2},"nm":"Trazado 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Combinar trazados 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.081999999402,0.626999978458,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.25,137.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":89,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/abstract_circle.json b/external/rlottie/example/resource/abstract_circle.json new file mode 100644 index 000000000..8b10f9ae2 --- /dev/null +++ b/external/rlottie/example/resource/abstract_circle.json @@ -0,0 +1 @@ +{"v":"5.1.16","fr":15,"ip":0,"op":51,"w":500,"h":500,"nm":"El 28","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Circle Abstract","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":49,"s":[100],"e":[0]},{"t":51}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.316,250.684,0],"ix":2},"a":{"a":0,"k":[280,0,0],"ix":1},"s":{"a":0,"k":[225,225,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[145,145],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.190695878571,0.889764404297,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.583]},"o":{"x":[0.01],"y":[0.006]},"n":["0p833_0p583_0p01_0p006"],"t":22.2,"s":[3],"e":[0]},{"t":49.2001953125}],"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[236,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.99,0.99],"y":[0.997,0.997]},"o":{"x":[1,1],"y":[1,1]},"n":["0p99_0p997_1_1","0p99_0p997_1_1"],"t":0,"s":[0,0],"e":[50,50]},{"i":{"x":[0.833,0.833],"y":[0.676,0.676]},"o":{"x":[0.01,0.01],"y":[0.043,0.043]},"n":["0p833_0p676_0p01_0p043","0p833_0p676_0p01_0p043"],"t":6,"s":[50,50],"e":[75,75]},{"t":49.2001953125}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":1,"k":[{"i":{"x":[0.99],"y":[0.985]},"o":{"x":[1],"y":[2.692]},"n":["0p99_0p985_1_2p692"],"t":0,"s":[0],"e":[18]},{"i":{"x":[0.833],"y":[0.288]},"o":{"x":[0.01],"y":[-0.02]},"n":["0p833_0p288_0p01_-0p02"],"t":21,"s":[18],"e":[0]},{"t":49.2001953125}],"ix":1},"o":{"a":0,"k":5,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[280,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":20,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":0,"op":51,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/acrobatics.json b/external/rlottie/example/resource/acrobatics.json new file mode 100644 index 000000000..7dce062fc --- /dev/null +++ b/external/rlottie/example/resource/acrobatics.json @@ -0,0 +1 @@ +{"v":"5.0.5","fr":29.9700012207031,"ip":0,"op":46.0000018736184,"w":288,"h":360,"nm":"jump","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"a7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[29],"e":[-23]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[-23],"e":[-52]},{"t":30.0000012219251}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.585,"y":0.651},"o":{"x":0.232,"y":0.316},"n":"0p585_0p651_0p232_0p316","t":0,"s":[223.86,137.848,0],"e":[173.574,30.76,0],"to":[-1.73460388183594,-57.7228088378906,0],"ti":[29.553560256958,21.1779880523682,0]},{"i":{"x":0.649,"y":0.681},"o":{"x":0.307,"y":0.343},"n":"0p649_0p681_0p307_0p343","t":5,"s":[173.574,30.76,0],"e":[85.663,23.367,0],"to":[-27.3250160217285,-19.5810222625732,0],"ti":[26.9960441589355,-14.1411228179932,0]},{"i":{"x":0.671,"y":0.846},"o":{"x":0.331,"y":0.195},"n":"0p671_0p846_0p331_0p195","t":10,"s":[85.663,23.367,0],"e":[36.511,149.665,0],"to":[-19.3489608764648,10.1354112625122,0],"ti":[-6.15889406204224,-86.5106048583984,0]},{"i":{"x":0.696,"y":0.889},"o":{"x":0.354,"y":0.179},"n":"0p696_0p889_0p354_0p179","t":15,"s":[36.511,149.665,0],"e":[74.554,29.842,0],"to":[1.17162692546844,16.4571990966797,0],"ti":[-42.0285682678223,27.0350360870361,0]},{"i":{"x":0.652,"y":0.943},"o":{"x":0.268,"y":0.138},"n":"0p652_0p943_0p268_0p138","t":20,"s":[74.554,29.842,0],"e":[163.85,25.327,0],"to":[50.7120628356934,-30.1498985290527,0],"ti":[-6.47687864303589,-3.83117437362671,0]},{"i":{"x":0.855,"y":0.672},"o":{"x":0.451,"y":0.05},"n":"0p855_0p672_0p451_0p05","t":25,"s":[163.85,25.327,0],"e":[223.441,143.403,0],"to":[73.0731658935547,50.364128112793,0],"ti":[-1.62066376209259,-0.90557879209518,0]},{"i":{"x":0.585,"y":0.656},"o":{"x":0.262,"y":0.658},"n":"0p585_0p656_0p262_0p658","t":30,"s":[223.441,143.403,0],"e":[173.574,30.76,0],"to":[1.62066376209259,0.90557879209518,0],"ti":[29.553560256958,21.1779880523682,0]},{"i":{"x":0.649,"y":0.681},"o":{"x":0.307,"y":0.343},"n":"0p649_0p681_0p307_0p343","t":35,"s":[173.574,30.76,0],"e":[85.663,23.367,0],"to":[-27.3250160217285,-19.5810222625732,0],"ti":[26.9960441589355,-14.1411228179932,0]},{"i":{"x":0.671,"y":0.75},"o":{"x":0.331,"y":0.315},"n":"0p671_0p75_0p331_0p315","t":40,"s":[85.663,23.367,0],"e":[63.011,118.165,0],"to":[-19.3489608764648,10.1354112625122,0],"ti":[-21.1588935852051,-45.0106010437012,0]},{"t":46.0000018736184}],"ix":2},"a":{"a":0,"k":[49.985,49.973,0],"ix":1},"s":{"a":0,"k":[-50.014,50.014,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.5,-8.4],[8.4,1.6],[0.199,0.1],[2.599,-0.9],[0.201,0],[1.6,8.5],[-8.5,1.6],[-2.8,-1.2],[0,0],[0,0],[2.9,2.9],[0,0],[-4.2,-4.1],[-0.2,-2.1],[0,0],[-0.5,-0.3],[0.299,-0.5],[0,0],[-0.7,0.3],[-3.2,-0.6]],"o":[[-1.6,8.5],[-0.3,0],[-2.5,-0.9],[-0.201,0.1],[-8.5,1.6],[-1.6,-8.5],[3.2,-0.6],[1,0.5],[0,0],[-2,0],[-4.199,-4.2],[0,0],[2.3,2.3],[0,0],[0.3,-0.5],[0.5,0.3],[0,0],[0.801,-0.1],[2.8,-1.3],[8.5,1.5]],"v":[[25.65,1.6],[4.65,29.5],[3.951,29.3],[-3.749,29.3],[-4.45,29.5],[-25.55,1.6],[-13.05,-16.6],[-3.85,-15.5],[-0.749,-14.7],[0.45,-16.9],[-8.05,-20.3],[-11.35,-30.3],[-1.35,-27],[1.951,-19.7],[7.451,-29.9],[8.85,-30.3],[9.251,-28.9],[1.65,-14.7],[3.85,-15.4],[13.05,-16.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.380392163992,0.411764711142,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.366,50.503],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":167.000006802049,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"a6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":29,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.67},"o":{"x":0.185,"y":0.366},"n":"0p833_0p67_0p185_0p366","t":0,"s":[186.985,40.473,0],"e":[216.985,116.473,0],"to":[1.01539611816406,-0.97280883789062,0],"ti":[6.98460388183594,-38.0271911621094,0]},{"i":{"x":0.833,"y":0.74},"o":{"x":0.185,"y":0.289},"n":"0p833_0p74_0p185_0p289","t":5,"s":[216.985,116.473,0],"e":[169.985,27.473,0],"to":[5.01539611816406,-38.4728088378906,0],"ti":[28.5490169525146,10.817400932312,0]},{"i":{"x":0.833,"y":0.716},"o":{"x":0.185,"y":0.315},"n":"0p833_0p716_0p185_0p315","t":10,"s":[169.985,27.473,0],"e":[76.485,28.973,0],"to":[-64,-24.25,0],"ti":[8.20706558227539,-7.81933689117432,0]},{"i":{"x":0.833,"y":0.732},"o":{"x":0.185,"y":0.298},"n":"0p833_0p732_0p185_0p298","t":15,"s":[76.485,28.973,0],"e":[42.485,121.973,0],"to":[-36.8030128479004,35.0643157958984,0],"ti":[-8.51539611816406,-3.02719116210938,0]},{"i":{"x":0.833,"y":0.756},"o":{"x":0.185,"y":0.271},"n":"0p833_0p756_0p185_0p271","t":20,"s":[42.485,121.973,0],"e":[85.485,24.473,0],"to":[-12.9846038818359,-63.4728088378906,0],"ti":[-12.5153961181641,8.47280883789062,0]},{"i":{"x":0.833,"y":0.717},"o":{"x":0.185,"y":0.314},"n":"0p833_0p717_0p185_0p314","t":25,"s":[85.485,24.473,0],"e":[178.485,31.973,0],"to":[40.0153961181641,-28.4728088378906,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.775},"o":{"x":0.167,"y":0.225},"n":"0p833_0p775_0p167_0p225","t":30,"s":[178.485,31.973,0],"e":[216.485,144.473,0],"to":[0,0,0],"ti":[16.4846038818359,-63.0271911621094,0]},{"i":{"x":0.833,"y":0.792},"o":{"x":0.185,"y":0.23},"n":"0p833_0p792_0p185_0p23","t":35,"s":[216.485,144.473,0],"e":[169.985,27.473,0],"to":[12.0153961181641,-51.9728088378906,0],"ti":[28.5490169525146,10.817400932312,0]},{"i":{"x":0.833,"y":0.669},"o":{"x":0.185,"y":0.368},"n":"0p833_0p669_0p185_0p368","t":40,"s":[169.985,27.473,0],"e":[73.485,29.473,0],"to":[-64,-24.25,0],"ti":[25.5490169525146,-10.682599067688,0]},{"t":46.0000018736184}],"ix":2},"a":{"a":0,"k":[49.985,49.973,0],"ix":1},"s":{"a":0,"k":[-50.014,50.014,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.5,-8.4],[8.4,1.6],[0.199,0.1],[2.599,-0.9],[0.201,0],[1.6,8.5],[-8.5,1.6],[-2.8,-1.2],[0,0],[0,0],[2.9,2.9],[0,0],[-4.2,-4.1],[-0.2,-2.1],[0,0],[-0.5,-0.3],[0.299,-0.5],[0,0],[-0.7,0.3],[-3.2,-0.6]],"o":[[-1.6,8.5],[-0.3,0],[-2.5,-0.9],[-0.201,0.1],[-8.5,1.6],[-1.6,-8.5],[3.2,-0.6],[1,0.5],[0,0],[-2,0],[-4.199,-4.2],[0,0],[2.3,2.3],[0,0],[0.3,-0.5],[0.5,0.3],[0,0],[0.801,-0.1],[2.8,-1.3],[8.5,1.5]],"v":[[25.65,1.6],[4.65,29.5],[3.951,29.3],[-3.749,29.3],[-4.45,29.5],[-25.55,1.6],[-13.05,-16.6],[-3.85,-15.5],[-0.749,-14.7],[0.45,-16.9],[-8.05,-20.3],[-11.35,-30.3],[-1.35,-27],[1.951,-19.7],[7.451,-29.9],[8.85,-30.3],[9.251,-28.9],[1.65,-14.7],[3.85,-15.4],[13.05,-16.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.380392163992,0.411764711142,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.366,50.503],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":167.000006802049,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"a5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":29,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.585,"y":0.55},"o":{"x":0.185,"y":0.325},"n":"0p585_0p55_0p185_0p325","t":0,"s":[82.985,26.973,0],"e":[173.574,30.76,0],"to":[0.01539611816406,-3.97280883789062,0],"ti":[-43.4464416503906,-27.3220119476318,0]},{"i":{"x":0.585,"y":0.412},"o":{"x":0.303,"y":0.429},"n":"0p585_0p412_0p303_0p429","t":5,"s":[173.574,30.76,0],"e":[205.574,91.76,0],"to":[23.8329467773438,26.0342674255371,0],"ti":[6.07351684570312,9.26034545898438,0]},{"i":{"x":0.585,"y":0.449},"o":{"x":0.303,"y":0.402},"n":"0p585_0p449_0p303_0p402","t":10,"s":[205.574,91.76,0],"e":[167.074,25.76,0],"to":[-9.07351684570312,-39.7603454589844,0],"ti":[15.0735168457031,13.2603454589844,0]},{"i":{"x":0.585,"y":0.526},"o":{"x":0.303,"y":0.345},"n":"0p585_0p526_0p303_0p345","t":15,"s":[167.074,25.76,0],"e":[80.574,28.26,0],"to":[-48.5735168457031,-23.5103454589844,0],"ti":[8.82351684570312,-4.48965454101562,0]},{"i":{"x":0.585,"y":0.478},"o":{"x":0.303,"y":0.381},"n":"0p585_0p478_0p303_0p381","t":20,"s":[80.574,28.26,0],"e":[55.074,104.26,0],"to":[-26.8235168457031,30.9896545410156,0],"ti":[-2.42648315429688,-0.48965454101562,0]},{"i":{"x":0.585,"y":0.489},"o":{"x":0.303,"y":0.372},"n":"0p585_0p489_0p303_0p372","t":25,"s":[55.074,104.26,0],"e":[83.574,27.76,0],"to":[1.17648315429688,-59.2603454589844,0],"ti":[0,0,0]},{"i":{"x":0.585,"y":0.542},"o":{"x":0.167,"y":0.184},"n":"0p585_0p542_0p167_0p184","t":30,"s":[83.574,27.76,0],"e":[173.574,30.76,0],"to":[0,0,0],"ti":[-43.4464416503906,-27.3220119476318,0]},{"i":{"x":0.585,"y":0.624},"o":{"x":0.303,"y":0.274},"n":"0p585_0p624_0p303_0p274","t":35,"s":[173.574,30.76,0],"e":[217.074,133.26,0],"to":[23.8329467773438,26.0342674255371,0],"ti":[6.07351684570312,9.26034545898438,0]},{"i":{"x":0.585,"y":0.567},"o":{"x":0.303,"y":0.316},"n":"0p585_0p567_0p303_0p316","t":40,"s":[217.074,133.26,0],"e":[168.574,25.76,0],"to":[-17.0735168457031,-77.0103454589844,0],"ti":[6.07351684570312,9.26034545898438,0]},{"t":46.0000018736184}],"ix":2},"a":{"a":0,"k":[49.985,49.973,0],"ix":1},"s":{"a":0,"k":[-50.014,50.014,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.5,-8.4],[8.4,1.6],[0.199,0.1],[2.599,-0.9],[0.201,0],[1.6,8.5],[-8.5,1.6],[-2.8,-1.2],[0,0],[0,0],[2.9,2.9],[0,0],[-4.2,-4.1],[-0.2,-2.1],[0,0],[-0.5,-0.3],[0.299,-0.5],[0,0],[-0.7,0.3],[-3.2,-0.6]],"o":[[-1.6,8.5],[-0.3,0],[-2.5,-0.9],[-0.201,0.1],[-8.5,1.6],[-1.6,-8.5],[3.2,-0.6],[1,0.5],[0,0],[-2,0],[-4.199,-4.2],[0,0],[2.3,2.3],[0,0],[0.3,-0.5],[0.5,0.3],[0,0],[0.801,-0.1],[2.8,-1.3],[8.5,1.5]],"v":[[25.65,1.6],[4.65,29.5],[3.951,29.3],[-3.749,29.3],[-4.45,29.5],[-25.55,1.6],[-13.05,-16.6],[-3.85,-15.5],[-0.749,-14.7],[0.45,-16.9],[-8.05,-20.3],[-11.35,-30.3],[-1.35,-27],[1.951,-19.7],[7.451,-29.9],[8.85,-30.3],[9.251,-28.9],[1.65,-14.7],[3.85,-15.4],[13.05,-16.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.986887276173,0.380120933056,0.411817699671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.125,50.785],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":167.000006802049,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"a1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":29,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.732},"o":{"x":0.185,"y":0.298},"n":"0p833_0p732_0p185_0p298","t":0,"s":[59.985,118.973,0],"e":[82.985,26.973,0],"to":[-19.4846038818359,-32.9728088378906,0],"ti":[-31.0153961181641,26.4728088378906,0]},{"i":{"x":0.833,"y":0.675},"o":{"x":0.185,"y":0.361},"n":"0p833_0p675_0p185_0p361","t":5,"s":[82.985,26.973,0],"e":[162.985,24.473,0],"to":[31.0153961181641,-26.4728088378906,0],"ti":[-21.0153961181641,-9.52719116210938,0]},{"i":{"x":0.833,"y":0.572},"o":{"x":0.185,"y":0.475},"n":"0p833_0p572_0p185_0p475","t":10,"s":[162.985,24.473,0],"e":[203.985,72.973,0],"to":[21.0153961181641,9.52719116210938,0],"ti":[-4.51539611816406,-16.5271911621094,0]},{"i":{"x":0.833,"y":0.556},"o":{"x":0.185,"y":0.493},"n":"0p833_0p556_0p185_0p493","t":15,"s":[203.985,72.973,0],"e":[165.485,24.973,0],"to":[-10.9846038818359,-31.4728088378906,0],"ti":[7.73460388183594,4.09780883789062,0]},{"i":{"x":0.833,"y":0.67},"o":{"x":0.185,"y":0.366},"n":"0p833_0p67_0p185_0p366","t":20,"s":[165.485,24.973,0],"e":[85.985,24.223,0],"to":[-51.1335983276367,-27.8870468139648,0],"ti":[2.48460388183594,-2.02719116210938,0]},{"i":{"x":0.833,"y":0.702},"o":{"x":0.185,"y":0.331},"n":"0p833_0p702_0p185_0p331","t":25,"s":[85.985,24.223,0],"e":[53.485,105.723,0],"to":[-50.724681854248,41.3863258361816,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.677},"o":{"x":0.167,"y":0.323},"n":"0p833_0p677_0p167_0p323","t":30,"s":[53.485,105.723,0],"e":[82.985,26.973,0],"to":[0,0,0],"ti":[-31.0153961181641,26.4728088378906,0]},{"i":{"x":0.833,"y":0.675},"o":{"x":0.185,"y":0.361},"n":"0p833_0p675_0p185_0p361","t":35,"s":[82.985,26.973,0],"e":[162.985,24.473,0],"to":[31.0153961181641,-26.4728088378906,0],"ti":[-21.0153961181641,-9.52719116210938,0]},{"i":{"x":0.833,"y":0.753},"o":{"x":0.185,"y":0.274},"n":"0p833_0p753_0p185_0p274","t":40,"s":[162.985,24.473,0],"e":[219.985,140.473,0],"to":[21.0153961181641,9.52719116210938,0],"ti":[-15.0153961181641,-99.0271911621094,0]},{"t":46.0000018736184}],"ix":2},"a":{"a":0,"k":[49.985,49.973,0],"ix":1},"s":{"a":0,"k":[-50.014,50.014,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.5,-8.4],[8.4,1.6],[0.199,0.1],[2.599,-0.9],[0.201,0],[1.6,8.5],[-8.5,1.6],[-2.8,-1.2],[0,0],[0,0],[2.9,2.9],[0,0],[-4.2,-4.1],[-0.2,-2.1],[0,0],[-0.5,-0.3],[0.299,-0.5],[0,0],[-0.7,0.3],[-3.2,-0.6]],"o":[[-1.6,8.5],[-0.3,0],[-2.5,-0.9],[-0.201,0.1],[-8.5,1.6],[-1.6,-8.5],[3.2,-0.6],[1,0.5],[0,0],[-2,0],[-4.199,-4.2],[0,0],[2.3,2.3],[0,0],[0.3,-0.5],[0.5,0.3],[0,0],[0.801,-0.1],[2.8,-1.3],[8.5,1.5]],"v":[[25.65,1.6],[4.65,29.5],[3.951,29.3],[-3.749,29.3],[-4.45,29.5],[-25.55,1.6],[-13.05,-16.6],[-3.85,-15.5],[-0.749,-14.7],[0.45,-16.9],[-8.05,-20.3],[-11.35,-30.3],[-1.35,-27],[1.951,-19.7],[7.451,-29.9],[8.85,-30.3],[9.251,-28.9],[1.65,-14.7],[3.85,-15.4],[13.05,-16.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.380392163992,0.411764711142,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.366,50.503],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":167.000006802049,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"teeth Outlines","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20.312,41.66,0],"ix":2},"a":{"a":0,"k":[3.718,3.618,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.646,-2.841],[2.087,-2.018],[-0.571,2.841],[-2.087,2.392]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[5.1,4.146],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.338,-2.982],[1.673,-2.18],[-0.039,2.982],[-1.673,2.673]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.923,3.232],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"right eye Outlines","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[42.538,16.724,0],"e":[47.764,16.011,0],"to":[0.87093943357468,-0.11872462183237,0],"ti":[-0.05034303665161,-1.83084356784821,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[47.764,16.011,0],"e":[41.775,15.029,0],"to":[0.01295710168779,0.4712156355381,0],"ti":[3.24095487594604,-0.21771761775017,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18,"s":[41.775,15.029,0],"e":[35.94,19.224,0],"to":[-2.2777636051178,0.15301331877708,0],"ti":[0.64945775270462,-2.75669002532959,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":19,"s":[35.94,19.224,0],"e":[37.155,29.03,0],"to":[-1.57354974746704,6.67909383773804,0],"ti":[0.77238988876343,-1.01815032958984,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[37.155,29.03,0],"e":[38.689,17.956,0],"to":[-0.66211730241776,0.87279099225998,0],"ti":[-4.08277225494385,3.6608738899231,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30.5,"s":[38.689,17.956,0],"e":[46.673,19.389,0],"to":[4.08277225494385,-3.6608738899231,0],"ti":[0,0,0]},{"t":42.0000017106951}],"ix":2},"a":{"a":0,"k":[2.909,2.909,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[110,110,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":17,"s":[100,100,100],"e":[110,110,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":22,"s":[110,110,100],"e":[100,100,100]},{"t":42.0000017106951}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.86,-0.994],[0.994,-0.859],[0.86,0.994],[-0.994,0.86]],"o":[[0.86,0.994],[-0.993,0.86],[-0.86,-0.993],[0.993,-0.859]],"v":[[1.799,-1.557],[1.556,1.798],[-1.799,1.556],[-1.556,-1.799]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.349000010771,0.349000010771,0.349000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.909,2.909],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"left eye Outlines","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[20.352,12.353,0],"e":[23.754,15.218,0],"to":[0.75799149274826,-0.13729524612427,0],"ti":[1.20316421985626,-1.69811820983887,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[23.754,15.218,0],"e":[14.162,14.634,0],"to":[-0.43755486607552,0.61755484342575,0],"ti":[5.72465705871582,-5.02380609512329,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18.75,"s":[14.162,14.634,0],"e":[14.48,23.107,0],"to":[-5.72465705871582,5.02380609512329,0],"ti":[1.21317493915558,0.42704656720161,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[14.48,23.107,0],"e":[14.053,13.997,0],"to":[-1.21317493915558,-0.42704656720161,0],"ti":[-4.91244649887085,5.34288120269775,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":29.75,"s":[14.053,13.997,0],"e":[23.538,15.395,0],"to":[4.91244649887085,-5.34288120269775,0],"ti":[-1.43252968788147,0.25947457551956,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[23.538,15.395,0],"e":[20.161,13.089,0],"to":[1.894491314888,-0.34314984083176,0],"ti":[-1.51578795909882,0.27455517649651,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[2.909,2.909,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[110,110,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":17,"s":[100,100,100],"e":[110,110,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":22,"s":[110,110,100],"e":[100,100,100]},{"t":42.0000017106951}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.86,-0.994],[0.994,-0.859],[0.86,0.993],[-0.994,0.86]],"o":[[0.86,0.994],[-0.993,0.86],[-0.86,-0.993],[0.993,-0.859]],"v":[[1.799,-1.557],[1.556,1.798],[-1.799,1.556],[-1.556,-1.799]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.349000010771,0.349000010771,0.349000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.909,2.909],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"right blush Outlines","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.908,34.526,0],"ix":2},"a":{"a":0,"k":[4.844,4.952,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.811,2.618],[-2.549,-0.789],[0.811,-2.618],[2.549,0.79]],"o":[[0.811,-2.618],[2.548,0.79],[-0.811,2.619],[-2.548,-0.789]],"v":[[-4.615,-1.43],[1.469,-4.742],[4.615,1.428],[-1.469,4.739]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.430999995213,0.430999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.844,4.952],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"left blush Outlines","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[37.356,40.818,0],"ix":2},"a":{"a":0,"k":[5.879,5.991,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.756,-1.649],[1.716,2.869],[-2.756,1.649],[-1.716,-2.868]],"o":[[-2.756,1.649],[-1.716,-2.868],[2.756,-1.649],[1.716,2.868]],"v":[[3.107,5.193],[-4.99,2.986],[-3.107,-5.192],[4.99,-2.985]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.430999995213,0.430999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[5.879,5.991],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"glass leg Outlines","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[-42]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[-42],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0],"e":[-42]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[-42],"e":[0]},{"t":47.0000019143492}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[58.822,31.197,0],"e":[64.21,21.554,0],"to":[0.89794141054153,-1.60704386234283,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[64.21,21.554,0],"e":[58.822,31.197,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[58.822,31.197,0],"e":[64.21,21.554,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[64.21,21.554,0],"e":[58.822,31.197,0],"to":[0,0,0],"ti":[0.89794141054153,-1.60704386234283,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[10.014,11.241,0],"ix":1},"s":{"a":0,"k":[104.675,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[-1.819,-2.087],[-4.279,-4.91],[1.819,2.088],[4.279,4.91]],"o":[[4.278,4.91],[1.828,2.099],[-4.28,-4.91],[-1.829,-2.099]],"v":[[-7.945,-5.839],[4.892,8.892],[7.945,5.839],[-4.892,-8.892]],"c":true}],"e":[{"i":[[-1.819,-2.087],[-4.279,-4.91],[1.819,2.088],[4.279,4.91]],"o":[[4.278,4.91],[1.828,2.099],[-4.28,-4.91],[-1.829,-2.099]],"v":[[-7.945,-5.839],[1.191,4.186],[4.147,0.904],[-4.892,-8.892]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[-1.819,-2.087],[-4.279,-4.91],[1.819,2.088],[4.279,4.91]],"o":[[4.278,4.91],[1.828,2.099],[-4.28,-4.91],[-1.829,-2.099]],"v":[[-7.945,-5.839],[1.191,4.186],[4.147,0.904],[-4.892,-8.892]],"c":true}],"e":[{"i":[[-1.819,-2.087],[-4.279,-4.91],[1.819,2.088],[4.279,4.91]],"o":[[4.278,4.91],[1.828,2.099],[-4.28,-4.91],[-1.829,-2.099]],"v":[[-7.945,-5.839],[4.892,8.892],[7.945,5.839],[-4.892,-8.892]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[-1.819,-2.087],[-4.279,-4.91],[1.819,2.088],[4.279,4.91]],"o":[[4.278,4.91],[1.828,2.099],[-4.28,-4.91],[-1.829,-2.099]],"v":[[-7.945,-5.839],[4.892,8.892],[7.945,5.839],[-4.892,-8.892]],"c":true}],"e":[{"i":[[-1.819,-2.087],[-4.279,-4.91],[1.819,2.088],[4.279,4.91]],"o":[[4.278,4.91],[1.828,2.099],[-4.28,-4.91],[-1.829,-2.099]],"v":[[-7.945,-5.839],[1.191,4.186],[4.147,0.904],[-4.892,-8.892]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[{"i":[[-1.819,-2.087],[-4.279,-4.91],[1.819,2.088],[4.279,4.91]],"o":[[4.278,4.91],[1.828,2.099],[-4.28,-4.91],[-1.829,-2.099]],"v":[[-7.945,-5.839],[1.191,4.186],[4.147,0.904],[-4.892,-8.892]],"c":true}],"e":[{"i":[[-1.819,-2.087],[-4.279,-4.91],[1.819,2.088],[4.279,4.91]],"o":[[4.278,4.91],[1.828,2.099],[-4.28,-4.91],[-1.829,-2.099]],"v":[[-7.945,-5.839],[4.892,8.892],[7.945,5.839],[-4.892,-8.892]],"c":true}]},{"t":47.0000019143492}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.365000017952,0.976000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.014,11.241],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"glass mid","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[31.189,19.107,0],"ix":2},"a":{"a":0,"k":[12.089,10.362,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.454,-3.454]],"o":[[0,0],[0,0]],"v":[[-3.454,0],[3.454,1.727]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.313999998803,0.365000017952,0.976000019148,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.454,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[12.089,10.362],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"right glass Outlines","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[9]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[9],"e":[0]},{"t":22.0000008960784}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[42.247,23.795,0],"e":[42.247,19.795,0],"to":[0,-0.66666668653488,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[42.247,19.795,0],"e":[42.247,23.795,0],"to":[0,0,0],"ti":[0,-0.66666668653488,0]},{"t":22.0000008960784}],"ix":2},"a":{"a":0,"k":[18.398,18.804,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.726,-1.893],[3.751,3.273],[-3.663,4.242],[-3.679,-3.355],[-0.074,-2.34]],"o":[[-3.452,3.786],[-3.725,-3.252],[3.349,-3.877],[1.839,1.677],[0.074,2.339]],"v":[[7.221,6.114],[-5.691,6.896],[-6.101,-6.033],[6.811,-6.814],[9.689,-0.512]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.313999998803,0.365000017952,0.976000019148,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.454,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[18.398,18.804],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"right ear Outlines","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[-14],"e":[-14]},{"t":42.0000017106951}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[68.438,22.11,0],"e":[59.029,9.437,0],"to":[-1.56817352771759,-2.11210107803345,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[59.029,9.437,0],"e":[68.438,22.11,0],"to":[0,0,0],"ti":[-0.69228959083557,-0.1520429700613,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[68.438,22.11,0],"e":[63.183,10.349,0],"to":[0.69228959083557,0.1520429700613,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[63.183,10.349,0],"e":[68.438,22.11,0],"to":[0,0,0],"ti":[-0.87588393688202,-1.96005809307098,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[7.277,8.167,0],"ix":1},"s":{"a":0,"k":[87.794,95.636,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.205,"y":1},"o":{"x":1,"y":0},"n":"0p205_1_1_0","t":0,"s":[{"i":[[0.373,-0.494],[-4.647,-2.786],[-0.182,3.144],[3.477,0]],"o":[[-2.483,3.287],[1.628,0.976],[0.235,-4.094],[-1.392,0]],"v":[[-4.544,-7.153],[2.088,4.966],[8.16,-3.175],[-1.665,-7.917]],"c":true}],"e":[{"i":[[0.373,-0.494],[-4.647,-2.786],[-0.182,3.144],[3.477,0]],"o":[[-2.483,3.287],[1.628,0.976],[0.235,-4.094],[-1.392,0]],"v":[[-4.544,-7.153],[2.088,4.966],[8.16,-3.175],[-1.665,-7.917]],"c":true}]},{"i":{"x":1,"y":0.998},"o":{"x":1,"y":0},"n":"1_0p998_1_0","t":18,"s":[{"i":[[0.373,-0.494],[-4.647,-2.786],[-0.182,3.144],[3.477,0]],"o":[[-2.483,3.287],[1.628,0.976],[0.235,-4.094],[-1.392,0]],"v":[[-4.544,-7.153],[2.088,4.966],[8.16,-3.175],[-1.665,-7.917]],"c":true}],"e":[{"i":[[0.373,-0.494],[-4.647,-2.786],[-0.182,3.144],[3.477,0]],"o":[[-2.483,3.287],[1.628,0.976],[0.235,-4.094],[-1.392,0]],"v":[[-4.544,-7.153],[2.088,4.966],[8.16,-3.175],[-1.665,-7.917]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.052,"y":1},"n":"0_1_0p052_1","t":23,"s":[{"i":[[0.373,-0.494],[-4.647,-2.786],[-0.182,3.144],[3.477,0]],"o":[[-2.483,3.287],[1.628,0.976],[0.235,-4.094],[-1.392,0]],"v":[[-4.544,-7.153],[2.088,4.966],[8.16,-3.175],[-1.665,-7.917]],"c":true}],"e":[{"i":[[0.373,-0.494],[-4.647,-2.786],[-0.182,3.144],[3.477,0]],"o":[[-2.483,3.287],[1.628,0.976],[0.235,-4.094],[-1.392,0]],"v":[[-4.544,-7.153],[2.088,4.966],[8.16,-3.175],[-1.665,-7.917]],"c":true}]},{"t":34.0000013848484}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0.115,0.286],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[99.454,101.055],"ix":3},"r":{"a":0,"k":-1.33,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.984313726425,0.525490224361,0.537254929543,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.541,7.827],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[104.62,100.21],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"left glass Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[-24]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[-24],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0],"e":[-3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[-3],"e":[0]},{"t":47.0000019143492}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[113.337,79.663,0],"e":[86.337,67.663,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[86.337,67.663,0],"e":[113.337,79.663,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[113.337,79.663,0],"e":[105.337,60.663,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[105.337,60.663,0],"e":[113.337,79.663,0],"to":[0,0,0],"ti":[0,0,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[18.693,18.548,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[4.149,-2.624],[2.546,4.026],[-4.149,2.623],[-2.546,-4.025]],"o":[[-4.149,2.624],[-2.546,-4.025],[4.149,-2.624],[2.546,4.026]],"v":[[4.611,7.289],[-7.512,4.751],[-4.609,-7.29],[7.512,-4.752]],"c":true}],"e":[{"i":[[4.149,-2.624],[2.546,4.026],[-4.149,2.623],[-2.546,-4.025]],"o":[[-4.149,2.624],[-2.546,-4.025],[4.149,-2.624],[2.546,4.026]],"v":[[4.611,7.289],[-7.512,4.751],[-4.609,-7.29],[7.512,-4.752]],"c":true}]},{"t":47.0000019143492}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.313999998803,0.365000017952,0.976000019148,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.454,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[18.693,18.548],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"right leg Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[-21]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[-21],"e":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[2],"e":[0]},{"t":47.0000019143492}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[137.234,263.001,0],"e":[149.234,229.001,0],"to":[2,-5.66666650772095,0],"ti":[-1.5,-0.5,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[149.234,229.001,0],"e":[146.234,266.001,0],"to":[1.5,0.5,0],"ti":[3.5,-0.16666667163372,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[146.234,266.001,0],"e":[128.234,230.001,0],"to":[-3.5,0.16666667163372,0],"ti":[1.5,0.5,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[128.234,230.001,0],"e":[137.234,263.001,0],"to":[-1.5,-0.5,0],"ti":[-1.5,-5.5,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[6.404,11.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[1.203,-6.24],[-7.402,0.838],[1.536,2.127],[0,0]],"o":[[-1.039,5.389],[4.747,-0.538],[0,0],[0,0]],"v":[[-10.659,2.429],[-9.691,18.566],[16.208,-23.499],[-4.812,-19.381]],"c":true}],"e":[{"i":[[3.453,-0.562],[-9.391,2.685],[1.536,2.127],[0,0]],"o":[[-5.722,0.931],[9.444,-2.7],[0,0],[0,0]],"v":[[-8.909,-9.07],[-7.939,-2.692],[7.715,-15.478],[-4.811,-19.381]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[3.453,-0.562],[-9.391,2.685],[1.536,2.127],[0,0]],"o":[[-5.722,0.931],[9.444,-2.7],[0,0],[0,0]],"v":[[-8.909,-9.07],[-7.939,-2.692],[7.715,-15.478],[-4.811,-19.381]],"c":true}],"e":[{"i":[[3.453,-0.562],[-9.391,2.685],[1.536,2.127],[0,0]],"o":[[-5.722,0.931],[9.444,-2.7],[0,0],[0,0]],"v":[[-8.909,-9.07],[-7.939,-2.692],[7.715,-15.478],[-4.811,-19.381]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[3.453,-0.562],[-9.391,2.685],[1.536,2.127],[0,0]],"o":[[-5.722,0.931],[9.444,-2.7],[0,0],[0,0]],"v":[[-8.909,-9.07],[-7.939,-2.692],[7.715,-15.478],[-4.811,-19.381]],"c":true}],"e":[{"i":[[3.453,-0.562],[-9.391,2.685],[1.536,2.127],[0,0]],"o":[[-5.722,0.931],[9.444,-2.7],[0,0],[0,0]],"v":[[-8.909,-9.07],[-7.939,-2.692],[7.715,-15.478],[-4.811,-19.381]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[{"i":[[3.453,-0.562],[-9.391,2.685],[1.536,2.127],[0,0]],"o":[[-5.722,0.931],[9.444,-2.7],[0,0],[0,0]],"v":[[-8.909,-9.07],[-7.939,-2.692],[7.715,-15.478],[-4.811,-19.381]],"c":true}],"e":[{"i":[[1.203,-6.24],[-7.402,0.838],[1.536,2.127],[0,0]],"o":[[-1.039,5.389],[4.747,-0.538],[0,0],[0,0]],"v":[[-10.659,2.43],[-11.187,28.112],[16.208,-23.499],[-4.811,-19.381]],"c":true}]},{"t":47.0000019143492}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,99.949],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976470589638,0.57647061348,0.57647061348,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.625,19.807],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100.231,99.569],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"left leg Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[-7]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[-7],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0],"e":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[5],"e":[0]},{"t":47.0000019143492}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[114.346,258.893,0],"e":[119.596,226.893,0],"to":[0.875,-5.33333349227905,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[119.596,226.893,0],"e":[119.846,266.393,0],"to":[0,0,0],"ti":[0.46127620339394,-2.81158828735352,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[119.846,266.393,0],"e":[97.596,219.893,0],"to":[-0.875,5.33333349227905,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[97.596,219.893,0],"e":[114.346,258.893,0],"to":[0,0,0],"ti":[-2.79166674613953,-6.5,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[16.021,16.585,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[-12.369,-1.388],[2.77,3.145],[0,1.393],[0,0],[0,0]],"o":[[10.544,1.183],[-1.665,-1.89],[0,-7.65],[0,0],[0,0]],"v":[[4.143,8.543],[10.207,3.82],[6.493,-1.492],[0.929,-14.48],[-15.771,-16.335]],"c":true}],"e":[{"i":[[-11.149,1.063],[4.196,6.676],[0,0],[0,0],[0,0]],"o":[[4.05,-0.386],[-2.99,-4.757],[0,0],[0,0],[0,0]],"v":[[9.806,8.474],[5.06,-1.478],[2.993,-11.242],[0.928,-14.48],[-16.343,-15.672]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[-11.149,1.063],[4.196,6.676],[0,0],[0,0],[0,0]],"o":[[4.05,-0.386],[-2.99,-4.757],[0,0],[0,0],[0,0]],"v":[[9.806,8.474],[5.06,-1.478],[2.993,-11.242],[0.928,-14.48],[-16.343,-15.672]],"c":true}],"e":[{"i":[[-9.87,-7.218],[0.816,5.06],[0,1.393],[0,0],[0,0]],"o":[[5.454,3.988],[-0.463,-2.868],[0,-7.65],[0,0],[0,0]],"v":[[8.992,22.67],[9.912,7.963],[6.01,-5.865],[0.929,-14.48],[-19.64,-21.193]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[-9.87,-7.218],[0.816,5.06],[0,1.393],[0,0],[0,0]],"o":[[5.454,3.988],[-0.463,-2.868],[0,-7.65],[0,0],[0,0]],"v":[[8.992,22.67],[9.912,7.963],[6.01,-5.865],[0.929,-14.48],[-19.64,-21.193]],"c":true}],"e":[{"i":[[-11.149,1.063],[4.196,6.676],[0,0],[0,0],[0,0]],"o":[[4.05,-0.386],[-2.99,-4.757],[0,0],[0,0],[0,0]],"v":[[9.806,8.474],[5.06,-1.478],[2.993,-11.242],[0.928,-14.48],[-16.343,-15.672]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[{"i":[[-11.149,1.063],[4.196,6.676],[0,0],[0,0],[0,0]],"o":[[4.05,-0.386],[-2.99,-4.757],[0,0],[0,0],[0,0]],"v":[[9.806,8.474],[5.06,-1.478],[2.993,-11.242],[0.928,-14.48],[-16.343,-15.672]],"c":true}],"e":[{"i":[[-12.369,-1.388],[2.77,3.145],[0,1.393],[0,0],[0,0]],"o":[[10.544,1.183],[-1.665,-1.89],[0,-7.65],[0,0],[0,0]],"v":[[4.143,8.543],[10.207,3.82],[6.493,-1.492],[0.929,-14.48],[-15.771,-16.335]],"c":true}]},{"t":47.0000019143492}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976470589638,0.57647061348,0.57647061348,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.083,16.789],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[103.391,102.914],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"body","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0],"e":[14]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[14],"e":[0]},{"t":47.0000019143492}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[131.075,163.508,0],"e":[125.075,144.508,0],"to":[-1,-3.16666674613953,0],"ti":[0.16666667163372,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[125.075,144.508,0],"e":[130.075,163.508,0],"to":[-0.16666667163372,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[130.075,163.508,0],"e":[125.075,144.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[125.075,144.508,0],"e":[130.075,163.508,0],"to":[0,0,0],"ti":[-0.83333331346512,-3.16666674613953,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[57.909,101.248,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[3.119,14.05],[1.443,14.3],[-2.17,13.017],[24.121,3.711],[1.855,-5.566],[0,0],[3.711,-9.276],[-0.497,-4.769],[0.927,-0.928],[1.074,-2.294],[1.392,-5.65],[-12.598,-18.435],[-23.003,15.653]],"o":[[-3.406,-15.344],[-0.176,-1.741],[1.856,-11.133],[-24.12,-3.711],[0,0],[0,0],[-0.436,1.09],[0.861,8.25],[-0.637,0.638],[-2.503,5.341],[-5.042,20.471],[16.307,23.863],[20.023,-13.625]],"v":[[114.214,133.19],[100.314,82.432],[100.948,46.636],[74.972,3.961],[34.153,24.371],[32.297,29.937],[21.165,41.069],[19.24,50.728],[25.804,69.828],[11.164,95.141],[5.292,111.681],[15.526,172.377],[93.31,188.365]],"c":true}],"e":[{"i":[[2.064,8.136],[5.519,9.808],[2.437,12.97],[31.861,-4.221],[0.18,-13.631],[0,0],[1.918,-5.829],[-4.252,-6.457],[0.927,-0.928],[6.669,-10.901],[0.041,-8.441],[-15.193,-18.637],[-23.788,14.432]],"o":[[-3.865,-15.235],[-0.858,-1.525],[-4.115,-21.896],[-12.162,1.611],[0,0],[0,0],[-0.367,1.115],[6.593,10.012],[-0.637,0.638],[-4.793,7.835],[-0.091,18.721],[14.406,17.672],[31.523,-19.125]],"v":[[116.714,116.69],[100.314,82.932],[88.948,43.136],[42.472,-1.539],[16.153,25.371],[16.797,38.187],[11.665,44.569],[11.74,60.728],[23.804,72.328],[12.164,86.641],[4.292,113.681],[19.026,162.377],[92.31,178.365]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[2.064,8.136],[5.519,9.808],[2.437,12.97],[31.861,-4.221],[0.18,-13.631],[0,0],[1.918,-5.829],[-4.252,-6.457],[0.927,-0.928],[6.669,-10.901],[0.041,-8.441],[-15.193,-18.637],[-23.788,14.432]],"o":[[-3.865,-15.235],[-0.858,-1.525],[-4.115,-21.896],[-12.162,1.611],[0,0],[0,0],[-0.367,1.115],[6.593,10.012],[-0.637,0.638],[-4.793,7.835],[-0.091,18.721],[14.406,17.672],[31.523,-19.125]],"v":[[116.714,116.69],[100.314,82.932],[88.948,43.136],[42.472,-1.539],[16.153,25.371],[16.797,38.187],[11.665,44.569],[11.74,60.728],[23.804,72.328],[12.164,86.641],[4.292,113.681],[19.026,162.377],[92.31,178.365]],"c":true}],"e":[{"i":[[3.119,14.05],[1.443,14.3],[-2.17,13.017],[24.121,3.711],[1.855,-5.566],[0,0],[3.711,-9.276],[-0.497,-4.769],[0.927,-0.928],[1.074,-2.294],[1.392,-5.65],[-12.598,-18.435],[-23.003,15.653]],"o":[[-3.406,-15.344],[-0.176,-1.741],[1.856,-11.133],[-24.12,-3.711],[0,0],[0,0],[-0.436,1.09],[0.861,8.25],[-0.637,0.638],[-2.503,5.341],[-5.042,20.471],[16.307,23.863],[20.023,-13.625]],"v":[[114.214,133.19],[100.314,82.432],[100.948,46.636],[74.972,3.961],[34.153,24.371],[32.297,29.937],[21.165,41.069],[19.24,50.728],[25.804,69.828],[11.164,95.141],[5.292,111.681],[15.526,172.377],[93.31,188.365]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[3.119,14.05],[1.443,14.3],[-2.17,13.017],[24.121,3.711],[1.855,-5.566],[0,0],[3.711,-9.276],[-0.497,-4.769],[0.927,-0.928],[1.074,-2.294],[1.392,-5.65],[-12.598,-18.435],[-23.003,15.653]],"o":[[-3.406,-15.344],[-0.176,-1.741],[1.856,-11.133],[-24.12,-3.711],[0,0],[0,0],[-0.436,1.09],[0.861,8.25],[-0.637,0.638],[-2.503,5.341],[-5.042,20.471],[16.307,23.863],[20.023,-13.625]],"v":[[114.214,133.19],[100.314,82.432],[100.948,46.636],[74.972,3.961],[34.153,24.371],[32.297,29.937],[21.165,41.069],[19.24,50.728],[25.804,69.828],[11.164,95.141],[5.292,111.681],[15.526,172.377],[93.31,188.365]],"c":true}],"e":[{"i":[[2.064,8.136],[5.519,9.808],[2.437,12.97],[31.861,-4.221],[0.18,-13.631],[0,0],[1.918,-5.829],[-4.252,-6.457],[0.927,-0.928],[6.669,-10.901],[0.041,-8.441],[-15.193,-18.637],[-23.788,14.432]],"o":[[-3.865,-15.235],[-0.858,-1.525],[-4.115,-21.896],[-12.162,1.611],[0,0],[0,0],[-0.367,1.115],[6.593,10.012],[-0.637,0.638],[-4.793,7.835],[-0.091,18.721],[14.406,17.672],[31.523,-19.125]],"v":[[116.714,116.69],[100.314,82.932],[88.948,43.136],[42.472,-1.539],[16.153,25.371],[16.797,38.187],[11.665,44.569],[11.74,60.728],[23.804,72.328],[12.164,86.641],[4.292,113.681],[19.026,162.377],[92.31,178.365]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[{"i":[[2.064,8.136],[5.519,9.808],[2.437,12.97],[31.861,-4.221],[0.18,-13.631],[0,0],[1.918,-5.829],[-4.252,-6.457],[0.927,-0.928],[6.669,-10.901],[0.041,-8.441],[-15.193,-18.637],[-23.788,14.432]],"o":[[-3.865,-15.235],[-0.858,-1.525],[-4.115,-21.896],[-12.162,1.611],[0,0],[0,0],[-0.367,1.115],[6.593,10.012],[-0.637,0.638],[-4.793,7.835],[-0.091,18.721],[14.406,17.672],[31.523,-19.125]],"v":[[116.714,116.69],[100.314,82.932],[88.948,43.136],[42.472,-1.539],[16.153,25.371],[16.797,38.187],[11.665,44.569],[11.74,60.728],[23.804,72.328],[12.164,86.641],[4.292,113.681],[19.026,162.377],[92.31,178.365]],"c":true}],"e":[{"i":[[3.119,14.05],[1.443,14.3],[-2.17,13.017],[24.121,3.711],[1.855,-5.566],[0,0],[3.711,-9.276],[-0.497,-4.769],[0.927,-0.928],[1.074,-2.294],[1.392,-5.65],[-12.598,-18.435],[-23.003,15.653]],"o":[[-3.406,-15.344],[-0.176,-1.741],[1.856,-11.133],[-24.12,-3.711],[0,0],[0,0],[-0.436,1.09],[0.861,8.25],[-0.637,0.638],[-2.503,5.341],[-5.042,20.471],[16.307,23.863],[20.023,-13.625]],"v":[[114.214,133.19],[100.314,82.432],[100.948,46.636],[74.972,3.961],[34.153,24.371],[32.297,29.937],[21.165,41.069],[19.24,50.728],[25.804,69.828],[11.164,95.141],[5.292,111.681],[15.526,172.377],[93.31,188.365]],"c":true}]},{"t":47.0000019143492}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.57599995931,0.57599995931,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"left ear","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[47.905,119.544,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[76.687,99.836,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[13,-4.5],[0,0],[0,0]],"o":[[-10.459,3.62],[0,0],[0,0]],"v":[[-8,-120.5],[-19.5,-109.5],[1.932,-112.016]],"c":true}],"e":[{"i":[[10.44,-3.65],[0,0],[0,0]],"o":[[-10.448,3.653],[0,0],[0,0]],"v":[[-26.889,-117.04],[-18.018,-107.449],[-7.084,-114.234]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[10.44,-3.65],[0,0],[0,0]],"o":[[-10.448,3.653],[0,0],[0,0]],"v":[[-26.889,-117.04],[-18.018,-107.449],[-7.084,-114.234]],"c":true}],"e":[{"i":[[14.183,-1.941],[0,0],[0,0]],"o":[[-18.722,2.562],[0,0],[0,0]],"v":[[-3.16,-120.237],[-19.5,-109.5],[1.932,-112.016]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[14.183,-1.941],[0,0],[0,0]],"o":[[-18.722,2.562],[0,0],[0,0]],"v":[[-3.16,-120.237],[-19.5,-109.5],[1.932,-112.016]],"c":true}],"e":[{"i":[[10.932,1.606],[0,0],[0,0]],"o":[[-21.367,-3.138],[0,0],[0,0]],"v":[[3.658,-121.26],[-24.796,-110.572],[-6.371,-112.546]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[{"i":[[10.932,1.606],[0,0],[0,0]],"o":[[-21.367,-3.138],[0,0],[0,0]],"v":[[3.658,-121.26],[-24.796,-110.572],[-6.371,-112.546]],"c":true}],"e":[{"i":[[13,-4.5],[0,0],[0,0]],"o":[[-10.459,3.62],[0,0],[0,0]],"v":[[-8,-120.5],[-19.5,-109.5],[1.932,-112.016]],"c":true}]},{"t":47.0000019143492}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941179276,0.509803950787,0.501960813999,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[101.015,100.81],"ix":3},"r":{"a":0,"k":0.022,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"right arm Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[171.186,127.399,0],"ix":2},"a":{"a":0,"k":[52.548,63.288,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[-11.104,-11.125],[-10.566,6.314],[-2.469,1.867],[-0.826,0.524],[0.43,1.436],[0.92,0.748],[2.738,-0.091],[2.379,-0.189],[7.807,0.614],[4.254,0.971]],"o":[[10.295,-6.33],[3.554,-2.124],[0.935,-0.707],[4.367,-2.771],[-0.501,-1.673],[-1.395,-1.134],[-1.711,0.057],[-4.64,0.37],[-18.768,-1.478],[8.543,11.558]],"v":[[-19.199,20.792],[15.781,0.985],[24.956,-5.034],[33.911,-2.903],[32.779,-11.406],[28.355,-15.942],[22.268,-17.235],[16.161,-16.8],[-2.301,-16.674],[-32.458,-20.792]],"c":true}],"e":[{"i":[[-11.104,-11.125],[-15.5,5.99],[-2.532,1.977],[-0.818,0.548],[1.315,0.658],[2.733,-1.47],[2.307,-0.855],[2.425,-0.21],[7.873,0.585],[4.207,1.23]],"o":[[10.722,-6.116],[4.08,-1.577],[0.941,-0.73],[4.189,-2.716],[-6.288,-3.145],[-1.576,0.848],[-1.622,0.601],[-4.686,0.403],[-18.771,-1.407],[7.528,11.882]],"v":[[-20.519,21.393],[8.649,4.112],[26.044,-4.509],[33.858,-10.09],[38.489,-23.076],[26.709,-19.924],[22.363,-17.256],[13.134,-18.87],[-8.198,-20.59],[-32.653,-20.553]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":1,"s":[{"i":[[-11.104,-11.125],[-15.5,5.99],[-2.532,1.977],[-0.818,0.548],[1.315,0.658],[2.733,-1.47],[2.307,-0.855],[2.425,-0.21],[7.873,0.585],[4.207,1.23]],"o":[[10.722,-6.116],[4.08,-1.577],[0.941,-0.73],[4.189,-2.716],[-6.288,-3.145],[-1.576,0.848],[-1.622,0.601],[-4.686,0.403],[-18.771,-1.407],[7.528,11.882]],"v":[[-20.519,21.393],[8.649,4.112],[26.044,-4.509],[33.858,-10.09],[38.489,-23.076],[26.709,-19.924],[22.363,-17.256],[13.134,-18.87],[-8.198,-20.59],[-32.653,-20.553]],"c":true}],"e":[{"i":[[-11.104,-11.125],[-14.505,10.067],[-3.542,3.728],[-1.091,0.379],[0.288,0.961],[0.755,0.802],[2.104,0.089],[3.158,-0.545],[8.937,0.129],[3.463,5.376]],"o":[[17.56,-2.697],[6.68,-4.636],[1.042,-1.097],[2.469,-0.858],[-0.436,-1.457],[-1.146,-1.217],[-2.026,-0.086],[-5.416,0.935],[-18.824,-0.272],[-8.717,17.058]],"v":[[-41.654,31.01],[10.463,7.876],[26.189,-5.06],[28.786,-8.112],[33.299,-14.684],[31.518,-23.387],[24.713,-25.943],[16.161,-16.8],[-8.385,-13.15],[-35.767,-16.742]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[-11.104,-11.125],[-14.505,10.067],[-3.542,3.728],[-1.091,0.379],[0.288,0.961],[0.755,0.802],[2.104,0.089],[3.158,-0.545],[8.937,0.129],[3.463,5.376]],"o":[[17.56,-2.697],[6.68,-4.636],[1.042,-1.097],[2.469,-0.858],[-0.436,-1.457],[-1.146,-1.217],[-2.026,-0.086],[-5.416,0.935],[-18.824,-0.272],[-8.717,17.058]],"v":[[-41.654,31.01],[10.463,7.876],[26.189,-5.06],[28.786,-8.112],[33.299,-14.684],[31.518,-23.387],[24.713,-25.943],[16.161,-16.8],[-8.385,-13.15],[-35.767,-16.742]],"c":true}],"e":[{"i":[[-11.104,-11.125],[-9.387,5.292],[-3.92,2.822],[-0.773,0.752],[-0.73,0.992],[5.019,-0.422],[2.101,0.07],[3.195,-0.254],[7.601,1.883],[4.254,0.971]],"o":[[9.446,-0.926],[6.596,-3.719],[1.154,-0.831],[1.526,-1.486],[1.973,-2.682],[-1.59,0.134],[-2.024,-0.067],[-4.64,0.37],[-17.269,-4.278],[8.543,11.558]],"v":[[-19.199,20.792],[9.216,3.798],[25.656,-6.016],[28.563,-8.391],[35.362,-14.602],[32.833,-21.042],[23.922,-17.241],[16.161,-16.8],[-4.885,-17.657],[-32.458,-20.792]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[-11.104,-11.125],[-9.387,5.292],[-3.92,2.822],[-0.773,0.752],[-0.73,0.992],[5.019,-0.422],[2.101,0.07],[3.195,-0.254],[7.601,1.883],[4.254,0.971]],"o":[[9.446,-0.926],[6.596,-3.719],[1.154,-0.831],[1.526,-1.486],[1.973,-2.682],[-1.59,0.134],[-2.024,-0.067],[-4.64,0.37],[-17.269,-4.278],[8.543,11.558]],"v":[[-19.199,20.792],[9.216,3.798],[25.656,-6.016],[28.563,-8.391],[35.362,-14.602],[32.833,-21.042],[23.922,-17.241],[16.161,-16.8],[-4.885,-17.657],[-32.458,-20.792]],"c":true}],"e":[{"i":[[-11.104,-11.125],[-10.566,6.314],[-2.638,2.383],[-0.503,0.637],[-0.393,0.923],[2.901,0.041],[2.651,-0.472],[3.195,-0.254],[7.807,0.614],[4.254,0.971]],"o":[[10.295,-6.33],[4.866,-2.908],[0.776,-0.701],[0.993,-1.259],[1.852,-4.349],[-1.596,-0.023],[-1.993,0.355],[-4.64,0.37],[-18.768,-1.478],[8.543,11.558]],"v":[[-19.199,20.792],[15.781,0.985],[27.397,-7.033],[29.325,-9.043],[32.427,-12.909],[31.801,-24.024],[23.922,-17.241],[16.161,-16.8],[-2.301,-16.674],[-32.458,-20.792]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[{"i":[[-11.104,-11.125],[-10.566,6.314],[-2.638,2.383],[-0.503,0.637],[-0.393,0.923],[2.901,0.041],[2.651,-0.472],[3.195,-0.254],[7.807,0.614],[4.254,0.971]],"o":[[10.295,-6.33],[4.866,-2.908],[0.776,-0.701],[0.993,-1.259],[1.852,-4.349],[-1.596,-0.023],[-1.993,0.355],[-4.64,0.37],[-18.768,-1.478],[8.543,11.558]],"v":[[-19.199,20.792],[15.781,0.985],[27.397,-7.033],[29.325,-9.043],[32.427,-12.909],[31.801,-24.024],[23.922,-17.241],[16.161,-16.8],[-2.301,-16.674],[-32.458,-20.792]],"c":true}],"e":[{"i":[[-11.104,-11.125],[-10.566,6.314],[-2.638,2.383],[-0.503,0.637],[0.288,0.961],[0.747,0.74],[2.101,0.07],[3.195,-0.254],[7.807,0.614],[4.254,0.971]],"o":[[10.295,-6.33],[4.866,-2.908],[0.776,-0.701],[0.993,-1.259],[-0.436,-1.457],[-1.134,-1.123],[-2.024,-0.067],[-4.64,0.37],[-18.768,-1.478],[8.543,11.558]],"v":[[-19.199,20.792],[15.781,0.985],[27.397,-7.033],[29.325,-9.043],[30.454,-12.39],[28.7,-15.633],[23.922,-17.241],[16.161,-16.8],[-2.301,-16.674],[-32.458,-20.792]],"c":true}]},{"t":47.0000019143492}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[0,0],"e":[-7.516,-68.234],"to":[-1.25260412693024,-11.3723955154419],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[-7.516,-68.234],"e":[0,0],"to":[0,0],"ti":[0.44322040677071,-8.47819042205811]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[0,0],"e":[-10.175,-17.365],"to":[-0.44322040677071,8.47819042205811],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[-10.175,-17.365],"e":[0,0],"to":[0,0],"ti":[-1.69582462310791,-2.89420580863953]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[101.323,101.673],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[-34]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[-34],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0],"e":[25.257]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[25.257],"e":[0]},{"t":47.0000019143492}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976470589638,0.57647061348,0.57647061348,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[74.24,107.805],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[98.342,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Tail Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[-33]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[-33],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0],"e":[-17]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[-17],"e":[0]},{"t":47.0000019143492}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[212.335,167.723,0],"e":[190.335,118.723,0],"to":[-3.66666674613953,-8.16666698455811,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[190.335,118.723,0],"e":[212.335,167.723,0],"to":[0,0,0],"ti":[-0.83333331346512,-1.83333337306976,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[212.335,167.723,0],"e":[195.335,129.723,0],"to":[0.83333331346512,1.83333337306976,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[195.335,129.723,0],"e":[212.335,167.723,0],"to":[0,0,0],"ti":[-2.83333325386047,-6.33333349227905,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[54.728,57.385,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.626,-43.075],[8.28,-11.357],[-20.938,9.59],[-4.438,25.785],[17.722,4.423],[2.676,0]],"o":[[-6.694,18.454],[12.237,-1.587],[23.8,-10.901],[3.197,-18.576],[-2.934,-0.733],[-23.09,0.001]],"v":[[-30.358,12.605],[-54.478,57.135],[-2.526,42.293],[51.281,-13.37],[30.872,-56.045],[22.465,-57.136]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941179276,0.509803950787,0.501960813999,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.728,57.386],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"left hand","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[-62]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[-62],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0],"e":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[2],"e":[0]},{"t":47.0000019143492}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[73.59,148.469,0],"e":[66.59,159.469,0],"to":[-1.16666662693024,1.83333337306976,0],"ti":[0.5,0.83333331346512,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[66.59,159.469,0],"e":[70.59,143.469,0],"to":[-0.5,-0.83333331346512,0],"ti":[-2.5,7.16666650772095,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[70.59,143.469,0],"e":[81.59,116.469,0],"to":[2.5,-7.16666650772095,0],"ti":[-0.5,-0.83333331346512,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[81.59,116.469,0],"e":[73.59,148.469,0],"to":[0.5,0.83333331346512,0],"ti":[1.33333337306976,-5.33333349227905,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[26.314,29.276,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[2.354,-5.536],[-1.08,-3.642],[-22.462,-9.92],[-0.008,2.143],[8.241,2.434],[0.346,0.758],[2.55,0.62]],"o":[[-1.514,3.559],[2.627,8.841],[-1.75,-5.549],[-4.541,0.998],[-7.681,-2.268],[-0.844,-1.846],[-4.134,0.346]],"v":[[-24.551,-20.684],[-24.479,-9.865],[9.958,29.026],[26.064,-6.89],[3.748,-10.381],[-10.835,-16.004],[-14.424,-29.026]],"c":true}],"e":[{"i":[[-2.873,-10.082],[-1.08,-3.642],[-27.836,-10.69],[-0.008,2.143],[7.525,2.066],[0.88,0.302],[2.55,0.62]],"o":[[1.06,3.72],[2.627,8.841],[-1.75,-5.549],[-4.045,0.889],[-8.797,-2.415],[-5.212,-1.789],[1.105,-8.394]],"v":[[-30.277,-15.063],[-24.157,-9.482],[9.958,29.026],[38.112,-0.636],[3.547,-8.438],[-10.835,-16.004],[-22.437,-22.629]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[-2.873,-10.082],[-1.08,-3.642],[-27.836,-10.69],[-0.008,2.143],[7.525,2.066],[0.88,0.302],[2.55,0.62]],"o":[[1.06,3.72],[2.627,8.841],[-1.75,-5.549],[-4.045,0.889],[-8.797,-2.415],[-5.212,-1.789],[1.105,-8.394]],"v":[[-30.277,-15.063],[-24.157,-9.482],[9.958,29.026],[38.112,-0.636],[3.547,-8.438],[-10.835,-16.004],[-22.437,-22.629]],"c":true}],"e":[{"i":[[2.354,-5.536],[-1.08,-3.642],[-10.4,-18.741],[-0.008,2.143],[7.525,2.066],[0.386,0.847],[2.55,0.62]],"o":[[-1.514,3.559],[2.627,8.841],[-1.75,-5.549],[-4.045,0.889],[-8.797,-2.415],[-0.844,-1.846],[-4.134,0.346]],"v":[[-24.551,-20.684],[-24.479,-9.865],[9.958,29.026],[33.529,-4.995],[8.487,-12.851],[-10.835,-16.004],[-14.424,-29.026]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[2.354,-5.536],[-1.08,-3.642],[-10.4,-18.741],[-0.008,2.143],[7.525,2.066],[0.386,0.847],[2.55,0.62]],"o":[[-1.514,3.559],[2.627,8.841],[-1.75,-5.549],[-4.045,0.889],[-8.797,-2.415],[-0.844,-1.846],[-4.134,0.346]],"v":[[-24.551,-20.684],[-24.479,-9.865],[9.958,29.026],[33.529,-4.995],[8.487,-12.851],[-10.835,-16.004],[-14.424,-29.026]],"c":true}],"e":[{"i":[[-2.873,-10.082],[-1.08,-3.642],[-27.836,-10.69],[-0.008,2.143],[7.525,2.066],[0.88,0.302],[2.55,0.62]],"o":[[1.06,3.72],[2.627,8.841],[-1.75,-5.549],[-4.045,0.889],[-8.797,-2.415],[-5.212,-1.789],[1.105,-8.394]],"v":[[-30.277,-15.063],[-24.157,-9.482],[9.958,29.026],[38.112,-0.636],[3.547,-8.438],[-10.835,-16.004],[-22.437,-22.629]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[{"i":[[-2.873,-10.082],[-1.08,-3.642],[-27.836,-10.69],[-0.008,2.143],[7.525,2.066],[0.88,0.302],[2.55,0.62]],"o":[[1.06,3.72],[2.627,8.841],[-1.75,-5.549],[-4.045,0.889],[-8.797,-2.415],[-5.212,-1.789],[1.105,-8.394]],"v":[[-30.277,-15.063],[-24.157,-9.482],[9.958,29.026],[38.112,-0.636],[3.547,-8.438],[-10.835,-16.004],[-22.437,-22.629]],"c":true}],"e":[{"i":[[2.354,-5.536],[-1.08,-3.642],[-22.462,-9.92],[-0.008,2.143],[8.241,2.434],[0.346,0.758],[2.55,0.62]],"o":[[-1.514,3.559],[2.627,8.841],[-1.75,-5.549],[-4.541,0.998],[-7.681,-2.268],[-0.844,-1.846],[-4.134,0.346]],"v":[[-24.551,-20.684],[-24.479,-9.865],[9.958,29.026],[26.064,-6.89],[3.748,-10.381],[-10.835,-16.004],[-14.424,-29.026]],"c":true}]},{"t":47.0000019143492}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0.152,0.512],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.951700389385,0.511714220047,0.503170788288,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[26.602,29.879],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"shadow","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[145,183,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[109.014,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[64.705,22.852],"e":[30,10.595]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":17,"s":[30,10.595],"e":[64.705,22.852]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":22,"s":[64.705,22.852],"e":[30,10.595]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":42,"s":[30,10.595],"e":[64.705,22.852]},{"t":46.0000018736184}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.532000601292,0.344732820988,0.344732820988,1],"e":[0.361688107252,0.33187431097,0.33187431097,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[0.361688107252,0.33187431097,0.33187431097,1],"e":[0.532000601292,0.344732820988,0.344732820988,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0.532000601292,0.344732820988,0.344732820988,1],"e":[0.361688107252,0.33187431097,0.33187431097,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[0.361688107252,0.33187431097,0.33187431097,1],"e":[0.532000601292,0.344732820988,0.344732820988,1]},{"t":46.0000018736184}],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[40],"e":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[20],"e":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[40],"e":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[20],"e":[40]},{"t":46.0000018736184}],"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-13.212,107.812],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[92.827,156.063],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":167.000006802049,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/anubis.json b/external/rlottie/example/resource/anubis.json new file mode 100644 index 000000000..232779db5 --- /dev/null +++ b/external/rlottie/example/resource/anubis.json @@ -0,0 +1 @@ +{"v":"5.1.8","fr":60,"ip":3,"op":140,"w":500,"h":500,"nm":"ANUB","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"a","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-3.113,"ix":10},"p":{"a":0,"k":[327.214,315.758,0],"ix":2},"a":{"a":0,"k":[-17,77,0],"ix":1},"s":{"a":0,"k":[-100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-20.2,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-13.001,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-3.399,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2.999,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":13.4,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20.599,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32.599,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42.2,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":49.999,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":58.999,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":66.2,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":78.2,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":87.8,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":94.999,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":104.599,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":111.8,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":123.8,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":133.999,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"t":138.99921875}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149019607843,0.133333333333,0.109803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-22,82],"ix":2},"a":{"a":0,"k":[-22,82],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-3,"op":289,"st":-20.2,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"b","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-6,"ix":10},"p":{"a":0,"k":[221.537,318.968,0],"ix":2},"a":{"a":0,"k":[-17,77,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-2.4,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":14.401,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21.6,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31.2,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":43.2,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.401,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":67.2,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":76.799,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":88.799,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":96,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":105.6,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":112.799,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":122.401,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":132,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"t":139.000390625}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149019607843,0.133333333333,0.109803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-22,82],"ix":2},"a":{"a":0,"k":[-22,82],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":288,"st":-2.4,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"c","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-3.113,"ix":10},"p":{"a":0,"k":[361.652,319.398,0],"ix":2},"a":{"a":0,"k":[-17,77,0],"ix":1},"s":{"a":0,"k":[-100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-14.4,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-7.201,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-0.002,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-3.791,-1.166],[-4.083,-10.915]],"o":[[3.791,1.166],[3.33,8.322]],"v":[[-17,75],[5.704,158.168]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[{"i":[[-3.791,-1.166],[-4.083,-10.915]],"o":[[3.791,1.166],[3.33,8.322]],"v":[[-17,75],[5.704,158.168]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":11.998,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21.6,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":28.799,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":38.399,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45.6,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":57.6,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":67.2,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74.399,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":83.998,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91.2,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":103.2,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":112.799,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":119.998,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":130,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[-3.791,-1.166],[-4.083,-10.915]],"o":[[3.791,1.166],[3.33,8.322]],"v":[[-17,75],[5.704,158.168]],"c":false}]},{"t":139.000390625}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149019607843,0.133333333333,0.109803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-22,82],"ix":2},"a":{"a":0,"k":[-22,82],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-20,"op":279,"st":-14.4,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"d","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-6,"ix":10},"p":{"a":0,"k":[254.302,326.574,0],"ix":2},"a":{"a":0,"k":[-17,77,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-28.8,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-21.601,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-11.999,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-4.8,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2.8,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16.8,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":24.001,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":33.6,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":40.8,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.399,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":62.399,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69.6,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":79.2,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":86.399,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":96.001,"s":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}],"e":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":106.001,"s":[{"i":[[-6.5,-2],[-4.5,-15.5]],"o":[[6.5,2],[3.209,11.054]],"v":[[-17,75],[18,154]],"c":false}],"e":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":113.2,"s":[{"i":[[-4.161,-1.28],[50.642,-32.142]],"o":[[4.161,1.28],[-33.86,21.491]],"v":[[-17,75],[1.858,129.142]],"c":false}],"e":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":121.001,"s":[{"i":[[0,0],[29.75,-14.5]],"o":[[0,0],[-29.75,14.5]],"v":[[-17,75],[-56.25,145.5]],"c":false}],"e":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":130.001,"s":[{"i":[[0,0],[-7.5,-34]],"o":[[0,0],[7.5,34]],"v":[[-17,75],[-61,161]],"c":false}],"e":[{"i":[[0,0],[-3.5,-4.5]],"o":[[0,0],[3.5,4.5]],"v":[[-17,75],[-11.5,164]],"c":false}]},{"t":139.00078125}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149019607843,0.133333333333,0.109803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-22,82],"ix":2},"a":{"a":0,"k":[-22,82],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":266,"st":-28.8,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"b2","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.75],"y":[0]},"n":["0p25_1_0p75_0"],"t":0,"s":[-81],"e":[-97]},{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.75],"y":[0]},"n":["0p25_1_0p75_0"],"t":67.199,"s":[-97],"e":[-81]},{"t":136.80078125}],"ix":10},"p":{"a":0,"k":[-13.573,-61.514,0],"ix":2},"a":{"a":0,"k":[-6,48,0],"ix":1},"s":{"a":0,"k":[73.171,73.171,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[82,82],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-6,48],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":141.6,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"b1","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-87,"ix":10},"p":{"a":0,"k":[-27.177,43.546,0],"ix":2},"a":{"a":0,"k":[-6,48,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[82,82],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-6,48],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":141.6,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"b","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":83,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[355.857,302.207,0],"e":[355.857,308.207,0],"to":[0,1,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16.801,"s":[355.857,308.207,0],"e":[355.857,302.207,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":33.6,"s":[355.857,302.207,0],"e":[355.857,308.207,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.4,"s":[355.857,308.207,0],"e":[355.857,302.207,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":67.199,"s":[355.857,302.207,0],"e":[355.857,308.207,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":84,"s":[355.857,308.207,0],"e":[355.857,302.207,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":100.801,"s":[355.857,302.207,0],"e":[355.857,308.207,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":120,"s":[355.857,308.207,0],"e":[355.857,302.207,0],"to":[0,0,0],"ti":[0,1,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":139,"s":[355.857,302.207,0],"e":[355.857,302.207,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":180,"s":[355.857,302.207,0],"e":[355.857,308.207,0],"to":[0,1,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":196.801,"s":[355.857,308.207,0],"e":[355.857,302.207,0],"to":[0,0,0],"ti":[0,1,0]},{"t":216}],"ix":2},"a":{"a":0,"k":[-5.706,-66.449,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.021,11.991],[1.75,-16.75],[3.593,-23.13],[3.492,-8.369],[0,23.5]],"o":[[-6.242,-14.906],[-1.081,10.349],[-2.222,14.305],[-14.312,34.299],[0,-55.082]],"v":[[14.5,-63],[-40.44,-62.693],[-44.148,-3.184],[-56.34,28.612],[12.218,41.438]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":141.6,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"ne","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[0],"e":[20]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":67.199,"s":[20],"e":[0]},{"t":134.400390625}],"ix":10},"p":{"a":0,"k":[-12,50,0],"ix":2},"a":{"a":0,"k":[-12,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.59,12.987],[1.75,-16.75],[-1.434,-15.164],[4.955,22.972]],"o":[[-1,-22],[-1.75,16.75],[3.5,37],[-11,-51]],"v":[[3.5,-51.5],[-31.25,-48.25],[-45,45],[12,36.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":141.6,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"ta","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[7],"e":[75]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22.801,"s":[75],"e":[7]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":45.6,"s":[7],"e":[75]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":68.4,"s":[75],"e":[7]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":91.199,"s":[7],"e":[75]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":114,"s":[75],"e":[7]},{"t":136.80078125}],"ix":10},"p":{"a":0,"k":[15.301,27.13,0],"ix":2},"a":{"a":0,"k":[21.895,-104.814,0],"ix":1},"s":{"a":0,"k":[136.667,136.667,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.827,-5.636],[1.374,-48.171],[-2.647,2.438]],"o":[[33.061,38.596],[-0.068,2.375],[34.628,-76.569]],"v":[[-18.205,-190.23],[15.659,-106.249],[25.25,-102.254]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":141.6,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"el","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[-17],"e":[41]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":62.4,"s":[41],"e":[-17]},{"t":129.599609375}],"ix":10},"p":{"a":0,"k":[-90.831,16.442,0],"ix":2},"a":{"a":0,"k":[16.5,-109.52,0],"ix":1},"s":{"a":0,"k":[140.26,140.26,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.618,-7.395],[-2.323,-2.379],[-2.647,2.438]],"o":[[6.75,80.75],[1.66,1.7],[38.998,-68.667]],"v":[[-1.601,-210.907],[11.871,-104.272],[20.531,-99.66]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":141.6,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"hea","parent":8,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[-15],"e":[8]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":67.199,"s":[8],"e":[-15]},{"t":134.400390625}],"ix":10},"p":{"a":0,"k":[-7.5,-46.5,0],"ix":2},"a":{"a":0,"k":[-110.468,94.987,0],"ix":1},"s":{"a":0,"k":[71.296,71.296,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.727,19.286],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-175.409,43.844],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[59.914,100],"ix":3},"r":{"a":0,"k":-168.452,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 5","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.727,19.286],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-122.039,45.221],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 3","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-10.966,2.431],[-1.181,-4.133],[1.601,-0.057],[-0.599,3.554]],"o":[[1.746,-0.387],[1.277,4.469],[-14.816,0.529],[0.406,-2.406]],"v":[[-8.421,-5.275],[2.908,3.703],[-0.161,10.282],[-18.683,3.926]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.933333333333,0.874509803922,0.650980392157,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"eye1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-181.299,40.461],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":38.4,"s":[100,92.381],"e":[100,-0.256]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":55.199,"s":[100,-0.256],"e":[100,-0.256]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":62.4,"s":[100,-0.256],"e":[100,92.381]},{"t":79.19921875}],"ix":3},"r":{"a":0,"k":-128.667,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 6","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[40.675,16.831],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.933333333333,0.874509803922,0.650980392157,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"eye2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-123.091,45.195],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":38.4,"s":[100,92.381],"e":[100,-0.256]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":55.199,"s":[100,-0.256],"e":[100,-0.256]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":62.4,"s":[100,-0.256],"e":[100,92.381]},{"t":79.19921875}],"ix":3},"r":{"a":0,"k":-19.654,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[10.344,0.175],[-115.817,6.255]],"o":[[0,0],[-7.047,-0.119],[34.894,-1.884]],"v":[[-167.279,58.669],[-254.234,57.818],[-149.783,98.993]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-162,72.234],"ix":2},"a":{"a":0,"k":[-164.104,75.74],"ix":1},"s":{"a":0,"k":[100.434,93.355],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[108,108],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-128,48],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":141.6,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"er","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":7.199,"s":[-17],"e":[41]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":67.199,"s":[41],"e":[-17]},{"t":134.400390625}],"ix":10},"p":{"a":0,"k":[-151.699,7.848,0],"ix":2},"a":{"a":0,"k":[16.5,-109.52,0],"ix":1},"s":{"a":0,"k":[131.332,131.332,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.618,-7.395],[-2.323,-2.379],[-2.647,2.438]],"o":[[6.75,80.75],[1.66,1.7],[26.148,-64.813]],"v":[[-1.601,-210.907],[9.521,-107.006],[20.155,-104.319]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.132484795065,0.111034221275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":141.6,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/ao.json b/external/rlottie/example/resource/ao.json new file mode 100644 index 000000000..9f78a33ca --- /dev/null +++ b/external/rlottie/example/resource/ao.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":60,"ip":0,"op":60,"w":500,"h":500,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-89.47,0],[0,-89.47],[89.47,0],[0,89.47]],"o":[[89.47,0],[0,89.47],[-89.47,0],[0,-89.47]],"v":[[0,-162],[162,0],[0,162],[-162,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.562,"y":0.562},"o":{"x":0.167,"y":0.167},"n":"0p562_0p562_0p167_0p167","t":8,"s":[250,88,0],"e":[412,250,0],"to":[89.4701232910156,0,0],"ti":[0,-89.4701232910156,0]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.311,"y":0.311},"n":"0p656_0p656_0p311_0p311","t":38,"s":[412,250,0],"e":[250,412,0],"to":[0,89.4701232910156,0],"ti":[89.4701232910156,0,0]},{"i":{"x":0.689,"y":0.689},"o":{"x":0.343,"y":0.343},"n":"0p689_0p689_0p343_0p343","t":68,"s":[250,412,0],"e":[88,250,0],"to":[-89.4701232910156,0,0],"ti":[0,89.4701232910156,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.437,"y":0.437},"n":"0p833_0p833_0p437_0p437","t":98,"s":[88,250,0],"e":[250,88,0],"to":[0,-89.4701232910156,0],"ti":[-89.4701232910156,0,0]},{"t":128}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":1,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":60,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/balloons_with_string.json b/external/rlottie/example/resource/balloons_with_string.json new file mode 100644 index 000000000..49e712183 --- /dev/null +++ b/external/rlottie/example/resource/balloons_with_string.json @@ -0,0 +1 @@ +{"v":"5.1.1","fr":60,"ip":0,"op":600,"w":1440,"h":2560,"nm":"Balloon Animation","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"pinkBalloon ","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.566,"y":0.555},"o":{"x":0.18,"y":0.163},"n":"0p566_0p555_0p18_0p163","t":52,"s":[856,3484.5,0],"e":[863.025,2076.672,0],"to":[1.26471793651581,-253.457336425781,0],"ti":[-3.05289053916931,611.818237304688,0]},{"i":{"x":0.841,"y":0.859},"o":{"x":0.385,"y":0.391},"n":"0p841_0p859_0p385_0p391","t":157.5,"s":[863.025,2076.672,0],"e":[875.959,-515.333,0],"to":[4.97676658630371,-997.374938964844,0],"ti":[-2.06172013282776,413.181518554688,0]},{"t":350}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0.465349324544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"greenBalloon 4","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.829},"o":{"x":0.167,"y":0.173},"n":"0p833_0p829_0p167_0p173","t":52,"s":[56,3300.5,0],"e":[315.448,-162.334,0],"to":[43.2412719726562,-577.138977050781,0],"ti":[-43.2412719726562,577.138977050781,0]},{"t":350}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0.528860234279,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"greenBalloon 3","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.851},"o":{"x":0.167,"y":0.16},"n":"0p833_0p851_0p167_0p16","t":148,"s":[1240,2924.5,0],"e":[1275.959,-478.276,0],"to":[5.99310493469238,-567.12939453125,0],"ti":[-5.99310493469238,567.12939453125,0]},{"t":402}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0.528860234279,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"greenBalloon 2","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":0,"s":[198,2837.667,0],"e":[762,-368.5,0],"to":[94,-534.361145019531,0],"ti":[-94,534.361145019531,0]},{"t":271}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0.528860234279,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"blueBalloon","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.83},"o":{"x":0.167,"y":0.198},"n":"0p833_0p83_0p167_0p198","t":23,"s":[1235.406,3127.833,0],"e":[761.634,-588.86,0],"to":[-78.9620056152344,-619.448791503906,0],"ti":[78.9620056152344,619.448791503906,0]},{"t":344}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.46011020436,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"yellowBalloon","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.856},"o":{"x":0.167,"y":0.167},"n":"0p833_0p856_0p167_0p167","t":0,"s":[1235.406,3127.833,0],"e":[1211.959,-627.333,0],"to":[-3.90793800354004,-625.861022949219,0],"ti":[3.90793800354004,625.861022949219,0]},{"t":271}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.987591911765,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"purpleBalloon","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.845},"o":{"x":0.167,"y":0.167},"n":"0p833_0p845_0p167_0p167","t":0,"s":[776,3020.5,0],"e":[539.959,-454.276,0],"to":[-39.3402290344238,-579.12939453125,0],"ti":[39.3402290344238,579.12939453125,0]},{"t":271}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.462959289551,0,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"blueBallloon","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.863},"o":{"x":0.167,"y":0.134},"n":"0p833_0p863_0p167_0p134","t":106,"s":[512,2724.5,0],"e":[1162,-464.5,0],"to":[108.333335876465,-531.5,0],"ti":[-108.333335876465,531.5,0]},{"t":330}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.721047674441,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"blueBalloon","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.869},"o":{"x":0.167,"y":0.128},"n":"0p833_0p869_0p167_0p128","t":191,"s":[1232,2996.5,0],"e":[831.959,-273.776,0],"to":[-60.6597709655762,-578.37939453125,0],"ti":[66.6735610961914,545.046020507812,0]},{"t":408}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.497150914809,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"redBallloon","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.885},"o":{"x":0.167,"y":0.112},"n":"0p833_0p885_0p167_0p112","t":191,"s":[848,3476.5,0],"e":[604.041,-273.776,0],"to":[-60.6597709655762,-578.37939453125,0],"ti":[40.6597709655762,625.046020507812,0]},{"t":408}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0.392279561361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"yellowBallloon 3","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.877},"o":{"x":0.167,"y":0.121},"n":"0p833_0p877_0p167_0p121","t":191,"s":[272,3204.5,0],"e":[312.041,-293.667,0],"to":[6.67356204986572,-583.02783203125,0],"ti":[-6.67356204986572,583.02783203125,0]},{"t":408}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.949172794118,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"yellowBallloon 2","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.841},"o":{"x":0.167,"y":0.156},"n":"0p833_0p841_0p167_0p156","t":121,"s":[512,2924.5,0],"e":[539.959,-454.276,0],"to":[4.65977144241333,-563.12939453125,0],"ti":[-4.65977144241333,563.12939453125,0]},{"t":391}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.949172794118,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"yellowBallloon","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.863},"o":{"x":0.167,"y":0.134},"n":"0p833_0p863_0p167_0p134","t":106,"s":[1376,2804.5,0],"e":[312.041,-293.667,0],"to":[-177.326431274414,-516.361145019531,0],"ti":[177.326431274414,516.361145019531,0]},{"t":331}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.949172794118,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"redBalloonNew","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.847},"o":{"x":0.167,"y":0.167},"n":"0p833_0p847_0p167_0p167","t":0,"s":[1016,2740.5,0],"e":[1098,-774.166,0],"to":[13.6666669845581,-585.777709960938,0],"ti":[-13.6666669845581,585.777709960938,0]},{"t":271}],"ix":2},"a":{"a":0,"k":[400.438,352.479,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0.404779561361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.437,338.703],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"greenBalloonNew","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[198,2984.5,0],"e":[718,-260,0],"to":[86.6666641235352,-540.75,0],"ti":[-86.6666641235352,540.75,0]},{"t":360}],"ix":2},"a":{"a":0,"k":[-100.906,408.167,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[404.62,501.104],[403.62,497.604],[403.62,620.104],[405.62,622.104],[402.076,560.068]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-503,38],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100.015,103.448],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"String","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":2,"ty":"el","s":{"a":0,"k":[177.031,247.812],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.025,120.696],[12.355,149.564],[2.966,147.251],[-7.063,148.633],[-4.733,120.696]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0.903125,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-100.906,394.391],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.744,107.385],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":80,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/bell.json b/external/rlottie/example/resource/bell.json new file mode 100644 index 000000000..c70f06bb7 --- /dev/null +++ b/external/rlottie/example/resource/bell.json @@ -0,0 +1 @@ +{"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":0,"ty":1,"nm":"White Solid 1","td":1,"ks":{"o":{"k":100},"r":{"k":22},"p":{"k":[288.003,547.449,0]},"a":{"k":[25,25,0]},"s":{"k":[412,168,100]}},"ao":0,"sw":50,"sh":50,"sc":"#ffffff","ip":0,"op":50,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","tt":2,"ks":{"o":{"k":100},"r":{"k":22},"p":{"k":[273.145,580.253,0]},"a":{"k":[-0.776,155.616,0]},"s":{"k":[110.945,113.273,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[59.648,59.648]},"p":{"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","fillEnabled":true,"c":{"k":[0,0,0,1]},"o":{"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-1,155.5],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":50,"st":0,"bm":0,"sr":1}]}],"layers":[{"ddd":0,"ind":0,"ty":3,"nm":"Null 1","ks":{"o":{"k":0},"r":{"k":[{"i":{"x":[0.833],"y":[1.093]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1p093_0p167_0p167"],"t":0,"s":[0],"e":[-22]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.037]},"n":["0p833_1_0p167_0p037"],"t":6.931,"s":[-22],"e":[22]},{"i":{"x":[0.833],"y":[0.966]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p966_0p167_0"],"t":12.435,"s":[22],"e":[-22]},{"i":{"x":[0.833],"y":[0.857]},"o":{"x":[0.167],"y":[-0.098]},"n":["0p833_0p857_0p167_-0p098"],"t":18,"s":[-22],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.295]},"n":["0p833_1_0p167_0p295"],"t":26,"s":[0],"e":[4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p667_1_0p167_0"],"t":29,"s":[4],"e":[0]},{"t":33}]},"p":{"k":[221.5,77,0]},"a":{"k":[0,0,0]},"s":{"k":[344,344,100]}},"ao":0,"ip":0,"op":50,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":1,"nm":"Black Solid 1","parent":0,"ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[0,30.959,0]},"a":{"k":[221.5,183.5,0]},"s":{"k":[29.07,29.07,100]}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"k":{"i":[[3.376,4.804],[0,15.358],[0,0],[40.857,4.809],[0,6.956],[9.556,0],[0,-9.556],[-4.437,-3.072],[-0.007,-0.031],[0,-42.092],[0,0],[8.971,-12.559],[-5.461,0],[0,0]],"o":[[-8.874,-12.628],[0,0],[0,-41.969],[4.427,-3.689],[0,-9.556],[-9.556,0],[0,5.802],[0,0],[-40.638,4.737],[0,0],[0,15.358],[-3.413,4.778],[0,0],[5.461,0]],"v":[[318.087,264.087],[303.411,220.401],[303.411,172.619],[231.019,91.367],[238.565,77.056],[221.5,59.991],[204.435,77.056],[211.944,91.049],[211.971,91.152],[139.589,172.619],[139.589,220.401],[124.913,264.087],[130.374,275.009],[312.626,275.009]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"Mask 1"}],"ef":[{"ty":21,"nm":"Fill","mn":"ADBE Fill","ix":1,"ef":[{"ty":3,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"k":0}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"k":0}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"k":[1,1,1,1]}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"k":0}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"k":0}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"k":0}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"k":1}}]}],"sw":443,"sh":367,"sc":"#000000","ip":0,"op":50,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 1","parent":0,"refId":"comp_0","ks":{"o":{"k":100},"r":{"k":-22},"p":{"k":[{"i":{"x":0.833,"y":0.814},"o":{"x":0.167,"y":0.167},"n":"0p833_0p814_0p167_0p167","t":2,"s":[4.737,11.725,0],"e":[19.737,11.725,0],"to":[2.5,0,0],"ti":[2.83333325386047,0,0]},{"i":{"x":0.833,"y":0.844},"o":{"x":0.167,"y":0.157},"n":"0p833_0p844_0p167_0p157","t":4.572,"s":[19.737,11.725,0],"e":[-12.263,11.725,0],"to":[-2.83333325386047,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.88},"o":{"x":0.167,"y":0.177},"n":"0p833_0p88_0p167_0p177","t":9,"s":[-12.263,11.725,0],"e":[19.737,11.725,0],"to":[0,0,0],"ti":[-2.66666674613953,0,0]},{"i":{"x":0.833,"y":0.886},"o":{"x":0.167,"y":0.22},"n":"0p833_0p886_0p167_0p22","t":14.008,"s":[19.737,11.725,0],"e":[-8.129,11.725,0],"to":[0.7367005944252,0,0],"ti":[4.95352220535278,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.284},"n":"0p833_0p833_0p167_0p284","t":22,"s":[-8.129,11.725,0],"e":[3.737,11.725,0],"to":[-2.79587697982788,0,0],"ti":[0.0821717903018,0,0]},{"t":31}]},"a":{"k":[350,437.5,0]},"s":{"k":[29.07,29.07,100]}},"ao":0,"ef":[{"ty":21,"nm":"Fill","mn":"ADBE Fill","ix":1,"ef":[{"ty":3,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"k":0}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"k":0}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"k":[1,1,1,1]}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"k":0}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"k":0}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"k":0}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"k":1}}]}],"w":700,"h":875,"ip":0,"op":50,"st":0,"bm":0,"sr":1}],"v":"4.5.0","ddd":0,"ip":0,"op":42,"fr":25,"w":443,"h":367} \ No newline at end of file diff --git a/external/rlottie/example/resource/birth_stone_logo.json b/external/rlottie/example/resource/birth_stone_logo.json new file mode 100644 index 000000000..f52bcc2a7 --- /dev/null +++ b/external/rlottie/example/resource/birth_stone_logo.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":29.9700012207031,"ip":0,"op":120.0000048877,"w":150,"h":120,"nm":"logo 2","ddd":1,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[98,45.5,0],"ix":2},"a":{"a":0,"k":[-23,-14.5,0],"ix":1},"s":{"a":0,"k":[-100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[19.25,-19.25],[0,0],[0,0]],"o":[[0,0],[0,0],[-20.25,20.25],[0,0],[0,0]],"v":[[19.5,-14],[-12.5,-45.25],[-51.25,-42.25],[-55.75,-5.25],[-23,28.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":8,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.584,0.894,0.929,0.5,0.692,0.733,0.965,1,0.8,0.573,1],"ix":8}},"s":{"a":0,"k":[-64.303,-9.492],"ix":4},"e":{"a":0,"k":[23.721,-13.33],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":30,"s":[100],"e":[0]},{"t":60.0000024438501}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":120.0000048877,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75,60,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[22.75,-19.25],[0,0],[0,0]],"o":[[0,0],[0,0],[-19.75,19.75],[0,0],[0,0]],"v":[[19.5,-14],[-12.5,-45.25],[-51.25,-42.25],[-55.75,-5.25],[-23,28.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":8,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,1,0.788,0.6,0.5,0.902,0.682,0.798,1,0.804,0.576,0.996],"ix":8}},"s":{"a":0,"k":[-64.303,-9.492],"ix":4},"e":{"a":0,"k":[23.721,-13.33],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[100],"e":[0]},{"t":30.0000012219251}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":120.0000048877,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75.5,103,0],"ix":2},"a":{"a":0,"k":[0,42.5,0],"ix":1},"s":{"a":0,"k":[91.956,91.956,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18.648,18.648],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.8,0.572549019608,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,42.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":60,"s":[100],"e":[0]},{"t":89.0000036250443}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":120.0000048877,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/bounching_ball.json b/external/rlottie/example/resource/bounching_ball.json new file mode 100644 index 000000000..377929513 --- /dev/null +++ b/external/rlottie/example/resource/bounching_ball.json @@ -0,0 +1 @@ +{"v":"4.5.7","fr":30,"ip":0,"op":30,"w":800,"h":600,"ddd":0,"assets":[{"id":"comp_1","layers":[{"ddd":0,"ind":0,"ty":4,"nm":"Shape Layer 4","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"s":true,"x":{"a":0,"k":960},"y":{"a":1,"k":[{"i":{"x":[0.96],"y":[0.317]},"o":{"x":[0.453],"y":[0]},"n":["0p96_0p317_0p453_0"],"t":0,"s":[372.934],"e":[910.934]},{"i":{"x":[0.491],"y":[0.491]},"o":{"x":[0.405],"y":[0.405]},"n":["0p491_0p491_0p405_0p405"],"t":14,"s":[910.934],"e":[910.934]},{"i":{"x":[0.328],"y":[1]},"o":{"x":[0.02],"y":[0.674]},"n":["0p328_1_0p02_0p674"],"t":16,"s":[910.934],"e":[372.934]},{"t":30}]}},"a":{"a":0,"k":[-55.922,214.156,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[43,43,100],"e":[36.8,54.9,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":14,"s":[36.8,54.9,100],"e":[56.6,27.5,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":15,"s":[56.6,27.5,100],"e":[56.6,27.5,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":16,"s":[56.6,27.5,100],"e":[34.58,45.3,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":18,"s":[34.58,45.3,100],"e":[47.692,41.258,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":25,"s":[47.692,41.258,100],"e":[43,43,100]},{"t":30}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[460.156,460.156]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.2,0.77,0.61,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.95,0.31,0.56,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-55.922,-15.922],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":150,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","parent":2,"tt":1,"ks":{"o":{"a":0,"k":12},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[23.697,-140.59,0],"e":[59.033,-256.954,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[59.033,-256.954,0],"e":[23.697,-140.59,0],"to":[0,0,0],"ti":[0,0,0]},{"t":30}]},"a":{"a":0,"k":[7.73,-318.27,0]},"s":{"a":0,"k":[168.239,178.473,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[36.539,36.539]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.2,0.77,0.61,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[7.73,-318.27],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":150,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"s":true,"x":{"a":0,"k":960},"y":{"a":1,"k":[{"i":{"x":[0.96],"y":[0.317]},"o":{"x":[0.453],"y":[0]},"n":["0p96_0p317_0p453_0"],"t":0,"s":[372.934],"e":[910.934]},{"i":{"x":[0.491],"y":[0.491]},"o":{"x":[0.405],"y":[0.405]},"n":["0p491_0p491_0p405_0p405"],"t":14,"s":[910.934],"e":[910.934]},{"i":{"x":[0.328],"y":[1]},"o":{"x":[0.02],"y":[0.674]},"n":["0p328_1_0p02_0p674"],"t":16,"s":[910.934],"e":[372.934]},{"t":30}]}},"a":{"a":0,"k":[-55.922,214.156,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[43,43,100],"e":[36.8,54.9,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":14,"s":[36.8,54.9,100],"e":[56.6,27.5,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":15,"s":[56.6,27.5,100],"e":[56.6,27.5,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":16,"s":[56.6,27.5,100],"e":[34.58,45.3,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":18,"s":[34.58,45.3,100],"e":[47.692,41.258,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":25,"s":[47.692,41.258,100],"e":[43,43,100]},{"t":30}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[460.156,460.156]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.2,0.77,0.61,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.95,0.31,0.56,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-55.922,-15.922],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":150,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":45},"r":{"a":0,"k":0},"p":{"a":0,"k":[958,908,0]},"a":{"a":0,"k":[-2,400,0]},"s":{"a":1,"k":[{"i":{"x":[0.893,0.893,1],"y":[0.5,-0.195,1]},"o":{"x":[0.44,0.44,0],"y":[0,0,0]},"n":["0p893_0p5_0p44_0","0p893_-0p195_0p44_0","1_1_0_0"],"t":0,"s":[117.1,83.8,100],"e":[39.9,51.5,100]},{"i":{"x":[0.539,0.539,1],"y":[1,1,1]},"o":{"x":[0.175,0.175,0],"y":[0.542,1.294,0]},"n":["0p539_1_0p175_0p542","0p539_1_0p175_1p294","1_1_0_0"],"t":16,"s":[39.9,51.5,100],"e":[117.1,83.8,100]},{"t":30}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[467.797,27.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.2,0.77,0.61,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.18,0.62,0.5,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-2,400],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[69.545,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":150,"st":0,"bm":0,"sr":1}]}],"layers":[{"ddd":0,"ind":0,"ty":0,"nm":"bouncing ball.1920x1080","cl":"1920x1080","refId":"comp_1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[960,540,0]},"s":{"a":0,"k":[55.556,55.556,100]}},"ao":0,"w":1920,"h":1080,"ip":0,"op":150,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/browser.json b/external/rlottie/example/resource/browser.json new file mode 100644 index 000000000..d7e10a9dd --- /dev/null +++ b/external/rlottie/example/resource/browser.json @@ -0,0 +1 @@ +{"v":"5.1.1","fr":25,"ip":0,"op":149,"w":256,"h":256,"nm":"Composição 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Camada de forma 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[68.5,23.75,0],"ix":2},"a":{"a":0,"k":[-92,-93.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.32,0.32,0.32],"y":[1.27,1.27,1]},"o":{"x":[0.17,0.17,0.17],"y":[0.89,0.89,0]},"n":["0p32_1p27_0p17_0p89","0p32_1p27_0p17_0p89","0p32_1_0p17_0"],"t":41,"s":[0,0,100],"e":[85,85,100]},{"t":47}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.5,14.5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Caminho da elipse 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.701960784314,0.701960784314,0.701960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-92,-93.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Elipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Camada de forma 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[48.5,23.75,0],"ix":2},"a":{"a":0,"k":[-92,-93.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.32,0.32,0.32],"y":[1.27,1.27,1]},"o":{"x":[0.17,0.17,0.17],"y":[0.89,0.89,0]},"n":["0p32_1p27_0p17_0p89","0p32_1p27_0p17_0p89","0p32_1_0p17_0"],"t":35,"s":[0,0,100],"e":[85,85,100]},{"t":41}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.5,14.5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Caminho da elipse 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.701960784314,0.701960784314,0.701960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-92,-93.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Elipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Camada de forma 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,23.75,0],"ix":2},"a":{"a":0,"k":[-92,-93.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.32,0.32,0.32],"y":[1.27,1.27,1]},"o":{"x":[0.17,0.17,0.17],"y":[0.89,0.89,0]},"n":["0p32_1p27_0p17_0p89","0p32_1p27_0p17_0p89","0p32_1_0p17_0"],"t":29,"s":[0,0,100],"e":[85,85,100]},{"t":35}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.5,14.5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Caminho da elipse 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.701960784314,0.701960784314,0.701960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-92,-93.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Elipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"line 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"n":"0p34_1_0p66_0","t":64,"s":[53.085,245,0],"e":[53.085,200,0],"to":[0,-7.5,0],"ti":[0,7.5,0]},{"t":80}],"ix":2},"a":{"a":0,"k":[-73.675,-37.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"n":["0p34_1_0p66_0","0p34_1_0p66_0","0p34_1_0p66_0"],"t":111,"s":[0,100,100],"e":[127.498,100,100]},{"t":126}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[116.75,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.650980392157,0.819607902976,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-14.375,-37.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"line 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"n":"0p34_1_0p66_0","t":64,"s":[109.085,217.25,0],"e":[109.085,172.25,0],"to":[0,-7.5,0],"ti":[0,7.5,0]},{"t":80}],"ix":2},"a":{"a":0,"k":[-117.575,-37.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"n":["0p34_1_0p66_0","0p34_1_0p66_0","0p34_1_0p66_0"],"t":99,"s":[0,88.542,100],"e":[50.947,88.542,100]},{"t":111}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[116.75,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":110,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.286274509804,0.721568627451,0.643137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-58.722,-37.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"line 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"n":"0p34_1_0p66_0","t":64,"s":[53.085,217.25,0],"e":[53.085,172.25,0],"to":[0,-7.5,0],"ti":[0,7.5,0]},{"t":80}],"ix":2},"a":{"a":0,"k":[-117.575,-37.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.9,0.9,0.9],"y":[0,0,0]},"n":["0p1_1_0p9_0","0p1_1_0p9_0","0p1_1_0p9_0"],"t":88,"s":[0,79.167,100],"e":[37.298,88.542,100]},{"t":103}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[116.75,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.89019613827,0.36862745098,0.325490196078,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-58.722,-37.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"line 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"n":"0p34_1_0p66_0","t":64,"s":[52.835,190.25,0],"e":[52.835,145.25,0],"to":[0,-7.5,0],"ti":[0,7.5,0]},{"t":80}],"ix":2},"a":{"a":0,"k":[-117.575,-37.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"n":["0p34_1_0p66_0","0p34_1_0p66_0","0p34_1_0p66_0"],"t":79,"s":[0,100,100],"e":[88.298,100,100]},{"t":94}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[116.75,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.286274509804,0.721568627451,0.643137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-58.722,-37.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"line 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"n":"0p34_1_0p66_0","t":64,"s":[123.585,162.75,0],"e":[123.585,117.75,0],"to":[0,-7.5,0],"ti":[0,7.5,0]},{"t":80}],"ix":2},"a":{"a":0,"k":[-117.575,-37.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"n":["0p34_1_0p66_0","0p34_1_0p66_0","0p34_1_0p66_0"],"t":62,"s":[0,100,100],"e":[67.298,100,100]},{"t":72}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[116.75,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.650980392157,0.819607902976,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-58.722,-37.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"line 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"n":"0p34_1_0p66_0","t":64,"s":[56.335,162.75,0],"e":[56.335,117.75,0],"to":[0,-7.5,0],"ti":[0,7.5,0]},{"t":80}],"ix":2},"a":{"a":0,"k":[-115.975,-37.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"n":["0p34_1_0p66_0","0p34_1_0p66_0","0p34_1_0p66_0"],"t":52,"s":[0,100,100],"e":[48.498,100,100]},{"t":65}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[116.75,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.89019613827,0.36862745098,0.325490196078,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-58.722,-37.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"line 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"n":"0p34_1_0p66_0","t":64,"s":[53.085,126.75,0],"e":[53.085,90.75,0],"to":[0,-6,0],"ti":[0,6,0]},{"t":80}],"ix":2},"a":{"a":0,"k":[-72.975,-37.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.34,0.34,0.34],"y":[1,1,1]},"o":{"x":[0.66,0.66,0.66],"y":[0,0,0]},"n":["0p34_1_0p66_0","0p34_1_0p66_0","0p34_1_0p66_0"],"t":40,"s":[0,100,100],"e":[105.498,100,100]},{"t":53}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[116.75,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.937254961799,0.937254961799,0.937254961799,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-14.375,-37.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"blue","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.088,"y":1},"n":"0p34_1_0p088_1","t":16,"s":[127.77,391.572,0],"e":[127.77,145.572,0],"to":[0,-41,0],"ti":[0,41,0]},{"t":35}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[80.876,70.93,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[250.5,245.5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.16862745098,0.254901960784,0.301960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.25,-3.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[107.86,108.079],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"index","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.088,"y":1},"n":"0p34_1_0p088_1","t":7,"s":[127.77,402.072,0],"e":[127.77,131.072,0],"to":[0,-45.1666679382324,0],"ti":[0,45.1666679382324,0]},{"t":26}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[92,94.51,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[250.5,245.5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.937254961799,0.937254961799,0.937254961799,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.25,-3.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[107.86,108.079],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":149,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/confetti.json b/external/rlottie/example/resource/confetti.json new file mode 100644 index 000000000..495035cb4 --- /dev/null +++ b/external/rlottie/example/resource/confetti.json @@ -0,0 +1 @@ +{"v":"4.12.0","fr":29.9700012207031,"ip":0,"op":59.0000024031193,"w":800,"h":800,"nm":"confettis2","ddd":0,"assets":[{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"p20","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":4,"s":[100],"e":[0]},{"t":43.0000017514259}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":4,"s":[400,400,0],"e":[71,152,0],"to":[1.83333337306976,-220.66667175293,0],"ti":[85.1666641235352,-23.3333339691162,0]},{"t":43.0000017514259}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.901960790157,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4.00000016292334,"op":364.000014826024,"st":4.00000016292334,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"p19","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":3,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":3,"s":[400,400,0],"e":[579,746,0],"to":[101.833335876465,91.3333358764648,0],"ti":[27.1666660308838,-153.33332824707,0]},{"t":42.0000017106951}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":3.00000012219251,"op":363.000014785293,"st":3.00000012219251,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"p18","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":2,"s":[100],"e":[0]},{"t":41.0000016699642}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":2,"s":[400,400,0],"e":[503,238,0],"to":[-84.1666641235352,-74.6666641235352,0],"ti":[-88.8333358764648,-45.3333320617676,0]},{"t":41.0000016699642}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.074509806931,0.737254917622,0.172549024224,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2.00000008146167,"op":362.000014744562,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"p17","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":1,"s":[100],"e":[0]},{"t":40.0000016292334}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":1,"s":[400,400,0],"e":[91,556,0],"to":[-82.1666641235352,-112.666664123535,0],"ti":[73.1666641235352,-199.33332824707,0]},{"t":40.0000016292334}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1.00000004073083,"op":361.000014703831,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"p16","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":0,"s":[100],"e":[0]},{"t":39.0000015885026}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":0,"s":[400,400,0],"e":[511,308,0],"to":[77.8333358764648,91.3333358764648,0],"ti":[51.1666679382324,60.6666679382324,0]},{"t":39.0000015885026}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.270588248968,0.529411792755,0.952941179276,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":360.000014663101,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"p15","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":1,"s":[100],"e":[0]},{"t":40.0000016292334}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":1,"s":[400,400,0],"e":[155,280,0],"to":[-30.1666660308838,-122.666664123535,0],"ti":[95.1666641235352,-53.3333320617676,0]},{"t":40.0000016292334}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.901960790157,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1.00000004073083,"op":361.000014703831,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"p14","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":2,"s":[100],"e":[0]},{"t":41.0000016699642}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":2,"s":[400,400,0],"e":[681,388.872,0],"to":[143.83332824707,49.3333320617676,0],"ti":[-58.8333320617676,48.6666679382324,0]},{"t":41.0000016699642}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2.00000008146167,"op":362.000014744562,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"p13","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":3,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":3,"s":[400,400,0],"e":[257,284,0],"to":[-24.1666660308838,-72.6666641235352,0],"ti":[75.1666641235352,-5.33333349227905,0]},{"t":42.0000017106951}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.074509806931,0.737254917622,0.172549024224,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":3.00000012219251,"op":363.000014785293,"st":3.00000012219251,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"p12","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":4,"s":[100],"e":[0]},{"t":43.0000017514259}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":4,"s":[400,400,0],"e":[301,474,0],"to":[-14.1666669845581,31.3333339691162,0],"ti":[65.1666641235352,-13.3333330154419,0]},{"t":43.0000017514259}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4.00000016292334,"op":364.000014826024,"st":4.00000016292334,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"p11","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":0,"s":[100],"e":[0]},{"t":39.0000015885026}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":0,"s":[400,400,0],"e":[499,570,0],"to":[-8.16666698455811,63.3333320617676,0],"ti":[-62.8333320617676,-29.3333339691162,0]},{"t":39.0000015885026}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.270588248968,0.529411792755,0.952941179276,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":360.000014663101,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"p10","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":1,"s":[100],"e":[0]},{"t":40.0000016292334}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":1,"s":[400,400,0],"e":[557,68,0],"to":[81.8333358764648,-104.666664123535,0],"ti":[-58.8333320617676,104.666664123535,0]},{"t":40.0000016292334}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.901960790157,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1.00000004073083,"op":361.000014703831,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"p9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":2,"s":[100],"e":[0]},{"t":41.0000016699642}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":2,"s":[400,400,0],"e":[715,138,0],"to":[151.83332824707,-46.6666679382324,0],"ti":[-26.8333339691162,72.6666641235352,0]},{"t":41.0000016699642}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2.00000008146167,"op":362.000014744562,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"p8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":3,"s":[100],"e":[0]},{"t":42.0000017106951}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":3,"s":[400,400,0],"e":[679,664,0],"to":[107.833335876465,89.3333358764648,0],"ti":[-92.8333358764648,-103.333335876465,0]},{"t":42.0000017106951}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.074509806931,0.737254917622,0.172549024224,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":3.00000012219251,"op":363.000014785293,"st":3.00000012219251,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"p7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":4,"s":[100],"e":[0]},{"t":43.0000017514259}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":4,"s":[400,400,0],"e":[97,686,0],"to":[-36.1666679382324,53.3333320617676,0],"ti":[75.1666641235352,-39.3333320617676,0]},{"t":43.0000017514259}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4.00000016292334,"op":364.000014826024,"st":4.00000016292334,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"p6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":5,"s":[100],"e":[0]},{"t":44.0000017921567}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":5,"s":[400,400,0],"e":[65,340,0],"to":[-148.16667175293,-132.66667175293,0],"ti":[61.1666679382324,-65.3333358764648,0]},{"t":44.0000017921567}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.270588248968,0.529411792755,0.952941179276,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5.00000020365417,"op":365.000014866755,"st":5.00000020365417,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"p5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":6,"s":[100],"e":[0]},{"t":45.0000018328876}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.004,"y":0.691},"o":{"x":0.014,"y":0},"n":"0p004_0p691_0p014_0","t":6,"s":[400,400,0],"e":[400,23.613,0],"to":[-55.3803939819336,-168.204071044922,0],"ti":[27.0301876068115,124.269813537598,0]},{"t":45.0000018328876}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.901960790157,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":6.00000024438501,"op":366.000014907486,"st":6.00000024438501,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"p4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":7,"s":[100],"e":[0]},{"t":46.0000018736184}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":7,"s":[400,400,0],"e":[303,660,0],"to":[109.833335876465,69.3333358764648,0],"ti":[97.1666641235352,0.66666668653488,0]},{"t":46.0000018736184}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7.00000028511585,"op":367.000014948216,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"p3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":8,"s":[100],"e":[0]},{"t":47.0000019143492}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":8,"s":[400,400,0],"e":[663,498,0],"to":[41.8333320617676,109.333335876465,0],"ti":[-71.8333358764648,39.6666679382324,0]},{"t":47.0000019143492}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.076272718608,0.735462605953,0.171031266451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":8.00000032584668,"op":368.000014988947,"st":8.00000032584668,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"p2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":9,"s":[100],"e":[0]},{"t":48.0000019550801}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":9,"s":[400,400,0],"e":[187,88,0],"to":[-0.16666667163372,-158.66667175293,0],"ti":[89.1666641235352,6.66666650772095,0]},{"t":48.0000019550801}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.271778345108,0.528400123119,0.952267169952,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9.00000036657752,"op":369.000015029678,"st":9.00000036657752,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"p1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[1],"y":[1]},"o":{"x":[0.01],"y":[0]},"n":["1_1_0p01_0"],"t":0,"s":[100],"e":[0]},{"t":39.0000015885026}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.01,"y":0},"n":"0_1_0p01_0","t":0,"s":[400,400,0],"e":[621,234,0],"to":[-0.16666667163372,-158.66667175293,0],"ti":[-92.8333358764648,-103.333335876465,0]},{"t":39.0000015885026}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.855,0],[0,-7.855],[-7.855,0],[0,7.855]],"o":[[-7.855,0],[0,7.855],[7.855,0],[0,-7.855]],"v":[[0,-14.223],[-14.223,0],[0,14.223],[14.223,0]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.903676450253,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[80,80],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":360.000014663101,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":42,"ix":10},"p":{"a":0,"k":[396,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[91.5,91.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":9.00000036657752,"op":369.000015029678,"st":9.00000036657752,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":267,"ix":10},"p":{"a":0,"k":[416,420,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[64.5,64.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":7.00000028511585,"op":367.000014948216,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":358,"ix":10},"p":{"a":0,"k":[436,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[64.5,64.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":5.00000020365417,"op":365.000014866755,"st":5.00000020365417,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":177,"ix":10},"p":{"a":0,"k":[416,380,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[64.5,64.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":3.00000012219251,"op":363.000014785293,"st":3.00000012219251,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":132,"ix":10},"p":{"a":0,"k":[416,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[91.5,91.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":1.00000004073083,"op":361.000014703831,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-90,"ix":10},"p":{"a":0,"k":[396,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[91.5,91.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":8.00000032584668,"op":368.000014988947,"st":8.00000032584668,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":135,"ix":10},"p":{"a":0,"k":[416,420,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[64.5,64.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":6.00000024438501,"op":366.000014907486,"st":6.00000024438501,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":226,"ix":10},"p":{"a":0,"k":[436,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[64.5,64.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":4.00000016292334,"op":364.000014826024,"st":4.00000016292334,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[416,380,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[64.5,64.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":2.00000008146167,"op":362.000014744562,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"confettis1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[416,400,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[91.5,91.5,100],"ix":6}},"ao":0,"w":800,"h":800,"ip":0,"op":360.000014663101,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/cooking.json b/external/rlottie/example/resource/cooking.json new file mode 100644 index 000000000..d14ac8f73 --- /dev/null +++ b/external/rlottie/example/resource/cooking.json @@ -0,0 +1 @@ +{"v":"5.1.20","fr":30,"ip":0,"op":90,"w":300,"h":300,"nm":"Layers-Panelinha","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"fum3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118,140,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[14.645,21.967],[0,0]],"o":[[0,0],[-10,-15],[0,0]],"v":[[103.5,-40.5],[102.5,-73],[105,-104]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.23137254902,0.647058823529,0.345098039216,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":52,"s":[0],"e":[100]},{"t":61}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":38,"s":[1],"e":[100]},{"t":48}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"fum2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[146.5,146.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[14.645,21.967],[0,0]],"o":[[0,0],[-10,-15],[0,0]],"v":[[103.5,-40.5],[102.5,-73],[105,-104]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.23137254902,0.647058823529,0.345098039216,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":48,"s":[0],"e":[100]},{"t":57}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":34,"s":[0],"e":[100]},{"t":44}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"fum1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[172.5,156,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[14.645,21.967],[0,0]],"o":[[0,0],[-10,-15],[0,0]],"v":[[103.5,-40.5],[102.5,-73],[105,-104]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.23137254902,0.647058823529,0.345098039216,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":44,"s":[0],"e":[100]},{"t":53}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":30,"s":[0],"e":[100]},{"t":40}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"tampa","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":21,"s":[3],"e":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p667_1_0p167_0"],"t":30,"s":[-1],"e":[-1]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":60,"s":[-1],"e":[3]},{"t":69}],"ix":10},"p":{"a":0,"k":[45.545,146.5,0],"ix":2},"a":{"a":0,"k":[6.582,51.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-10.057,-13.526],[-8.536,81.451],[234.078,78.965],[232.557,-16.012]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Máscara 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.181,-0.003]],"o":[[0,0]],"v":[[-0.22,-21.078]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[2.101,1.25],[4.773,0.893],[13.723,0.898],[6.051,0],[9.651,0],[0.205,3.94],[-2.76,0.691],[-1.947,1.145],[1.654,1.108],[3.862,0.587],[0,0],[3.533,-3.061],[0.933,-1.926],[-2.019,-0.218],[-0.671,0],[-2.685,0.154],[0,0],[4.667,-0.497],[21.998,-8.59],[4.733,-3.077],[1.514,-2.149],[0,0],[-62.874,3.606],[-0.255,0.592]],"o":[[-4.282,-2.547],[-13.548,-2.532],[-5.987,-0.393],[-9.334,0],[-0.192,-3.681],[3.294,-0.218],[2.102,-0.527],[-1.199,-1.786],[-2.849,-1.909],[0,0],[-5.411,0.808],[-1.487,1.289],[1.947,0.89],[0.659,0.072],[2.366,0],[0,0],[-4.912,0.467],[-23.337,2.485],[-5.247,2.049],[-2.046,1.33],[0,0],[62.874,-3.606],[0.254,-0.591],[-1.644,-2.017]],"v":[[105.32,8.989],[91.723,2.741],[50.79,-3.165],[32.749,-3.677],[4.32,-3.394],[3.742,-14.488],[12.777,-15.21],[18.647,-18.522],[14.986,-23.785],[4.674,-27.5],[-6.408,-27.5],[-20.437,-21.662],[-23.316,-15.976],[-17.462,-13.435],[-15.468,-13.334],[-7.956,-13.851],[-7.956,-2.777],[-22.213,-1.412],[-90.667,13.278],[-105.657,21.258],[-110.332,27.5],[-79.052,27.5],[109.569,16.681],[110.332,14.907]],"c":true},"ix":2},"nm":"Caminho 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Mesclar caminhos 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-255.545,289.5],[256.455,289.5],[256.455,-222.5],[-255.545,-222.5]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-255.545,-222.5],[256.455,-222.5],[256.455,289.5],[-255.545,289.5]],"c":true},"ix":2},"nm":"Caminho 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Mesclar caminhos 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"tr","p":{"a":0,"k":[110.582,27.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":4,"s":[100],"e":[0]},{"t":14}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":-3,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.23137254902,0.647058823529,0.345098039216,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"panela 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[0],"e":[100]},{"t":9}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[149.925,197.5,0],"ix":2},"a":{"a":0,"k":[143.235,47.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.854,0.559],[0,0],[0.197,-2.328],[-5.896,-0.369],[-6.169,-0.264],[-0.728,-2.833],[-3.983,-13.859],[-3.697,-8.321],[-7.952,-1.308],[-6.447,-0.036],[-14.887,0],[-15.552,0.02],[-8.777,0.258],[-4.491,11.132],[-0.586,2.192],[-4.853,18.555],[-3.728,0.187],[-6.651,0.375],[-0.172,3.214]],"o":[[0,0],[-1.855,0.449],[-0.294,3.472],[6.161,0.386],[4.003,0.171],[3.58,13.924],[2.471,8.597],[2.569,5.782],[6.307,1.038],[14.886,0.083],[15.552,0],[8.786,-0.012],[15.381,-0.451],[0.862,-2.136],[4.955,-18.539],[0.713,-2.723],[6.654,-0.332],[4.02,-0.227],[0.131,-2.44]],"v":[[139.143,-47.5],[-139.292,-47.5],[-142.691,-43.703],[-134.774,-38.372],[-116.302,-37.118],[-109.899,-32.57],[-98.867,9.16],[-89.946,34.679],[-73.248,45.708],[-53.949,47.392],[-9.29,47.5],[37.366,47.453],[63.72,47.118],[93.278,29.351],[95.421,22.838],[110.176,-32.797],[116.329,-37.095],[136.264,-38.412],[142.854,-43.204]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-255.925,208.5],[256.075,208.5],[256.075,-303.5],[-255.925,-303.5]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-255.925,-303.5],[256.075,-303.5],[256.075,208.5],[-255.925,208.5]],"c":true},"ix":2},"nm":"Caminho 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Mesclar caminhos 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"tr","p":{"a":0,"k":[143.235,47.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.647058844566,0.345098048449,1],"ix":4},"o":{"a":0,"k":32,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"panela","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[149.925,197.5,0],"ix":2},"a":{"a":0,"k":[143.235,47.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.854,0.559],[0,0],[0.197,-2.328],[-5.896,-0.369],[-6.169,-0.264],[-0.728,-2.833],[-3.983,-13.859],[-3.697,-8.321],[-7.952,-1.308],[-6.447,-0.036],[-14.887,0],[-15.552,0.02],[-8.777,0.258],[-4.491,11.132],[-0.586,2.192],[-4.853,18.555],[-3.728,0.187],[-6.651,0.375],[-0.172,3.214]],"o":[[0,0],[-1.855,0.449],[-0.294,3.472],[6.161,0.386],[4.003,0.171],[3.58,13.924],[2.471,8.597],[2.569,5.782],[6.307,1.038],[14.886,0.083],[15.552,0],[8.786,-0.012],[15.381,-0.451],[0.862,-2.136],[4.955,-18.539],[0.713,-2.723],[6.654,-0.332],[4.02,-0.227],[0.131,-2.44]],"v":[[139.143,-47.5],[-139.292,-47.5],[-142.691,-43.703],[-134.774,-38.372],[-116.302,-37.118],[-109.899,-32.57],[-98.867,9.16],[-89.946,34.679],[-73.248,45.708],[-53.949,47.392],[-9.29,47.5],[37.366,47.453],[63.72,47.118],[93.278,29.351],[95.421,22.838],[110.176,-32.797],[116.329,-37.095],[136.264,-38.412],[142.854,-43.204]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-255.925,208.5],[256.075,208.5],[256.075,-303.5],[-255.925,-303.5]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-255.925,-303.5],[256.075,-303.5],[256.075,208.5],[-255.925,208.5]],"c":true},"ix":2},"nm":"Caminho 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Mesclar caminhos 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"tr","p":{"a":0,"k":[143.235,47.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[100],"e":[0]},{"t":9}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":95,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.23137254902,0.647058823529,0.345098039216,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":6,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":90,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/dna.json b/external/rlottie/example/resource/dna.json new file mode 100644 index 000000000..545d474b3 --- /dev/null +++ b/external/rlottie/example/resource/dna.json @@ -0,0 +1 @@ +{"v":"4.13.0","fr":60,"ip":0,"op":241,"w":800,"h":600,"nm":"DNA","ddd":0,"assets":[{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[22,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-156,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56.455,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-153,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[90.909,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-150,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[125.364,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-147,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[159.818,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-144,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[194.273,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-141,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[228.727,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-138,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[263.182,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-135,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[297.636,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-132,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[332.091,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-129,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[366.545,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-126,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[401,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-123,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[435.455,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-120,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[469.909,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-117,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[504.364,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-114,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[538.818,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-111,"bm":0},{"ddd":0,"ind":17,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[573.273,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-108,"bm":0},{"ddd":0,"ind":18,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[607.727,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-105,"bm":0},{"ddd":0,"ind":19,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[642.182,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-102,"bm":0},{"ddd":0,"ind":20,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[676.636,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-99,"bm":0},{"ddd":0,"ind":21,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[711.091,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-96,"bm":0},{"ddd":0,"ind":22,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[745.545,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-93,"bm":0},{"ddd":0,"ind":23,"ty":0,"nm":"meet bar","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[780,290,0],"ix":2},"a":{"a":0,"k":[32,205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":64,"h":410,"ip":0,"op":361,"st":-90,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":3,"nm":"traceNull","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[958,53,0],"ix":2,"x":"var $bm_rt;\nvar pathLayer = thisComp.layer('bar');\nvar progress = div(thisLayer.effect('Pseudo/ADBE Trace Path')('Pseudo/ADBE Trace Path-0001'), 100);\nvar pathToTrace = pathLayer('ADBE Root Vectors Group')(1)('ADBE Vector Shape');\n$bm_rt = pathLayer.toComp(pathToTrace.pointOnPath(progress));"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Trace Path","np":4,"mn":"Pseudo/ADBE Trace Path","ix":1,"en":1,"ef":[{"ty":0,"nm":"Progress","mn":"Pseudo/ADBE Trace Path-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.6],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p6_1_0p4_0"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.6],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p6_1_0p4_0"],"t":60,"s":[100],"e":[0]},{"t":120}],"ix":1,"x":"var $bm_rt;\nif (thisProperty.numKeys > 1) {\n $bm_rt = thisProperty.loopOut('cycle');\n} else {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Loop","mn":"Pseudo/ADBE Trace Path-0002","ix":2,"v":{"a":0,"k":0,"ix":2}}]}],"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"botDot","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-90,"ix":10},"p":{"a":0,"k":[660,124,0],"ix":2,"x":"var $bm_rt;\nvar barLayer, barPath;\nbarLayer = thisComp.layer('bar');\nbarPath = barLayer.content('Path 1').path.points();\n$bm_rt = sub(barLayer.toComp(barPath[1]), sub(thisComp.layer('traceNull').transform.position, barLayer.toComp(barPath[0])));"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[12,12],"e":[16,16]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":30,"s":[16,16],"e":[12,12]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":60,"s":[12,12],"e":[4,4]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":90,"s":[4,4],"e":[12,12]},{"t":120}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.666666666667,0.850980392157,0.96862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"topDot","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-90,"ix":10},"p":{"a":0,"k":[388,200,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('traceNull').transform.position;"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[12,12],"e":[4,4]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":30,"s":[4,4],"e":[12,12]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":60,"s":[12,12],"e":[16,16]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":90,"s":[16,16],"e":[12,12]},{"t":120}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.666666666667,0.850980392157,0.96862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"bar","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[306,436,0],"ix":2},"a":{"a":0,"k":[102,468,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-171,76],[-171,396]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('traceNull').effect('Trace Path')('Progress');"},"e":{"a":0,"k":100,"ix":2,"x":"var $bm_rt;\n$bm_rt = sub(100, content('Trim Paths 1').start);"},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":5,"k":{"a":0,"k":[0,0.639,0.816,0.929,0.254,0.357,0.496,0.594,0.507,0.075,0.176,0.259,0.754,0.357,0.496,0.594,1,0.639,0.816,0.929,0,1,0.253,0.5,0.505,0,0.752,0.5,1,1],"ix":8}},"s":{"a":0,"k":[258,509],"ix":4},"e":{"a":1,"k":[{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":0,"s":[396,-25],"e":[-7,-25],"to":[0,0],"ti":[0,0]},{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":60,"s":[-7,-25],"e":[396,-25],"to":[0,0],"ti":[0,0]},{"t":120}],"ix":5,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":720,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"NULL CONTROL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":20,"ix":10},"p":{"a":0,"k":[410.059,291.323,0],"ix":2},"a":{"a":0,"k":[60,60,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"meet graph","parent":1,"refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,60,0],"ix":2},"a":{"a":0,"k":[400,300,0],"ix":1},"s":{"a":0,"k":[78.88,-78.88,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Starglow","np":68,"mn":"tc Starglow","ix":1,"en":0,"ef":[{"ty":7,"nm":"Preset","mn":"tc Starglow-0059","ix":1,"v":{"a":0,"k":39,"ix":1}},{"ty":7,"nm":"Input Channel","mn":"tc Starglow-0001","ix":2,"v":{"a":0,"k":4,"ix":2}},{"ty":6,"nm":"Pre-Process","mn":"tc Starglow-0002","ix":3,"v":0},{"ty":0,"nm":"Threshold","mn":"tc Starglow-0003","ix":4,"v":{"a":0,"k":160,"ix":4}},{"ty":0,"nm":"Threshold Soft","mn":"tc Starglow-0004","ix":5,"v":{"a":0,"k":10,"ix":5}},{"ty":7,"nm":"Use Mask","mn":"tc Starglow-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Mask Radius","mn":"tc Starglow-0006","ix":7,"v":{"a":0,"k":100,"ix":7}},{"ty":0,"nm":"Mask Feather","mn":"tc Starglow-0007","ix":8,"v":{"a":0,"k":50,"ix":8}},{"ty":3,"nm":"Mask Position","mn":"tc Starglow-0008","ix":9,"v":{"a":0,"k":[400,300],"ix":9}},{"ty":6,"nm":"","mn":"tc Starglow-0009","ix":10,"v":0},{"ty":0,"nm":"Streak Length","mn":"tc Starglow-0010","ix":11,"v":{"a":0,"k":20,"ix":11}},{"ty":0,"nm":"Boost Light","mn":"tc Starglow-0021","ix":12,"v":{"a":0,"k":0,"ix":12}},{"ty":6,"nm":"Individual Lengths","mn":"tc Starglow-0011","ix":13,"v":0},{"ty":0,"nm":"Up","mn":"tc Starglow-0012","ix":14,"v":{"a":0,"k":1,"ix":14}},{"ty":0,"nm":"Down","mn":"tc Starglow-0013","ix":15,"v":{"a":0,"k":1,"ix":15}},{"ty":0,"nm":"Left","mn":"tc Starglow-0014","ix":16,"v":{"a":0,"k":0,"ix":16}},{"ty":0,"nm":"Right","mn":"tc Starglow-0015","ix":17,"v":{"a":0,"k":0,"ix":17}},{"ty":0,"nm":"Up Left","mn":"tc Starglow-0016","ix":18,"v":{"a":0,"k":0,"ix":18}},{"ty":0,"nm":"Up Right","mn":"tc Starglow-0017","ix":19,"v":{"a":0,"k":0,"ix":19}},{"ty":0,"nm":"Down Left","mn":"tc Starglow-0018","ix":20,"v":{"a":0,"k":0,"ix":20}},{"ty":0,"nm":"Down Right","mn":"tc Starglow-0019","ix":21,"v":{"a":0,"k":0,"ix":21}},{"ty":6,"nm":"","mn":"tc Starglow-0020","ix":22,"v":0},{"ty":6,"nm":"Individual Colors","mn":"tc Starglow-0046","ix":23,"v":0},{"ty":7,"nm":"Up","mn":"tc Starglow-0047","ix":24,"v":{"a":0,"k":1,"ix":24}},{"ty":7,"nm":"Down","mn":"tc Starglow-0048","ix":25,"v":{"a":0,"k":2,"ix":25}},{"ty":7,"nm":"Left","mn":"tc Starglow-0049","ix":26,"v":{"a":0,"k":1,"ix":26}},{"ty":7,"nm":"Right","mn":"tc Starglow-0050","ix":27,"v":{"a":0,"k":1,"ix":27}},{"ty":7,"nm":"Up Left","mn":"tc Starglow-0051","ix":28,"v":{"a":0,"k":1,"ix":28}},{"ty":7,"nm":"Up Right","mn":"tc Starglow-0052","ix":29,"v":{"a":0,"k":1,"ix":29}},{"ty":7,"nm":"Down Left","mn":"tc Starglow-0053","ix":30,"v":{"a":0,"k":2,"ix":30}},{"ty":7,"nm":"Down Right","mn":"tc Starglow-0054","ix":31,"v":{"a":0,"k":3,"ix":31}},{"ty":6,"nm":"","mn":"tc Starglow-0055","ix":32,"v":0},{"ty":6,"nm":"Colormap A","mn":"tc Starglow-0022","ix":33,"v":0},{"ty":7,"nm":"Preset","mn":"tc Starglow-0023","ix":34,"v":{"a":0,"k":5,"ix":34}},{"ty":2,"nm":"Highlights","mn":"tc Starglow-0024","ix":35,"v":{"a":0,"k":[1,1,1,0],"ix":35}},{"ty":2,"nm":"Mid High","mn":"tc Starglow-0025","ix":36,"v":{"a":0,"k":[1,0.650980392157,1,0],"ix":36}},{"ty":2,"nm":"Midtones","mn":"tc Starglow-0026","ix":37,"v":{"a":0,"k":[1,0.650980392157,0,0.035294117647],"ix":37}},{"ty":2,"nm":"Mid Low","mn":"tc Starglow-0027","ix":38,"v":{"a":0,"k":[1,0.650980392157,1,0],"ix":38}},{"ty":2,"nm":"Shadows","mn":"tc Starglow-0028","ix":39,"v":{"a":0,"k":[1,0,0,0],"ix":39}},{"ty":6,"nm":"","mn":"tc Starglow-0029","ix":40,"v":0},{"ty":6,"nm":"Colormap B","mn":"tc Starglow-0030","ix":41,"v":0},{"ty":7,"nm":"Preset","mn":"tc Starglow-0031","ix":42,"v":{"a":0,"k":9,"ix":42}},{"ty":2,"nm":"Highlights","mn":"tc Starglow-0032","ix":43,"v":{"a":0,"k":[1,1,1,0],"ix":43}},{"ty":2,"nm":"Mid High","mn":"tc Starglow-0033","ix":44,"v":{"a":0,"k":[0.988235294118,0.788235294118,0.635294117647,0],"ix":44}},{"ty":2,"nm":"Midtones","mn":"tc Starglow-0034","ix":45,"v":{"a":0,"k":[0.501960784314,1,1,0.035294117647],"ix":45}},{"ty":2,"nm":"Mid Low","mn":"tc Starglow-0035","ix":46,"v":{"a":0,"k":[0.572549019608,0.478431372549,0.945098039216,0],"ix":46}},{"ty":2,"nm":"Shadows","mn":"tc Starglow-0036","ix":47,"v":{"a":0,"k":[0,0,1,0],"ix":47}},{"ty":6,"nm":"","mn":"tc Starglow-0037","ix":48,"v":0},{"ty":6,"nm":"Colormap C","mn":"tc Starglow-0038","ix":49,"v":0},{"ty":7,"nm":"Preset","mn":"tc Starglow-0039","ix":50,"v":{"a":0,"k":7,"ix":50}},{"ty":2,"nm":"Highlights","mn":"tc Starglow-0040","ix":51,"v":{"a":0,"k":[1,1,1,0],"ix":51}},{"ty":2,"nm":"Mid High","mn":"tc Starglow-0041","ix":52,"v":{"a":0,"k":[0.78431372549,1,0.501960784314,1],"ix":52}},{"ty":2,"nm":"Midtones","mn":"tc Starglow-0042","ix":53,"v":{"a":0,"k":[0.650980392157,1,0,0.035294117647],"ix":53}},{"ty":2,"nm":"Mid Low","mn":"tc Starglow-0043","ix":54,"v":{"a":0,"k":[0.313725490196,1,0,1],"ix":54}},{"ty":2,"nm":"Shadows","mn":"tc Starglow-0044","ix":55,"v":{"a":0,"k":[0,1,0,0],"ix":55}},{"ty":6,"nm":"","mn":"tc Starglow-0045","ix":56,"v":0},{"ty":6,"nm":"Shimmer","mn":"tc Starglow-0060","ix":57,"v":0},{"ty":0,"nm":"Amount","mn":"tc Starglow-0061","ix":58,"v":{"a":0,"k":0,"ix":58}},{"ty":0,"nm":"Detail","mn":"tc Starglow-0062","ix":59,"v":{"a":0,"k":10,"ix":59}},{"ty":0,"nm":"Phase","mn":"tc Starglow-0063","ix":60,"v":{"a":0,"k":0,"ix":60}},{"ty":7,"nm":"Use Loop","mn":"tc Starglow-0064","ix":61,"v":{"a":0,"k":0,"ix":61}},{"ty":0,"nm":"Revolutions in Loop","mn":"tc Starglow-0065","ix":62,"v":{"a":0,"k":1,"ix":62}},{"ty":6,"nm":"","mn":"tc Starglow-0066","ix":63,"v":0},{"ty":0,"nm":"Source Opacity","mn":"tc Starglow-0056","ix":64,"v":{"a":0,"k":100,"ix":64}},{"ty":0,"nm":"Starglow Opacity","mn":"tc Starglow-0057","ix":65,"v":{"a":0,"k":43,"ix":65}},{"ty":7,"nm":"Transfer Mode","mn":"tc Starglow-0058","ix":66,"v":{"a":0,"k":7,"ix":66}}]}],"w":800,"h":600,"ip":0,"op":241,"st":-16,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/done.json b/external/rlottie/example/resource/done.json new file mode 100644 index 000000000..a4b11963e --- /dev/null +++ b/external/rlottie/example/resource/done.json @@ -0,0 +1 @@ +{"v":"4.11.1","fr":29.9700012207031,"ip":0,"op":76.0000030955435,"w":70,"h":70,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[35,35,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":33,"s":[0,0,100],"e":[120,120,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":46,"s":[120,120,100],"e":[100,100,100]},{"t":52.0000021180034}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-7,1.438],[-2.656,5.781],[7.422,-4.297]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":33,"s":[0],"e":[100]},{"t":52.0000021180034}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":450.000018328876,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[35,35,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":18,"s":[0,0,100],"e":[120,120,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":33,"s":[120,120,100],"e":[80,80,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":41,"s":[80,80,100],"e":[110,110,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":49,"s":[110,110,100],"e":[100,100,100]},{"t":52.0000021180034}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.015,0],[0,-13.015],[-13.015,0],[0,13.015]],"o":[[-13.015,0],[0,13.015],[13.015,0],[0,-13.015]],"v":[[0,-23.566],[-23.566,0],[0,23.566],[23.566,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.898039215686,0.898039215686,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.760784313725,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[105.535,105.535],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":450.000018328876,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/dynamic_path_test.json b/external/rlottie/example/resource/dynamic_path_test.json new file mode 100644 index 000000000..a01e506dc --- /dev/null +++ b/external/rlottie/example/resource/dynamic_path_test.json @@ -0,0 +1 @@ +{"v":"5.1.17","fr":29.9700012207031,"ip":0,"op":150.000006109625,"w":300,"h":300,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":20,"s":[135,135],"e":[116,116]},{"t":137.000005580124}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[24,25],"e":[57,52],"to":[5.5,4.5],"ti":[-5.5,-4.5]},{"t":129.000005254278}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[54]},{"t":149.000006068894}],"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[100,100],"e":[50,50]},{"t":40.0000016292334}],"ix":2},"p":{"a":0,"k":[-26,-37],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145327582955,0.057777773589,0.866666674614,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":5,"ix":3},"p":{"a":0,"k":[26,-54],"ix":4},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":110,"s":[0],"e":[184]},{"t":149.000006068894}],"ix":5},"ir":{"a":0,"k":30,"ix":6},"is":{"a":0,"k":27,"ix":8},"or":{"a":0,"k":59,"ix":7},"os":{"a":0,"k":73,"ix":9},"ix":5,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.07993286103,0.716212213039,0.766274511814,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/dynamic_property.json b/external/rlottie/example/resource/dynamic_property.json new file mode 100644 index 000000000..ef04bd08c --- /dev/null +++ b/external/rlottie/example/resource/dynamic_property.json @@ -0,0 +1 @@ +{"v":"5.4.3","fr":60,"ip":0,"op":30,"w":800,"h":800,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"ABCDEFG Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[395,397,0],"ix":2},"a":{"a":0,"k":[86,-17,0],"ix":1},"s":{"a":0,"k":[343,343,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-0.516],[0.334,-0.269],[0.949,-0.047],[0,0],[0,0],[0,0],[0.545,0.475],[0.668,1.594],[0,0],[0,0],[0,0],[0.598,-0.563],[0.996,-0.176],[0,0],[0,0],[0,0],[0.346,0.275],[0,0.363],[-0.399,0.926],[0,0],[0,0]],"o":[[0.469,1.113],[0,0.387],[-0.334,0.27],[0,0],[0,0],[0,0],[-0.973,-0.059],[-0.545,-0.475],[0,0],[0,0],[0,0],[-0.727,1.723],[-0.293,0.281],[0,0],[0,0],[0,0],[-1.149,-0.082],[-0.346,-0.275],[0,-0.457],[0,0],[0,0],[0,0]],"v":[[17.912,-4.553],[18.615,-2.109],[18.114,-1.125],[16.189,-0.65],[16.189,0],[25.594,0],[25.594,-0.65],[23.317,-1.45],[21.498,-4.553],[13.201,-24.381],[12.586,-24.381],[4.201,-4.764],[2.215,-1.336],[0.281,-0.65],[0.281,0],[7.787,0],[7.787,-0.65],[5.546,-1.187],[5.027,-2.145],[5.625,-4.219],[7.242,-7.98],[16.471,-7.98]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[7.787,-9.281],[11.936,-18.914],[15.979,-9.281]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.727,0.943],[0,1.195],[0.926,1.072],[1.758,0.422],[1.922,0],[0,0],[0,0],[0,0],[-0.457,-0.516],[0,-1.477],[0,0],[0.269,-0.41],[0.996,0],[0,0],[0,0],[0,0],[-1.307,0.498],[-0.75,1.084],[0,1.184],[1.137,1.078],[1.652,0.352]],"o":[[0.726,-0.943],[0,-1.394],[-0.926,-1.072],[-1.16,-0.281],[0,0],[0,0],[0,0],[0.902,0],[0.34,0.387],[0,0],[0,1.336],[-0.434,0.633],[0,0],[0,0],[0,0],[2.683,0],[1.307,-0.498],[0.75,-1.084],[0,-1.558],[-0.82,-0.773],[1.418,-0.457]],"v":[[45.844,-14.265],[46.934,-17.473],[45.545,-21.173],[41.52,-23.414],[36.896,-23.836],[26.596,-23.836],[26.596,-23.186],[27.492,-23.186],[29.531,-22.412],[30.041,-19.617],[30.041,-4.219],[29.637,-1.6],[27.492,-0.65],[26.596,-0.65],[26.596,0],[37.846,0],[43.831,-0.747],[46.916,-3.12],[48.041,-6.521],[46.336,-10.477],[42.627,-12.164]],"c":true},"ix":2},"nm":"B","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-1.172,0],[-1.137,-0.984],[0,-1.394],[0.457,-0.762],[0.861,-0.369],[1.711,0],[0.556,0.041],[0.433,0.082]],"o":[[0.937,-0.258],[2.18,0],[1.137,0.984],[0,0.903],[-0.457,0.762],[-0.861,0.369],[-0.668,0],[-0.557,-0.041],[0,0]],"v":[[33.416,-22.271],[36.58,-22.658],[41.555,-21.182],[43.26,-17.613],[42.574,-15.117],[40.597,-13.421],[36.738,-12.867],[34.901,-12.929],[33.416,-13.113]],"c":true},"ix":2},"nm":"B","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[-0.516,0.024],[-0.727,0],[-1.137,-0.492],[-0.504,-0.855],[0,-0.926],[1.113,-0.955],[2.121,0],[1.359,0.316]],"o":[[0.316,-0.059],[0.516,-0.023],[1.676,0],[1.137,0.492],[0.504,0.856],[0,1.406],[-1.113,0.955],[-1.324,0],[0,0]],"v":[[33.416,-11.496],[34.664,-11.619],[36.527,-11.654],[40.746,-10.916],[43.207,-8.895],[43.963,-6.223],[42.293,-2.681],[37.441,-1.248],[33.416,-1.723]],"c":true},"ix":2},"nm":"B","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":6,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.305,-0.316],[0.316,0],[0.492,0.258],[1.723,0],[1.869,-1.096],[1.066,-1.992],[0,-2.379],[-1.617,-2.18],[-3.949,0],[-1.594,0.984],[-1.195,2.121],[0,0],[1.184,-0.662],[1.547,0],[1.389,0.844],[0.691,1.582],[0,2.156],[-0.733,1.758],[-1.277,0.803],[-1.582,0],[-1.348,-1.066],[-0.727,-2.426],[0,0],[0,0]],"o":[[-0.129,0.563],[-0.235,0.223],[-0.211,0],[-1.676,-0.844],[-2.215,0],[-1.869,1.096],[-1.066,1.992],[0,2.953],[2.168,2.93],[2.191,0],[1.594,-0.984],[0,0],[-1.418,1.969],[-1.184,0.662],[-1.781,0],[-1.389,-0.844],[-0.692,-1.582],[0,-2.613],[0.732,-1.758],[1.277,-0.803],[1.887,0],[1.347,1.066],[0,0],[0,0],[0,0]],"v":[[71.068,-24.381],[70.418,-23.063],[69.592,-22.729],[68.537,-23.115],[63.439,-24.381],[57.313,-22.737],[52.91,-18.105],[51.311,-11.549],[53.736,-3.85],[62.912,0.545],[68.59,-0.932],[72.773,-5.59],[72.229,-5.941],[68.326,-1.995],[64.23,-1.002],[59.476,-2.268],[56.355,-5.906],[55.318,-11.514],[56.417,-18.07],[59.432,-21.911],[63.721,-23.115],[68.572,-21.516],[71.684,-16.277],[72.229,-16.277],[71.684,-24.381]],"c":true},"ix":2},"nm":"C","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"C","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.262,2.485],[0,3.316],[1.131,1.887],[1.857,0.809],[3.562,0],[0,0],[0,0],[0,0],[-0.457,-0.516],[0,-1.488],[0,0],[0.258,-0.387],[1.008,0],[0,0],[0,0]],"o":[[4.629,0],[2.015,-2.226],[0,-2.472],[-1.131,-1.887],[-1.858,-0.809],[0,0],[0,0],[0,0],[0.902,0],[0.328,0.375],[0,0],[0,1.348],[-0.422,0.645],[0,0],[0,0],[0,0]],"v":[[85.289,0],[95.625,-3.727],[98.648,-12.041],[96.952,-18.58],[92.47,-22.623],[84.34,-23.836],[74.637,-23.836],[74.637,-23.186],[75.533,-23.186],[77.572,-22.412],[78.064,-19.617],[78.064,-4.219],[77.678,-1.617],[75.533,-0.65],[74.637,-0.65],[74.637,0]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-1.055,0],[-1.793,-1.898],[0,-3.293],[1.793,-1.91],[2.719,0],[1.488,0.328]],"o":[[1.347,-0.34],[2.813,0],[1.793,1.898],[0,3.27],[-1.793,1.91],[-1.008,0],[0,0]],"v":[[81.439,-21.99],[85.043,-22.5],[91.951,-19.652],[94.641,-11.865],[91.951,-4.096],[85.184,-1.23],[81.439,-1.723]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"D","np":5,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.469,-0.176],[-0.299,-0.469],[-0.246,-1.254],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.422,-0.469],[0,-1.512],[0,0],[0.135,-0.375],[0.375,-0.187],[0.563,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.726,-0.726],[0.609,-0.187],[1.347,0],[0,0],[0.234,0.135],[0.094,0.229],[0,1.055],[0,0],[0,0],[-0.481,-0.234],[-0.211,-0.41],[-0.164,-1.16],[0,0],[0,0],[0,0],[0.609,-0.539],[1.359,0],[0,0],[0,0]],"o":[[1.184,0],[0.586,0.246],[0.299,0.469],[0,0],[0,0],[0,0],[0,0],[0,0],[0.984,0],[0.305,0.352],[0,0],[0,1.16],[-0.135,0.375],[-0.504,0.27],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.762,1.465],[-0.563,0.551],[-0.609,0.188],[0,0],[-0.656,0],[-0.235,-0.135],[-0.094,-0.229],[0,0],[0,0],[0.996,0],[0.48,0.235],[0.164,0.328],[0,0],[0,0],[0,0],[-0.07,1.36],[-0.457,0.41],[0,0],[0,0],[0,0]],"v":[[114.082,-22.535],[116.561,-22.271],[117.888,-21.199],[118.705,-18.615],[119.391,-18.615],[119.127,-23.836],[100.758,-23.836],[100.758,-23.186],[101.602,-23.186],[103.711,-22.482],[104.168,-19.688],[104.168,-4.201],[103.966,-1.898],[103.201,-1.055],[101.602,-0.65],[100.758,-0.65],[100.758,0],[119.127,0],[121.184,-5.977],[120.48,-5.977],[118.248,-2.689],[116.49,-1.582],[113.555,-1.301],[109.512,-1.301],[108.176,-1.503],[107.684,-2.048],[107.543,-3.973],[107.543,-11.83],[112.781,-11.83],[114.996,-11.479],[116.033,-10.512],[116.525,-8.279],[117.176,-8.279],[117.176,-16.576],[116.525,-16.576],[115.506,-13.729],[112.781,-13.113],[107.543,-13.113],[107.543,-22.535]],"c":true},"ix":2},"nm":"E","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"E","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.592,-0.234],[-0.404,-0.521],[-0.305,-1.113],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.504,-0.281],[-0.117,-0.293],[0,-1.207],[0,0],[0.281,-0.375],[0.984,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.516,0.281],[0.117,0.293],[0,1.207],[0,0],[0,0],[-0.404,-0.217],[-0.229,-0.433],[-0.012,-0.926],[0,0],[0,0],[0,0],[0.463,-0.439],[0.996,0],[0,0],[0,0]],"o":[[1.242,0],[0.592,0.235],[0.404,0.522],[0,0],[0,0],[0,0],[0,0],[0,0],[0.574,0],[0.363,0.211],[0.152,0.387],[0,0],[0,1.43],[-0.445,0.574],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.563,0],[-0.375,-0.211],[-0.152,-0.387],[0,0],[0,0],[0.797,0],[0.404,0.217],[0.229,0.434],[0,0],[0,0],[0,0],[-0.152,1.301],[-0.463,0.439],[0,0],[0,0],[0,0]],"v":[[134.631,-22.535],[137.382,-22.184],[138.876,-21.05],[139.939,-18.598],[140.555,-18.598],[140.326,-23.836],[122.59,-23.836],[122.59,-23.186],[123.434,-23.186],[125.051,-22.764],[125.771,-22.008],[126,-19.617],[126,-4.219],[125.578,-1.512],[123.434,-0.65],[122.59,-0.65],[122.59,0],[132.82,0],[132.82,-0.65],[131.959,-0.65],[130.342,-1.072],[129.604,-1.828],[129.375,-4.219],[129.375,-11.707],[133.717,-11.707],[135.519,-11.382],[136.468,-10.406],[136.828,-8.367],[137.479,-8.367],[137.479,-16.436],[136.828,-16.436],[135.905,-13.825],[133.717,-13.166],[129.375,-13.166],[129.375,-22.535]],"c":true},"ix":2},"nm":"F","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"F","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.158,-0.205],[0.222,0],[0.656,0.246],[0.709,0.141],[0.867,0],[1.746,-1.02],[1.195,-2.285],[0,-2.098],[-1.793,-2.215],[-4.605,0],[-1.313,0.34],[-1.348,0.727],[0,0],[-0.235,0.434],[-0.914,0],[0,0],[0,0],[0,0],[0,0],[-0.381,-0.193],[-0.182,-0.369],[0,-1.195],[0,0],[0.82,-0.222],[0.879,0],[1.424,0.873],[0.879,1.875],[0,2.274],[-1.324,2.028],[-3.035,0],[-1.418,-1.371],[-0.621,-1.875],[0,0],[0,0]],"o":[[-0.035,0.598],[-0.158,0.205],[-0.223,0],[-1.301,-0.48],[-0.709,-0.141],[-2.379,0],[-2.086,1.23],[-1.008,1.922],[0,2.895],[2.391,2.953],[1.605,0],[1.312,-0.34],[0,0],[0,-1.277],[0.34,-0.609],[0,0],[0,0],[0,0],[0,0],[0.961,0],[0.381,0.193],[0.182,0.369],[0,0],[-0.762,0.434],[-0.82,0.223],[-1.5,0],[-1.424,-0.873],[-0.879,-1.875],[0,-2.801],[1.582,-2.402],[2.226,0],[0.984,0.949],[0,0],[0,0],[0,0]],"v":[[163.477,-24.381],[163.187,-23.177],[162.615,-22.869],[161.297,-23.238],[158.282,-24.17],[155.918,-24.381],[149.73,-22.852],[144.809,-17.578],[143.297,-11.549],[145.986,-3.885],[156.48,0.545],[160.857,0.035],[164.848,-1.564],[164.848,-8.859],[165.199,-11.426],[167.08,-12.34],[167.52,-12.34],[167.52,-13.008],[158.291,-13.008],[158.291,-12.34],[160.304,-12.05],[161.147,-11.206],[161.42,-8.859],[161.42,-1.969],[159.047,-0.984],[156.498,-0.65],[152.112,-1.96],[148.658,-6.082],[147.34,-12.305],[149.326,-19.547],[156.252,-23.15],[161.719,-21.094],[164.127,-16.857],[164.742,-16.857],[164.127,-24.381]],"c":true},"ix":2},"nm":"G","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"G","np":3,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/eid_mubarak.json b/external/rlottie/example/resource/eid_mubarak.json new file mode 100644 index 000000000..7c198b1d3 --- /dev/null +++ b/external/rlottie/example/resource/eid_mubarak.json @@ -0,0 +1 @@ +{"v":"5.1.6","fr":29.9700012207031,"ip":0,"op":144.00000586524,"w":800,"h":800,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Dot1/Eid-letters Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[387,452,0],"ix":2},"a":{"a":0,"k":[16,16,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":90,"s":[0,0,100],"e":[100,100,100]},{"t":100.000004073084}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.897,-0.05],[0.113,9.015],[-8.894,0.102],[-0.039,-8.805]],"o":[[-8.985,0.051],[-0.111,-8.845],[8.768,-0.1],[0.039,8.935]],"v":[[0.144,15.694],[-15.609,0.174],[-0.079,-15.645],[15.68,-0.066]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.046535948211,0.414443550858,0.698039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.969,15.995],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Dot2/Eid-letters Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":100,"ix":10},"p":{"a":0,"k":[378,485,0],"ix":2},"a":{"a":0,"k":[13,13,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":85,"s":[0,0,100],"e":[100,100,100]},{"t":96.0000039101602}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.005,-7.006],[7.005,0.057],[-0.098,6.816],[-6.785,-0.025]],"o":[[-0.006,7.073],[-6.911,-0.055],[0.098,-6.888],[6.855,0.025]],"v":[[12.548,0.084],[0.055,12.587],[-12.455,-0.029],[0.172,-12.619]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.046535948211,0.414443550858,0.698039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.803,12.894],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Dot3/Eid-letters Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[485,606,0],"ix":2},"a":{"a":0,"k":[16.5,16,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":40,"s":[0,0,100],"e":[100,100,100]},{"t":55.0000022401959}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.746,-0.066],[0.071,8.674],[-8.785,0.027],[-0.09,-8.869]],"o":[[-8.745,0.067],[-0.073,-8.788],[8.991,-0.027],[0.088,8.767]],"v":[[0.186,15.657],[-15.759,0.091],[-0.154,-15.698],[15.745,-0.218]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.046535948211,0.414443550858,0.698039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.083,15.975],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"E/Eid-letters Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[477,380,0],"ix":2},"a":{"a":0,"k":[122.5,80,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[14.912,0],[0,-15.74],[-14.912,0],[0,15.74]],"o":[[-14.912,0],[0,15.74],[14.912,0],[0,-15.74]],"v":[[224.5,-49],[197.5,-20.5],[223,11],[251.5,-20.5]],"c":true}],"e":[{"i":[[14.912,0],[9.238,-12.744],[-14.884,0.906],[0,15.74]],"o":[[-14.912,0],[-83,114.5],[57.5,-3.5],[0,-15.74]],"v":[[201,22],[156.5,14],[170.5,103],[251.5,-20.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":8,"s":[{"i":[[14.912,0],[9.238,-12.744],[-14.884,0.906],[0,15.74]],"o":[[-14.912,0],[-83,114.5],[57.5,-3.5],[0,-15.74]],"v":[[201,22],[156.5,14],[170.5,103],[251.5,-20.5]],"c":true}],"e":[{"i":[[14.912,0],[9.238,-12.744],[-14.884,0.906],[0,15.74]],"o":[[-14.912,0],[-83,114.5],[57.5,-3.5],[0,-15.74]],"v":[[201,22],[156.5,14],[160.5,130.5],[251.5,-20.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":13,"s":[{"i":[[14.912,0],[9.238,-12.744],[-14.884,0.906],[0,15.74]],"o":[[-14.912,0],[-83,114.5],[57.5,-3.5],[0,-15.74]],"v":[[201,22],[156.5,14],[160.5,130.5],[251.5,-20.5]],"c":true}],"e":[{"i":[[14.912,0],[9.238,-12.744],[-14.884,0.911],[29,236.5]],"o":[[-14.912,0],[-83,114.5],[49,-3],[-1.916,-15.623]],"v":[[201,22],[156.5,14],[160.5,130.5],[251.5,-20.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[{"i":[[14.912,0],[9.238,-12.744],[-14.884,0.911],[29,236.5]],"o":[[-14.912,0],[-83,114.5],[49,-3],[-1.916,-15.623]],"v":[[201,22],[156.5,14],[160.5,130.5],[251.5,-20.5]],"c":true}],"e":[{"i":[[14.912,0],[9.238,-12.744],[10.544,-10.544],[29,236.5]],"o":[[-14.912,0],[-83,114.5],[-100,100],[-1.916,-15.623]],"v":[[201,22],[156.5,14],[99,117],[251.5,-20.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":27,"s":[{"i":[[14.912,0],[9.238,-12.744],[10.544,-10.544],[29,236.5]],"o":[[-14.912,0],[-83,114.5],[-100,100],[-1.916,-15.623]],"v":[[201,22],[156.5,14],[99,117],[251.5,-20.5]],"c":true}],"e":[{"i":[[14.912,0],[7.935,-13.594],[9.191,-3.786],[183.637,333.26]],"o":[[-14.912,0],[-79.939,136.951],[-157.852,65.032],[-7.596,-13.786]],"v":[[201,22],[156.5,14],[50.5,109.5],[221.5,-13]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[{"i":[[14.912,0],[7.935,-13.594],[9.191,-3.786],[183.637,333.26]],"o":[[-14.912,0],[-79.939,136.951],[-157.852,65.032],[-7.596,-13.786]],"v":[[201,22],[156.5,14],[50.5,109.5],[221.5,-13]],"c":true}],"e":[{"i":[[14.912,0],[7.935,-13.594],[9.191,-3.786],[183.637,333.26]],"o":[[-14.912,0],[-79.939,136.951],[-157.852,65.032],[-7.596,-13.786]],"v":[[201,22],[156.5,20.5],[41,88.5],[212,-34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":39,"s":[{"i":[[14.912,0],[7.935,-13.594],[9.191,-3.786],[183.637,333.26]],"o":[[-14.912,0],[-79.939,136.951],[-157.852,65.032],[-7.596,-13.786]],"v":[[201,22],[156.5,20.5],[41,88.5],[212,-34]],"c":true}],"e":[{"i":[[14.912,0],[7.935,-13.594],[9.191,-3.786],[183.637,333.26]],"o":[[-14.912,0],[-79.939,136.951],[-157.852,65.032],[-7.596,-13.786]],"v":[[201,22],[116.5,-39],[41,88.5],[212,-34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44,"s":[{"i":[[14.912,0],[7.935,-13.594],[9.191,-3.786],[183.637,333.26]],"o":[[-14.912,0],[-79.939,136.951],[-157.852,65.032],[-7.596,-13.786]],"v":[[201,22],[116.5,-39],[41,88.5],[212,-34]],"c":true}],"e":[{"i":[[14.912,0],[7.935,-13.594],[8.523,-5.115],[178.348,365.656]],"o":[[-14.912,0],[-79.939,136.951],[-163.23,97.968],[-6.9,-14.147]],"v":[[201,22],[116.5,-39],[-19.5,41],[212,-34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":49,"s":[{"i":[[14.912,0],[7.935,-13.594],[8.523,-5.115],[178.348,365.656]],"o":[[-14.912,0],[-79.939,136.951],[-163.23,97.968],[-6.9,-14.147]],"v":[[201,22],[116.5,-39],[-19.5,41],[212,-34]],"c":true}],"e":[{"i":[[14.912,0],[7.935,-13.594],[8.523,-5.115],[178.348,365.656]],"o":[[-14.912,0],[-79.939,136.951],[-163.23,97.968],[-6.9,-14.147]],"v":[[201,22],[13,-89],[-19.5,41],[212,-34]],"c":true}]},{"t":57.0000023216576}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-15.21,7.235],[2.246,0.395],[-9.788,20.106],[-0.732,1.373],[-6.202,-0.151],[-9.412,15.289],[-2.308,4.75],[-0.675,-1.605],[9.191,-12.372],[8.825,-1.392],[9.092,5.583],[1.895,0.378],[-1.216,-2.194],[-10.857,-0.872],[-7.769,1.993],[-1.772,1.626],[-9.414,12.271],[-1.1,0.691],[0.055,-1.272],[1.095,-1.404],[25.893,-19.379],[17.172,1.05],[1.317,0]],"o":[[16.191,1.61],[-3.303,-0.366],[-21.938,-3.854],[0.681,-1.399],[2.609,-4.89],[17.204,0.421],[2.286,-3.713],[1.391,1.912],[5.596,13.314],[-5.472,7.363],[-10.169,1.604],[-0.985,-0.606],[0.665,2.499],[5.397,9.744],[8.169,0.655],[2.305,-0.591],[11.422,-10.484],[0.742,-0.967],[0.709,1.305],[-0.076,1.764],[-19.821,25.379],[-13.357,9.996],[-1.066,-0.065],[0,0]],"v":[[5.595,57.525],[51.68,47.482],[43.838,46.594],[21.039,1.595],[23.213,-2.535],[35.427,-9.515],[76.559,-30.424],[82.754,-43.023],[86.198,-38.197],[83.743,0.608],[61.716,12.801],[32.576,8.47],[28.808,6.72],[30.885,14.173],[55.884,29.188],[79.64,25.97],[86.045,22.353],[116.637,-12.372],[119.891,-14.481],[121.869,-10.572],[119.958,-5.393],[52.727,63.141],[7.298,78.269],[3.843,78.259]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[3.45,12.351],[0.178,0.306],[0.104,0.059],[13.744,6.907],[-5.73,23.029],[2.691,0.072],[3.141,8.396],[1.117,6.957],[-3.065,-2.548],[-7.604,-0.065],[-13.199,-0.032],[-6.655,-3.927],[10.925,2.071],[7.75,0.539],[9.341,1.332],[4.542,8.538],[-1.104,7.651],[-1.024,5.088],[-0.066,-2.312],[-4.346,-4.918],[-6.589,-0.067],[-8.027,0.351],[-10.117,-5.579],[2.419,-13.264],[1.46,-6.035],[0.262,-2.612],[15.96,0.712],[0.411,-2.425],[-13.665,5.614],[-5.539,3.419],[-2.945,-4.356],[-14.555,-1.639]],"o":[[-20.808,-1.891],[-0.094,-0.335],[-0.052,-0.089],[-11.724,14.264],[-13.077,-6.57],[-2.794,0],[-9.113,-0.242],[-2.489,-6.653],[2.654,3.042],[6.164,5.124],[13.198,0.112],[8.876,0.021],[2.271,-10.209],[-7.578,-1.436],[-9.437,-0.656],[-9.236,-1.317],[-3.756,-7.062],[0.676,-4.686],[3.014,1.48],[0.179,6.347],[4.472,5.061],[8.034,0.081],[11.326,-0.495],[11.722,6.464],[-1.11,6.089],[-0.57,2.353],[-15.945,-4.52],[-2.722,-0.122],[-2.953,17.398],[6.164,-2.532],[1.988,3.936],[2.88,4.259],[0,0]],"v":[[3.843,78.259],[-35.76,44.485],[-36.23,43.534],[-36.535,43.353],[-76.51,54.9],[-87.302,11.892],[-95.482,11.882],[-114.334,-1.163],[-119.259,-21.863],[-111.225,-12.822],[-89.766,-7.158],[-50.168,-7.116],[-30.405,-2.048],[-45.051,-24.108],[-68.273,-25.845],[-96.558,-28.004],[-118.168,-42.428],[-120.398,-64.926],[-117.549,-79.319],[-114.147,-73.424],[-108.44,-56.064],[-91.426,-48.772],[-67.32,-49.199],[-34.953,-42.89],[-19.47,-10.811],[-24.189,7.207],[-24.992,14.67],[-73.022,11.895],[-76.78,15.316],[-48.044,36.241],[-30.94,25.9],[-24.049,39.217],[5.595,57.525]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.046535948211,0.414443550858,0.698039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[122.174,79.568],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"K/Eid-letters Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[306,444,0],"ix":2},"a":{"a":0,"k":[122,132.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":63,"s":[{"i":[[33.413,0],[0,-12.703],[-33.413,0],[0,12.703]],"o":[[-33.413,0],[0,12.703],[33.413,0],[0,-12.703]],"v":[[112.5,-61.5],[52,-38.5],[112.5,-15.5],[173,-38.5]],"c":true}],"e":[{"i":[[33.413,0],[0,-12.703],[-22.871,-24.359],[0,12.703]],"o":[[-33.413,0],[0,12.703],[84.5,90],[0,-12.703]],"v":[[112.5,-61.5],[67,112.5],[127.5,135.5],[173,-38.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":70,"s":[{"i":[[33.413,0],[0,-12.703],[-22.871,-24.359],[0,12.703]],"o":[[-33.413,0],[0,12.703],[84.5,90],[0,-12.703]],"v":[[112.5,-61.5],[67,112.5],[127.5,135.5],[173,-38.5]],"c":true}],"e":[{"i":[[33.413,0],[0,-12.702],[-32.773,-6.508],[0,12.703]],"o":[[-33.413,0],[0,12.703],[211.5,42],[0,-12.703]],"v":[[112.5,-61.5],[20,146.5],[80.5,169.5],[173,-38.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":76,"s":[{"i":[[33.413,0],[0,-12.702],[-32.773,-6.508],[0,12.703]],"o":[[-33.413,0],[0,12.703],[211.5,42],[0,-12.703]],"v":[[112.5,-61.5],[20,146.5],[80.5,169.5],[173,-38.5]],"c":true}],"e":[{"i":[[33.413,0],[-5.1,-11.634],[-32.666,-7.025],[0,12.703]],"o":[[-33.413,0],[32,73],[232.5,50],[0,-12.703]],"v":[[112.5,-61.5],[19,185.5],[79.5,208.5],[173,-38.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":82,"s":[{"i":[[33.413,0],[-5.1,-11.634],[-32.666,-7.025],[0,12.703]],"o":[[-33.413,0],[32,73],[232.5,50],[0,-12.703]],"v":[[112.5,-61.5],[19,185.5],[79.5,208.5],[173,-38.5]],"c":true}],"e":[{"i":[[33.413,0],[-8.343,-9.579],[-32.979,-5.365],[0,12.703]],"o":[[-33.413,0],[54,62],[565.5,92],[0,-12.703]],"v":[[112.5,-61.5],[45,189.5],[105.5,212.5],[298.5,151]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":88,"s":[{"i":[[33.413,0],[-8.343,-9.579],[-32.979,-5.365],[0,12.703]],"o":[[-33.413,0],[54,62],[565.5,92],[0,-12.703]],"v":[[112.5,-61.5],[45,189.5],[105.5,212.5],[298.5,151]],"c":true}],"e":[{"i":[[33.413,0],[-8.343,-9.579],[-30.818,-12.911],[0,12.703]],"o":[[-33.413,0],[54,62],[496.5,208],[0,-12.703]],"v":[[112.5,-61.5],[45,189.5],[105.5,212.5],[298.5,151]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":94,"s":[{"i":[[33.413,0],[-8.343,-9.579],[-30.818,-12.911],[0,12.703]],"o":[[-33.413,0],[54,62],[496.5,208],[0,-12.703]],"v":[[112.5,-61.5],[45,189.5],[105.5,212.5],[298.5,151]],"c":true}],"e":[{"i":[[33.413,0],[-8.343,-9.579],[-5.675,-32.928],[19.5,99.5]],"o":[[-33.413,0],[54,62],[45.5,264],[-2.443,-12.465]],"v":[[112.5,-61.5],[45,189.5],[77.5,216.5],[298.5,151]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":99,"s":[{"i":[[33.413,0],[-8.343,-9.579],[-5.675,-32.928],[19.5,99.5]],"o":[[-33.413,0],[54,62],[45.5,264],[-2.443,-12.465]],"v":[[112.5,-61.5],[45,189.5],[77.5,216.5],[298.5,151]],"c":true}],"e":[{"i":[[33.413,0],[-8.343,-9.579],[-5.675,-32.928],[19.5,99.5]],"o":[[-33.413,0],[54,62],[45.5,264],[-2.443,-12.465]],"v":[[112.5,-61.5],[-23,118.5],[-26.5,210.5],[307.5,161]],"c":true}]},{"t":105.000004276738}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.509,10.645],[-2.145,-4.72],[-10.953,-2.651],[-6.522,-0.021],[-50.512,-0.052],[-5.189,-0.785],[-3.43,-8.152],[-0.708,-1.77],[-0.345,0.023],[0.814,3.237],[7.604,3.556],[14.25,0.816],[19.383,1.268],[10.003,4.401],[1.46,15.257],[-0.281,6.69],[-0.172,0.743],[-6.53,-1.78],[-10.108,24.027],[2.916,17.739],[16.924,19.848],[0.274,1.38],[-1.052,-0.768],[-6.537,-8.808],[1.776,-31.941],[12.48,-13.591],[17.96,0.885],[11.095,6.467],[-5.821,-3.975],[-10.296,-0.914],[-17.824,-1.194],[-13.423,-4.065],[-7.468,-10.232],[0.022,-7.864],[0.144,-7.911],[0.578,-1.143],[0.949,0.681],[2.374,0.372],[7.146,0.021],[52.661,0.008],[8.957,5.213],[3.351,11.818]],"o":[[1.571,5.283],[4.779,10.51],[6.347,1.536],[50.511,0.162],[5.247,0.005],[8.724,1.319],[0.739,1.756],[0.345,-0.024],[-0.326,-3.36],[-2.167,-8.615],[-13.165,-6.156],[-19.394,-1.112],[-10.773,-0.705],[-14.255,-6.274],[-0.632,-6.61],[0.048,-1.137],[6.676,2.397],[25.2,6.869],[7.064,-16.792],[-4.251,-25.863],[-0.796,-0.934],[1.51,0.142],[8.858,6.47],[18.928,25.5],[-1,17.995],[-12.177,13.261],[-12.868,-0.634],[0.43,4.427],[8.764,5.985],[17.789,1.579],[13.859,0.929],[11.807,3.577],[4.541,6.221],[-0.023,7.914],[-0.021,1.153],[-0.905,-0.743],[-2.169,-1.558],[-7.065,-1.108],[-52.661,-0.155],[-10.197,-0.001],[-10.676,-6.212],[-2.896,-10.212]],"v":[[-121.032,58.143],[-116.368,73.411],[-91.857,92.734],[-72.331,95.223],[79.204,95.275],[94.935,96.493],[113.163,110.969],[115.291,116.275],[116.327,116.206],[115.27,106.146],[99.143,88.948],[57.531,80.536],[-0.669,77.521],[-32.03,70.315],[-55.567,37.694],[-55.02,17.634],[-54.355,14.633],[-34.878,21.539],[24.458,-7.651],[29.595,-59.495],[-2.872,-127.703],[-3.759,-131.786],[0.708,-131.275],[23.711,-108.223],[50.801,-22.35],[31.987,25.883],[-13.426,44.078],[-49.089,32.782],[-39.414,45.692],[-10.354,55.206],[43.109,58.858],[84.298,64.503],[114.204,83.836],[121.469,104.875],[121.396,128.614],[119.738,132.044],[117.016,129.825],[110.417,125.423],[89.012,123.521],[-68.972,123.416],[-98.089,116.877],[-118.551,89.365]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.046535948211,0.414443550858,0.698039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[121.791,132.294],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"M/Eid-letters Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[447,358,0],"ix":2},"a":{"a":0,"k":[177,234.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16,"s":[{"i":[[19.33,0],[0,-17.949],[-19.33,0],[0,17.949]],"o":[[-19.33,0],[0,17.949],[19.33,0],[0,-17.949]],"v":[[395,333.5],[360,366],[395,398.5],[430,366]],"c":true}],"e":[{"i":[[18.955,3.791],[0,-17.949],[-19.33,0],[0,17.949]],"o":[[-155,-31],[0,17.949],[19.33,0],[0,-17.949]],"v":[[395,333.5],[284,470],[319,502.5],[430,366]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":26,"s":[{"i":[[18.955,3.791],[0,-17.949],[-19.33,0],[0,17.949]],"o":[[-155,-31],[0,17.949],[19.33,0],[0,-17.949]],"v":[[395,333.5],[284,470],[319,502.5],[430,366]],"c":true}],"e":[{"i":[[18.955,3.791],[0,-17.949],[-16.515,-10.046],[0,17.949]],"o":[[-155,-31],[0,17.949],[217,132],[0,-17.949]],"v":[[395,333.5],[168,464],[203,496.5],[430,366]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":38,"s":[{"i":[[18.955,3.791],[0,-17.949],[-16.515,-10.046],[0,17.949]],"o":[[-155,-31],[0,17.949],[217,132],[0,-17.949]],"v":[[395,333.5],[168,464],[203,496.5],[430,366]],"c":true}],"e":[{"i":[[8.815,17.203],[-0.868,-17.928],[-10,7],[0,17.949]],"o":[[-207,-404],[13,268.5],[208.081,-145.654],[0,-17.949]],"v":[[395,333.5],[141,83],[236,551.5],[421,568]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44,"s":[{"i":[[8.815,17.203],[-0.868,-17.928],[-10,7],[0,17.949]],"o":[[-207,-404],[13,268.5],[208.081,-145.654],[0,-17.949]],"v":[[395,333.5],[141,83],[236,551.5],[421,568]],"c":true}],"e":[{"i":[[8.904,17.157],[-121,-97.5],[-270,43],[0,17.949]],"o":[[-301,-580],[209.317,168.664],[250.833,-39.947],[0,-17.949]],"v":[[395,333.5],[32,84],[236,551.5],[421,568]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50,"s":[{"i":[[8.904,17.157],[-121,-97.5],[-270,43],[0,17.949]],"o":[[-301,-580],[209.317,168.664],[250.833,-39.947],[0,-17.949]],"v":[[395,333.5],[32,84],[236,551.5],[421,568]],"c":true}],"e":[{"i":[[8.904,17.157],[-85,-143.5],[-270,43],[0,17.949]],"o":[[-301,-580],[136.998,231.285],[250.833,-39.947],[0,-17.949]],"v":[[395,333.5],[-2,146],[202,613.5],[421,568]],"c":true}]},{"t":63.0000025660426}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.386,-4.245],[1.598,4.619],[2.608,6.321],[-4.087,-6.576]],"o":[[4.093,-3.155],[-2.202,-6.363],[-5.213,5.574],[2.42,3.895]],"v":[[152.378,205.634],[154.674,193.072],[147.012,174.25],[145.464,193.406]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.352,-6.311],[0.336,-13.427],[-4.214,-7.723],[-12.867,10.262],[-3.052,3.153],[-1.56,-3.275],[-11.438,9.821],[-4.476,10.63],[-2.437,6.673],[-3.574,-4.79],[-3.354,-3.906],[7.139,-11.656],[6.768,-9.317],[8.117,7.042],[3.823,-4.055],[10.174,3.021],[2.314,10.754],[5.104,-3.02],[9.34,12.862],[0.345,11.327],[0,19.187],[0.144,9.352]],"o":[[-0.658,6.387],[-0.748,13.411],[-0.215,8.566],[7.863,14.41],[3.317,-2.646],[1.247,3.129],[6.474,13.6],[8.997,-7.726],[2.82,-6.692],[3.149,4.939],[3.066,4.109],[8.895,10.356],[-5.583,9.113],[-3.762,-12.216],[-3.529,4.639],[-7.178,7.612],[-7.226,-2.146],[-1.584,6.311],[-12.703,7.512],[-6.864,-9.451],[-0.584,-19.17],[-0.001,-9.355],[0,0]],"v":[[37.694,76.381],[34.037,116.093],[32.308,156.352],[37.512,181.037],[74.36,188.637],[83.412,179.401],[87.383,189.266],[119.917,196.104],[138.491,167.421],[145.978,147.115],[155.653,162.098],[165.941,173.614],[169.35,207.13],[150.125,233.884],[129.519,207.823],[119.128,221.313],[92.875,228.352],[78.16,208.651],[68.231,222.354],[29.762,213.099],[19.553,181.378],[19.407,123.82],[19.314,69.156]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[-0.017,1.005],[-0.401,40.061],[6.175,21.01],[24.443,14.22],[25.532,-19.954],[1.967,-25.641],[-8.44,-14.225],[2.485,-1.879],[1.397,1.826],[3.187,6.491],[-1.463,18.779],[-23.602,18.074],[-34.665,-11.265],[-13.398,-23.511],[-2.664,-25.241],[1.111,-31.166],[1.377,-25.872],[0,-2.799]],"o":[[0.06,-1.004],[0.687,-40.057],[0.218,-21.769],[-7.84,-26.675],[-27.965,-16.27],[-20.344,15.898],[-1.272,16.576],[1.289,2.171],[-1.041,0.786],[-4.417,-5.768],[-8.349,-17.005],[2.32,-29.771],[29.138,-22.313],[25.611,8.323],[12.733,22.34],[3.283,31.122],[-0.924,25.889],[-0.121,2.264],[0,0]],"v":[[19.314,69.156],[19.49,66.144],[21.456,-54.031],[13.18,-118.352],[-33.712,-180.742],[-124.757,-174.553],[-157.743,-112.094],[-146.794,-66.039],[-145.659,-59.128],[-152.535,-62.07],[-164.515,-80.31],[-175.026,-134.412],[-135.401,-206.527],[-38.859,-222.619],[19.035,-173.766],[40.378,-102.055],[41.805,-8.574],[37.712,69.044],[37.694,76.381]],"c":false},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.046535948211,0.414443550858,0.698039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[176.74,234.135],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Moon/Eid-letters Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[378,242,0],"ix":2},"a":{"a":0,"k":[37.5,40,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[{"i":[[10.217,0],[0,-8.56],[-10.217,0],[0,8.56]],"o":[[-10.217,0],[0,8.56],[10.217,0],[0,-8.56]],"v":[[56,-26],[37.5,-10.5],[56,5],[74.5,-10.5]],"c":true}],"e":[{"i":[[10.217,0],[0,-8.56],[-10.217,0],[0,8.56]],"o":[[-10.217,0],[0,8.56],[10.217,0],[0,-8.56]],"v":[[56,-26],[-47.5,49.5],[36,11],[74.5,-10.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69,"s":[{"i":[[10.217,0],[0,-8.56],[-10.217,0],[0,8.56]],"o":[[-10.217,0],[0,8.56],[10.217,0],[0,-8.56]],"v":[[56,-26],[-47.5,49.5],[36,11],[74.5,-10.5]],"c":true}],"e":[{"i":[[10.217,0],[-3.655,-7.741],[-10.217,0],[0,8.56]],"o":[[-10.217,0],[89,188.5],[10.217,0],[0,-8.56]],"v":[[56,-26],[-47.5,49.5],[36,11],[74.5,-10.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":80,"s":[{"i":[[10.217,0],[-3.655,-7.741],[-10.217,0],[0,8.56]],"o":[[-10.217,0],[89,188.5],[10.217,0],[0,-8.56]],"v":[[56,-26],[-47.5,49.5],[36,11],[74.5,-10.5]],"c":true}],"e":[{"i":[[10.217,0],[-7.781,-3.568],[-10.217,0],[0,8.56]],"o":[[-10.217,0],[326,149.5],[10.217,0],[0,-8.56]],"v":[[56,-26],[-47.5,49.5],[36,11],[74.5,-10.5]],"c":true}]},{"t":89.0000036250443}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-15.658,0.156],[-10.218,-16.033],[-18.193,16.255],[16.324,3.105],[-1.53,18.101]],"o":[[-19.83,10.392],[9.625,15.104],[-4.724,13.95],[-21.217,-4.037],[1.779,-21.071]],"v":[[-0.114,-39.281],[-14.396,9.088],[36.881,14.827],[-3.499,36.176],[-35.351,-4.618]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.046535948211,0.414443550858,0.698039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.13,39.531],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"R/Eid-letters Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[340,558,0],"ix":2},"a":{"a":0,"k":[123.5,94.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45,"s":[{"i":[[20.435,0],[0,-17.397],[-20.435,0],[0,17.397]],"o":[[-20.435,0],[0,17.397],[20.435,0],[0,-17.397]],"v":[[272.5,-66.5],[235.5,-35],[272.5,-3.5],[309.5,-35]],"c":true}],"e":[{"i":[[30.652,0],[0,-46.944],[-30.652,0],[0,46.944]],"o":[[-30.652,0],[0,46.944],[30.652,0],[0,-46.944]],"v":[[253,-62.5],[197.5,22.5],[253,107.5],[308.5,22.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[{"i":[[30.652,0],[0,-46.944],[-30.652,0],[0,46.944]],"o":[[-30.652,0],[0,46.944],[30.652,0],[0,-46.944]],"v":[[253,-62.5],[197.5,22.5],[253,107.5],[308.5,22.5]],"c":true}],"e":[{"i":[[70.416,0],[0,-82.29],[-70.416,0],[0,82.29]],"o":[[-70.416,0],[0,82.29],[70.416,0],[0,-82.29]],"v":[[181,-62.5],[53.5,86.5],[181,235.5],[308.5,86.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":62,"s":[{"i":[[70.416,0],[0,-82.29],[-70.416,0],[0,82.29]],"o":[[-70.416,0],[0,82.29],[70.416,0],[0,-82.29]],"v":[[181,-62.5],[53.5,86.5],[181,235.5],[308.5,86.5]],"c":true}],"e":[{"i":[[99.964,0],[0,-80.081],[-99.964,0],[0,80.081]],"o":[[-99.964,0],[0,80.081],[99.964,0],[0,-80.081]],"v":[[127.5,-62.5],[-53.5,82.5],[127.5,227.5],[308.5,82.5]],"c":true}]},{"t":69.0000028104276}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.146,0.124],[-8.243,-4.776],[-38.109,6.854],[-16.072,7.476],[-9.628,14.094],[3.637,11.238],[4.163,6.798],[2.957,5.406],[-9.868,11.409],[-5.761,2.072],[-1.619,0.391],[-3.699,-10.748],[-3.418,-10.051],[14.678,-20.125],[17.747,-11.114],[24.294,4.112],[29.162,20.773],[6.105,4.777]],"o":[[7.927,5.319],[33.258,19.272],[17.404,-3.131],[15.188,-7.065],[6.436,-9.42],[-2.415,-7.462],[-3.234,-5.281],[-6.578,-12.025],[3.994,-4.618],[0.959,-0.343],[-8.897,10.434],[3.455,10.041],[8.077,23.754],[-12.208,16.739],[-21.088,13.205],[-35.496,-6.006],[-6.308,-4.493],[0.146,-0.125]],"v":[[-122.403,33.635],[-98.574,49.513],[8.324,68.802],[58.81,54.018],[97.266,23.724],[104.221,-7.421],[92.927,-28.471],[82.197,-43.676],[88.143,-82.786],[102.714,-92.925],[106.32,-93.811],[103.241,-61.692],[114.766,-31.969],[104.208,34.024],[60.388,77.071],[-7.983,89.699],[-104.496,48.299],[-122.842,34.008]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.046535948211,0.414443550858,0.698039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[123.092,94.061],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/emoji_shock.json b/external/rlottie/example/resource/emoji_shock.json new file mode 100644 index 000000000..65b69bcb6 --- /dev/null +++ b/external/rlottie/example/resource/emoji_shock.json @@ -0,0 +1 @@ +{"v":"4.5.7","fr":30,"ip":0,"op":90,"w":100,"h":100,"ddd":0,"assets":[{"id":"comp_43","layers":[{"ddd":0,"ind":0,"ty":4,"nm":"eyes","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-286,45.5,0]},"a":{"a":0,"k":[-252,-416.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.381,0],[0,-1.381],[1.381,0],[0,1.381]],"o":[[1.381,0],[0,1.381],[-1.381,0],[0,-1.381]],"v":[[70.5,-419],[73,-416.5],[70.5,-414],[68,-416.5]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.381,0],[0,-1.381],[1.381,0],[0,1.381]],"o":[[1.381,0],[0,1.381],[-1.381,0],[0,-1.381]],"v":[[97.5,-419],[100,-416.5],[97.5,-414],[95,-416.5]],"c":true}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.33,0.33,0.28,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"mn":"ADBE Vector Group"}],"ip":0,"op":92,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"eyes_white","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-286,45.5,0]},"a":{"a":0,"k":[-252,-416.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.59,0],[0,-3.59],[3.59,0],[0,3.59]],"o":[[3.59,0],[0,3.59],[-3.59,0],[0,-3.59]],"v":[[97.5,-423],[104,-416.5],[97.5,-410],[91,-416.5]],"c":true}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.98,0.95,0.94,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[97.38,-416.49],"ix":2},"a":{"a":0,"k":[97.38,-416.49],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":16,"s":[80,80],"e":[150,150]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":21,"s":[150,150],"e":[140,140]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":31,"s":[140,140],"e":[150,150]},{"i":{"x":[0.313,0.313],"y":[1,1]},"o":{"x":[0.069,0.069],"y":[0,0]},"n":["0p313_1_0p069_0","0p313_1_0p069_0"],"t":40,"s":[150,150],"e":[75,75]},{"i":{"x":[0.313,0.313],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"n":["0p313_1_0p167_0","0p313_1_0p167_0"],"t":60,"s":[75,75],"e":[80,80]},{"t":90}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.59,0],[0,-3.59],[3.59,0],[0,3.59]],"o":[[3.59,0],[0,3.59],[-3.59,0],[0,-3.59]],"v":[[70.5,-423],[77,-416.5],[70.5,-410],[64,-416.5]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.98,0.95,0.94,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[70.32,-416.373],"ix":2},"a":{"a":0,"k":[70.32,-416.373],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":16,"s":[80,80],"e":[150,150]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":21,"s":[150,150],"e":[140,140]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":31,"s":[140,140],"e":[150,150]},{"i":{"x":[0.313,0.313],"y":[1,1]},"o":{"x":[0.069,0.069],"y":[0,0]},"n":["0p313_1_0p069_0","0p313_1_0p069_0"],"t":40,"s":[150,150],"e":[75,75]},{"i":{"x":[0.313,0.313],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"n":["0p313_1_0p167_0","0p313_1_0p167_0"],"t":60,"s":[75,75],"e":[80,80]},{"t":90}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":92,"st":0,"bm":0,"sr":1}]},{"id":"comp_44","layers":[{"ddd":0,"ind":0,"ty":4,"nm":"mouth 3","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[50,65,0]},"a":{"a":0,"k":[84,-397,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.851,"y":1},"o":{"x":0.837,"y":0},"n":"0p851_1_0p837_0","t":7,"s":[{"i":[[-4.971,0],[0,-2.5],[4.971,0],[0,2.219]],"o":[[4.971,0],[0,2.594],[-4.971,0],[0,-2.344]],"v":[[84,-398.906],[91.5,-397],[84,-395],[76.75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406.812],[93,-397],[84,-386.75],[75,-397]],"c":true}]},{"i":{"x":0.577,"y":1},"o":{"x":0.563,"y":0},"n":"0p577_1_0p563_0","t":14,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406.812],[93,-397],[84,-386.75],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-405.5],[93,-397],[84,-389],[75,-397]],"c":true}]},{"i":{"x":0.615,"y":1},"o":{"x":0.586,"y":0},"n":"0p615_1_0p586_0","t":21,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-405.5],[93,-397],[84,-389],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406],[93,-397],[84,-388],[75,-397]],"c":true}]},{"i":{"x":0.531,"y":0.201},"o":{"x":0.778,"y":0},"n":"0p531_0p201_0p778_0","t":30,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406],[93,-397],[84,-388],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-403.375],[93,-397],[84,-389.625],[75,-397]],"c":true}]},{"i":{"x":0.683,"y":1},"o":{"x":0.587,"y":1},"n":"0p683_1_0p587_1","t":46,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-403.375],[93,-397],[84,-389.625],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-2.5],[4.971,0],[0,2.219]],"o":[[4.971,0],[0,2.594],[-4.971,0],[0,-2.344]],"v":[[84,-398.906],[91.5,-397],[84,-395],[76.75,-397]],"c":true}]},{"t":65}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":7,"s":[0.33,0.33,0.28,1],"e":[0.96,0.62,0.52,1]},{"t":9}]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":92,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"mouth_teeth","tt":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-118,60,0]},"a":{"a":0,"k":[-83.5,-402,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":[[68,-409.75],[101,-409.75],[101,-400],[68,-400]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.98,0.95,0.94,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":92,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"mouth 2","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[50,65,0]},"a":{"a":0,"k":[84,-397,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.851,"y":1},"o":{"x":0.837,"y":0},"n":"0p851_1_0p837_0","t":7,"s":[{"i":[[-4.971,0],[0,-2.5],[4.971,0],[0,2.219]],"o":[[4.971,0],[0,2.594],[-4.971,0],[0,-2.344]],"v":[[84,-398.906],[91.5,-397],[84,-395],[76.75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406.812],[93,-397],[84,-386.75],[75,-397]],"c":true}]},{"i":{"x":0.577,"y":1},"o":{"x":0.563,"y":0},"n":"0p577_1_0p563_0","t":14,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406.812],[93,-397],[84,-386.75],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-405.5],[93,-397],[84,-389],[75,-397]],"c":true}]},{"i":{"x":0.615,"y":1},"o":{"x":0.586,"y":0},"n":"0p615_1_0p586_0","t":21,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-405.5],[93,-397],[84,-389],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406],[93,-397],[84,-388],[75,-397]],"c":true}]},{"i":{"x":0.531,"y":0.201},"o":{"x":0.778,"y":0},"n":"0p531_0p201_0p778_0","t":30,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406],[93,-397],[84,-388],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-403.375],[93,-397],[84,-389.625],[75,-397]],"c":true}]},{"i":{"x":0.683,"y":1},"o":{"x":0.587,"y":1},"n":"0p683_1_0p587_1","t":46,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-403.375],[93,-397],[84,-389.625],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-2.5],[4.971,0],[0,2.219]],"o":[[4.971,0],[0,2.594],[-4.971,0],[0,-2.344]],"v":[[84,-398.906],[91.5,-397],[84,-395],[76.75,-397]],"c":true}]},{"t":65}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":7,"s":[0.33,0.33,0.28,1],"e":[0.96,0.62,0.52,1]},{"t":9}]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":92,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"mouth_teeth","tt":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[51.5,73.438,0]},"a":{"a":0,"k":[85.5,-388.562,0]},"s":{"a":1,"k":[{"i":{"x":[0.388,0.388,0.667],"y":[1,1,0.667]},"o":{"x":[0.559,0.559,0.333],"y":[0,0,0.333]},"n":["0p388_1_0p559_0","0p388_1_0p559_0","0p667_0p667_0p333_0p333"],"t":5,"s":[150,150,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0.167]},"n":["0p833_1_0p167_0","0p833_1_0p167_0","0p833_0p833_0p167_0p167"],"t":28,"s":[100,100,100],"e":[150,150,100]},{"t":54}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-8.284,0],[0,-4.418],[8.284,0],[0,4.418]],"o":[[8.284,0],[0,4.418],[-8.284,0],[0,-4.418]],"v":[[88,-393],[103,-385],[88,-377],[73,-385]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.85,0.53,0.43,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":92,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"mouth","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[50,65,0]},"a":{"a":0,"k":[84,-397,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.851,"y":1},"o":{"x":0.837,"y":0},"n":"0p851_1_0p837_0","t":7,"s":[{"i":[[-4.971,0],[0,-2.5],[4.971,0],[0,2.219]],"o":[[4.971,0],[0,2.594],[-4.971,0],[0,-2.344]],"v":[[84,-398.906],[91.5,-397],[84,-395],[76.75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406.812],[93,-397],[84,-386.75],[75,-397]],"c":true}]},{"i":{"x":0.577,"y":1},"o":{"x":0.563,"y":0},"n":"0p577_1_0p563_0","t":14,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406.812],[93,-397],[84,-386.75],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-405.5],[93,-397],[84,-389],[75,-397]],"c":true}]},{"i":{"x":0.615,"y":1},"o":{"x":0.586,"y":0},"n":"0p615_1_0p586_0","t":21,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-405.5],[93,-397],[84,-389],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406],[93,-397],[84,-388],[75,-397]],"c":true}]},{"i":{"x":0.531,"y":0.201},"o":{"x":0.778,"y":0},"n":"0p531_0p201_0p778_0","t":30,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-406],[93,-397],[84,-388],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-403.375],[93,-397],[84,-389.625],[75,-397]],"c":true}]},{"i":{"x":0.683,"y":1},"o":{"x":0.587,"y":1},"n":"0p683_1_0p587_1","t":46,"s":[{"i":[[-4.971,0],[0,-4.971],[4.971,0],[0,4.971]],"o":[[4.971,0],[0,4.971],[-4.971,0],[0,-4.971]],"v":[[84,-403.375],[93,-397],[84,-389.625],[75,-397]],"c":true}],"e":[{"i":[[-4.971,0],[0,-2.5],[4.971,0],[0,2.219]],"o":[[4.971,0],[0,2.594],[-4.971,0],[0,-2.344]],"v":[[84,-398.906],[91.5,-397],[84,-395],[76.75,-397]],"c":true}]},{"t":65}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.96,0.62,0.52,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":92,"st":0,"bm":0,"sr":1}]},{"id":"comp_45","layers":[{"ddd":0,"ind":0,"ty":4,"nm":"round_normal","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[50,50,0]},"a":{"a":0,"k":[-252,-412,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.673,0],[0,-17.673],[17.673,0],[0,17.673]],"o":[[17.673,0],[0,17.673],[-17.673,0],[0,-17.673]],"v":[[-252,-444],[-220,-412],[-252,-380],[-284,-412]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.88,0.59,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":300,"st":0,"bm":0,"sr":1}]}],"layers":[{"ddd":0,"ind":0,"ty":0,"nm":"eyes_O","parent":2,"refId":"comp_43","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.304],"y":[1]},"o":{"x":[0.446],"y":[0]},"n":["0p304_1_0p446_0"],"t":0,"s":[-11],"e":[0]},{"i":{"x":[0.304],"y":[0.304]},"o":{"x":[0.167],"y":[0.167]},"n":["0p304_0p304_0p167_0p167"],"t":15,"s":[0],"e":[0]},{"i":{"x":[0.049],"y":[1]},"o":{"x":[0.438],"y":[0]},"n":["0p049_1_0p438_0"],"t":46,"s":[0],"e":[-11]},{"t":90}]},"p":{"a":1,"k":[{"i":{"x":0.304,"y":1},"o":{"x":0.446,"y":0},"n":"0p304_1_0p446_0","t":0,"s":[45,50,0],"e":[50,50,0],"to":[1.33333337306976,1.125,0],"ti":[-1.33333337306976,1.1875,0]},{"i":{"x":0.304,"y":1},"o":{"x":0.167,"y":0},"n":"0p304_1_0p167_0","t":15,"s":[50,50,0],"e":[50,50,0],"to":[1.33333337306976,-1.1875,0],"ti":[-1.33333337306976,1.1875,0]},{"i":{"x":0.049,"y":1},"o":{"x":0.438,"y":0},"n":"0p049_1_0p438_0","t":46,"s":[50,50,0],"e":[45,50,0],"to":[1.33333337306976,-1.1875,0],"ti":[-1.33333337306976,-1.125,0]},{"t":90}]},"a":{"a":0,"k":[50,50,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":100,"h":100,"ip":0,"op":91,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":0,"nm":"mouth_O","parent":0,"refId":"comp_44","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.366],"y":[1]},"o":{"x":[0.446],"y":[0]},"n":["0p366_1_0p446_0"],"t":0,"s":[9],"e":[0]},{"i":{"x":[0.667],"y":[0.667]},"o":{"x":[0.333],"y":[0.333]},"n":["0p667_0p667_0p333_0p333"],"t":15,"s":[0],"e":[0]},{"i":{"x":[0.049],"y":[1]},"o":{"x":[0.501],"y":[0]},"n":["0p049_1_0p501_0"],"t":46,"s":[0],"e":[9]},{"t":90}]},"p":{"a":0,"k":[50,50,0]},"a":{"a":0,"k":[50,50,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":100,"h":100,"ip":0,"op":91,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":0,"nm":"base_normal","refId":"comp_45","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.425],"y":[0.675]},"o":{"x":[0.515],"y":[0]},"n":["0p425_0p675_0p515_0"],"t":0,"s":[-7],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.477],"y":[0.942]},"n":["0p667_1_0p477_0p942"],"t":15,"s":[0],"e":[2]},{"i":{"x":[0.531],"y":[0.354]},"o":{"x":[0.333],"y":[0]},"n":["0p531_0p354_0p333_0"],"t":30,"s":[2],"e":[0]},{"i":{"x":[0.361],"y":[1]},"o":{"x":[0.33],"y":[0.357]},"n":["0p361_1_0p33_0p357"],"t":46,"s":[0],"e":[-7]},{"t":90}]},"p":{"a":0,"k":[50,84.5,0]},"a":{"a":0,"k":[50,84.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":100,"h":100,"ip":0,"op":91,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/emoji_wink.json b/external/rlottie/example/resource/emoji_wink.json new file mode 100644 index 000000000..29b39a536 --- /dev/null +++ b/external/rlottie/example/resource/emoji_wink.json @@ -0,0 +1 @@ +{"v":"4.5.7","fr":30,"ip":0,"op":60,"w":100,"h":100,"ddd":0,"assets":[{"id":"comp_38","layers":[{"ddd":0,"ind":0,"ty":4,"nm":"round_normal","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[50,50,0]},"a":{"a":0,"k":[-252,-412,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.673,0],[0,-17.673],[17.673,0],[0,17.673]],"o":[[17.673,0],[0,17.673],[-17.673,0],[0,-17.673]],"v":[[-252,-444],[-220,-412],[-252,-380],[-284,-412]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.88,0.59,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":300,"st":0,"bm":0,"sr":1}]}],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"eyes_normal","parent":2,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[50,45.5,0]},"a":{"a":0,"k":[-252,-416.5,0]},"s":{"a":1,"k":[{"i":{"x":[0.516,0.831,0.667],"y":[0.516,1,0.667]},"o":{"x":[0.75,0.705,0.333],"y":[0.75,0,0.333]},"n":["0p516_0p516_0p75_0p75","0p831_1_0p705_0","0p667_0p667_0p333_0p333"],"t":40,"s":[100,100,100],"e":[100,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[0.667,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0.333,0,0.333]},"n":["0p667_0p667_0p333_0p333","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":45,"s":[100,0,100],"e":[100,110,100]},{"i":{"x":[0.298,0.276,0.667],"y":[0.298,1,0.667]},"o":{"x":[0.038,0.105,0.333],"y":[0.038,0,0.333]},"n":["0p298_0p298_0p038_0p038","0p276_1_0p105_0","0p667_0p667_0p333_0p333"],"t":50,"s":[100,110,100],"e":[100,98,100]},{"i":{"x":[0.667,0.667,0.667],"y":[0.667,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0.333,0,0.333]},"n":["0p667_0p667_0p333_0p333","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":55,"s":[100,98,100],"e":[100,100,100]},{"t":60}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.313,"y":1},"o":{"x":0.467,"y":0},"n":"0p313_1_0p467_0","t":6,"s":[{"i":[[-1.933,0],[0,-1.933],[1.933,0],[0,1.933]],"o":[[1.933,0],[0,1.933],[-1.933,0],[0,-1.933]],"v":[[-237.5,-420],[-234,-416.5],[-237.5,-413],[-241,-416.5]],"c":true}],"e":[{"i":[[-1.933,0],[-0.312,-1.313],[1.933,0],[0,1.062]],"o":[[1.933,0],[0.174,0.732],[-1.933,0],[0,-1.25]],"v":[[-237.437,-418],[-231.25,-415.875],[-237.5,-416.938],[-243.188,-415.937]],"c":true}]},{"i":{"x":0.395,"y":1},"o":{"x":0.716,"y":0},"n":"0p395_1_0p716_0","t":16,"s":[{"i":[[-1.933,0],[-0.312,-1.313],[1.933,0],[0,1.062]],"o":[[1.933,0],[0.174,0.732],[-1.933,0],[0,-1.25]],"v":[[-237.437,-418],[-231.25,-415.875],[-237.5,-416.938],[-243.188,-415.937]],"c":true}],"e":[{"i":[[-1.933,0],[0,-1.933],[1.933,0],[0,1.933]],"o":[[1.933,0],[0,1.933],[-1.933,0],[0,-1.933]],"v":[[-237.5,-420],[-234,-416.5],[-237.5,-413],[-241,-416.5]],"c":true}]},{"t":29}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.933,0],[0,-1.933],[1.933,0],[0,1.933]],"o":[[1.933,0],[0,1.933],[-1.933,0],[0,-1.933]],"v":[[-266.5,-420],[-263,-416.5],[-266.5,-413],[-270,-416.5]],"c":true}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.33,0.33,0.28,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"mn":"ADBE Vector Group"}],"ip":0,"op":61,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"mouth_smile","parent":2,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.75],"y":[0]},"n":["0p25_1_0p75_0"],"t":4,"s":[0],"e":[-15]},{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.75],"y":[0]},"n":["0p25_1_0p75_0"],"t":15,"s":[-15],"e":[0]},{"t":30}]},"p":{"a":0,"k":[50.862,57.489,0]},"a":{"a":0,"k":[-251.138,-404.511,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.292,"y":1},"o":{"x":0.506,"y":0},"n":"0p292_1_0p506_0","t":0,"s":[{"i":[[6.254,0],[2.91,1.715],[-0.616,0.558],[-0.707,-0.436],[-2.276,0],[-3.615,1.995],[-0.52,-0.71],[0.737,-0.384]],"o":[[-6.249,0],[-0.716,-0.422],[0.615,-0.558],[3.273,2.017],[2.662,0],[0.728,-0.402],[0.324,0.602],[-3.252,1.696]],"v":[[-252.006,-391.01],[-263.629,-394.434],[-263.522,-396.373],[-261.398,-396.454],[-252.006,-394.02],[-242.635,-396.433],[-240.261,-396.227],[-240.405,-394.414]],"c":true}],"e":[{"i":[[6.233,0],[4.195,4.639],[-0.616,0.558],[-0.558,-0.615],[-5.401,0],[-3.206,6.717],[-0.615,-0.557],[0.338,-0.759]],"o":[[-6.249,0],[-0.557,-0.616],[0.615,-0.558],[3.626,4.01],[4.636,0],[0.358,-0.75],[0.616,0.557],[-2.811,6.323]],"v":[[-252.044,-390.197],[-266.129,-396.746],[-266.022,-398.873],[-263.898,-398.767],[-252.076,-392.959],[-239.687,-401.031],[-237.564,-401.138],[-237.457,-399.012]],"c":true}]},{"i":{"x":0.564,"y":1},"o":{"x":0.571,"y":0},"n":"0p564_1_0p571_0","t":15,"s":[{"i":[[6.233,0],[4.195,4.639],[-0.616,0.558],[-0.558,-0.615],[-5.401,0],[-3.206,6.717],[-0.615,-0.557],[0.338,-0.759]],"o":[[-6.249,0],[-0.557,-0.616],[0.615,-0.558],[3.626,4.01],[4.636,0],[0.358,-0.75],[0.616,0.557],[-2.811,6.323]],"v":[[-252.044,-390.197],[-266.129,-396.746],[-266.022,-398.873],[-263.898,-398.767],[-252.076,-392.959],[-239.687,-401.031],[-237.564,-401.138],[-237.457,-399.012]],"c":true}],"e":[{"i":[[6.254,0],[2.91,1.715],[-0.616,0.558],[-0.707,-0.436],[-2.276,0],[-3.615,1.995],[-0.52,-0.71],[0.737,-0.384]],"o":[[-6.249,0],[-0.716,-0.422],[0.615,-0.558],[3.273,2.017],[2.662,0],[0.728,-0.402],[0.324,0.602],[-3.252,1.696]],"v":[[-252.006,-391.01],[-263.629,-394.434],[-263.522,-396.373],[-261.398,-396.454],[-252.006,-394.02],[-242.635,-396.433],[-240.261,-396.227],[-240.405,-394.414]],"c":true}]},{"i":{"x":0.681,"y":0.833},"o":{"x":0.546,"y":0},"n":"0p681_0p833_0p546_0","t":30,"s":[{"i":[[6.254,0],[2.91,1.715],[-0.616,0.558],[-0.707,-0.436],[-2.276,0],[-3.615,1.995],[-0.52,-0.71],[0.737,-0.384]],"o":[[-6.249,0],[-0.716,-0.422],[0.615,-0.558],[3.273,2.017],[2.662,0],[0.728,-0.402],[0.324,0.602],[-3.252,1.696]],"v":[[-252.006,-391.01],[-263.629,-394.434],[-263.522,-396.373],[-261.398,-396.454],[-252.006,-394.02],[-242.635,-396.433],[-240.261,-396.227],[-240.405,-394.414]],"c":true}],"e":[{"i":[[6.254,0],[2.91,1.715],[-0.616,0.558],[-0.734,-0.389],[-2.276,0],[-3.487,2.248],[-0.52,-0.71],[0.673,-0.488]],"o":[[-6.249,0],[-0.716,-0.422],[0.615,-0.558],[3.089,1.638],[2.662,0],[0.699,-0.451],[0.324,0.602],[-2.905,2.105]],"v":[[-252.006,-391.01],[-264.507,-394.555],[-264.401,-396.494],[-262.276,-396.576],[-252.006,-394.02],[-242.076,-396.998],[-239.702,-396.793],[-239.845,-394.98]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.497,"y":0.261},"n":"0p667_1_0p497_0p261","t":40,"s":[{"i":[[6.254,0],[2.91,1.715],[-0.616,0.558],[-0.734,-0.389],[-2.276,0],[-3.487,2.248],[-0.52,-0.71],[0.673,-0.488]],"o":[[-6.249,0],[-0.716,-0.422],[0.615,-0.558],[3.089,1.638],[2.662,0],[0.699,-0.451],[0.324,0.602],[-2.905,2.105]],"v":[[-252.006,-391.01],[-264.507,-394.555],[-264.401,-396.494],[-262.276,-396.576],[-252.006,-394.02],[-242.076,-396.998],[-239.702,-396.793],[-239.845,-394.98]],"c":true}],"e":[{"i":[[6.254,0],[2.91,1.715],[-0.616,0.558],[-0.707,-0.436],[-2.276,0],[-3.615,1.995],[-0.52,-0.71],[0.737,-0.384]],"o":[[-6.249,0],[-0.716,-0.422],[0.615,-0.558],[3.273,2.017],[2.662,0],[0.728,-0.402],[0.324,0.602],[-3.252,1.696]],"v":[[-252.006,-391.01],[-263.629,-394.434],[-263.522,-396.373],[-261.398,-396.454],[-252.006,-394.02],[-242.635,-396.433],[-240.261,-396.227],[-240.405,-394.414]],"c":true}]},{"t":60}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.33,0.33,0.28,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":61,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":0,"nm":"base_normal","refId":"comp_38","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.273],"y":[1]},"o":{"x":[0.464],"y":[0]},"n":["0p273_1_0p464_0"],"t":4,"s":[0],"e":[13]},{"i":{"x":[0.532],"y":[1]},"o":{"x":[0.578],"y":[0]},"n":["0p532_1_0p578_0"],"t":19,"s":[13],"e":[0]},{"t":40}]},"p":{"a":0,"k":[50,50,0]},"a":{"a":0,"k":[50,50,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":100,"h":100,"ip":0,"op":61,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/file_transfer.json b/external/rlottie/example/resource/file_transfer.json new file mode 100644 index 000000000..ef823ffbd --- /dev/null +++ b/external/rlottie/example/resource/file_transfer.json @@ -0,0 +1 @@ +{"v":"5.0.6","fr":25,"ip":0,"op":50,"w":503,"h":495,"nm":"file transfer","ddd":0,"assets":[{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[90.033,347.439,0],"ix":2},"a":{"a":0,"k":[64.5,97.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-17.824,0],[0,0]],"o":[[0,0],[0,17.824],[0,0],[0,0]],"v":[[-47,-79.75],[-47,47.477],[-14.727,79.75],[47,79.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.122000002394,0.187999994615,0.277999997606,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[64.5,97.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":10}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[0],"e":[100]},{"t":20}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":36,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 7 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[100],"e":[0]},{"t":23}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[90],"e":[72]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[72],"e":[38]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":7,"s":[38],"e":[0]},{"t":8}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[42.545,272.726,0],"e":[42.545,283.601,0],"to":[0,1.8125,0],"ti":[0,-5.89583349227905,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":1,"s":[42.545,283.601,0],"e":[42.545,308.101,0],"to":[0,5.89583349227905,0],"ti":[0,-7.75,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2,"s":[42.545,308.101,0],"e":[42.545,330.101,0],"to":[0,7.75,0],"ti":[0,-7.47916650772095,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[42.545,330.101,0],"e":[42.545,352.976,0],"to":[0,7.47916650772095,0],"ti":[0,-8.41666698455811,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":4,"s":[42.545,352.976,0],"e":[42.545,380.601,0],"to":[0,8.41666698455811,0],"ti":[-0.33333334326744,-8.5625,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[42.545,380.601,0],"e":[44.545,404.351,0],"to":[0.33333334326744,8.5625,0],"ti":[-2.875,-6.91666650772095,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[44.545,404.351,0],"e":[59.795,422.101,0],"to":[2.875,6.91666650772095,0],"ti":[-6.0625,-3.8125,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":7,"s":[59.795,422.101,0],"e":[80.92,427.226,0],"to":[6.0625,3.8125,0],"ti":[-7.52083349227905,-0.85416668653488,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":8,"s":[80.92,427.226,0],"e":[104.92,427.226,0],"to":[7.52083349227905,0.85416668653488,0],"ti":[-8.25,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":9,"s":[104.92,427.226,0],"e":[130.42,427.226,0],"to":[8.25,0,0],"ti":[-4.25,0,0]},{"t":10}],"ix":2},"a":{"a":0,"k":[28.637,39.774,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-11.137,-22.274],[11.137,0],[-11.137,22.274]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.122000002394,0.187999994615,0.277999997606,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[28.637,39.774],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":36,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[251.5,247.5,0],"ix":2},"a":{"a":0,"k":[251.5,247.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":503,"h":495,"ip":0,"op":100,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[251.5,247.5,0],"ix":2},"a":{"a":0,"k":[251.5,247.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":503,"h":495,"ip":0,"op":100,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":20,"s":[152.057,121.25,0],"e":[350.557,373.25,0],"to":[2.08333325386047,63,0],"ti":[-199.744842529297,-2.53560209274292,0]},{"t":35}],"ix":2},"a":{"a":0,"k":[152.25,121.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-3.7],[0,0],[-3.7,0],[0,0],[0,3.7],[0,0],[3.7,0],[0,0],[0,0]],"o":[[-3.7,0],[0,0],[0,3.7],[0,0],[3.7,0],[0,0],[0,-3.7],[0,0],[0,0],[0,0]],"v":[[-138.3,-114.25],[-145,-107.55],[-145,107.65],[-138.3,114.35],[138.3,114.35],[145,107.65],[145,-66.65],[138.3,-73.35],[-12.2,-73.35],[-45.5,-114.25]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.5,0],[0,0],[0,7.6],[0,0],[-7.6,0],[0,0],[0,0],[0,0],[0,-7.6],[0,0]],"o":[[0,0],[-7.5,0],[0,0],[0,-7.6],[0,0],[0,0],[0,0],[7.5,0],[0,0],[0,7.5]],"v":[[138.3,121.25],[-138.3,121.25],[-152,107.55],[-152,-107.55],[-138.3,-121.25],[-42.1,-121.25],[-8.8,-80.25],[138.3,-80.25],[152,-66.55],[152,107.65]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.122000002394,0.187999994615,0.277999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[152.25,121.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.412,0],[0,0],[0,7.412],[0,0],[-7.412,0],[0,0],[0,0],[0,0],[0,-7.412],[0,0]],"o":[[0,0],[-7.315,0],[0,0],[0,-7.315],[0,0],[0,0],[0,0],[7.314,0],[0,0],[0,7.315]],"v":[[134.878,118.25],[-134.878,118.25],[-148.239,104.889],[-148.239,-104.889],[-134.878,-118.25],[-41.059,-118.25],[-8.582,-78.265],[134.878,-78.265],[148.239,-64.903],[148.239,104.986]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[152.193,121.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":20,"s":[350.557,373.25,0],"e":[152.057,121.25,0],"to":[9.91666698455811,-261,0],"ti":[0,0,0]},{"t":35}],"ix":2},"a":{"a":0,"k":[152.25,121.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-3.7],[0,0],[-3.7,0],[0,0],[0,3.7],[0,0],[3.7,0],[0,0],[0,0],[0,0]],"o":[[-3.7,0],[0,0],[0,3.7],[0,0],[3.7,0],[0,0],[0,-3.7],[0,0],[0,0],[0,0],[0,0]],"v":[[-138.3,-114.25],[-145,-107.55],[-145,107.65],[-138.3,114.35],[138.3,114.35],[145,107.65],[145,-66.65],[138.3,-73.35],[-12.1,-73.35],[-45.401,-114.35],[-138.3,-114.35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[7.6,0],[0,0],[0,7.6],[0,0],[-7.6,0],[0,0],[0,0],[0,0],[0,-7.6],[0,0]],"o":[[0,0],[-7.5,0],[0,0],[0,-7.5],[0,0],[0,0],[0,0],[7.5,0],[0,0],[0,7.5]],"v":[[138.3,121.25],[-138.3,121.25],[-152,107.55],[-152,-107.55],[-138.3,-121.25],[-42.1,-121.25],[-8.8,-80.25],[138.3,-80.25],[152,-66.55],[152,107.65]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.122000002394,0.187999994615,0.277999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[152.25,121.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.35,0],[0,0],[0,7.35],[0,0],[-7.349,0],[0,0],[0,0],[0,0],[0,-7.35],[0,0]],"o":[[0,0],[-7.253,0],[0,0],[0,-7.253],[0,0],[0,0],[0,0],[7.253,0],[0,0],[0,7.253]],"v":[[133.738,117.25],[-133.738,117.25],[-146.985,104.002],[-146.985,-104.002],[-133.738,-117.25],[-40.71,-117.25],[-8.51,-77.603],[133.738,-77.603],[146.986,-64.354],[146.986,104.099]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[152.25,121.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/fingerprint_success.json b/external/rlottie/example/resource/fingerprint_success.json new file mode 100644 index 000000000..e03655069 --- /dev/null +++ b/external/rlottie/example/resource/fingerprint_success.json @@ -0,0 +1 @@ +{"v":"5.1.16","fr":60,"ip":0,"op":154,"w":800,"h":600,"nm":"Fingerprint Added","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"check-mark","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":114.999,"s":[0],"e":[100]},{"t":125.999075247122}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[478,200,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":112.999,"s":[40.225,40.225,100],"e":[90.225,90.225,100]},{"t":128.999075247122}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.58,0.581],[0,0],[-0.586,0.586],[0,0],[-0.586,-0.586],[0,0],[0,0],[-0.578,-0.593],[0,0],[0.593,-0.578],[0,0]],"o":[[0,0],[-0.586,-0.586],[0,0],[0.586,-0.586],[0,0],[0,0],[0.593,-0.578],[0,0],[0.578,0.593],[0,0],[-0.588,0.573]],"v":[[-6.426,14.748],[-20.11,1.063],[-20.11,-1.059],[-16.575,-4.594],[-14.454,-4.594],[-5.306,4.553],[14.506,-14.756],[16.627,-14.729],[20.117,-11.148],[20.09,-9.027],[-4.318,14.761]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":77,"op":757.023023023023,"st":-143.877877877878,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[478,200,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":91,"s":[118,118,100],"e":[83.4,83.4,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":104,"s":[83.4,83.4,100],"e":[100,100,100]},{"t":114}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":506.533,"s":[{"i":[[27.5,0],[0,0],[0,27.5],[0,0],[-27.5,0],[0,0],[0,-27.5],[0,0]],"o":[[0,0],[-27.5,0],[0,0],[0,-27.5],[0,0],[27.5,0],[0,0],[0,27.5]],"v":[[0,50],[0,50],[-50,0],[-50,0],[0,-50],[0,-50],[50,0],[50,0]],"c":true}],"e":[{"i":[[27.5,0],[0,0],[0,27.5],[0,0],[-27.5,0],[0,0],[0,-27.5],[0,0]],"o":[[0,0],[-27.5,0],[0,0],[0,-27.5],[0,0],[27.5,0],[0,0],[0,27.5]],"v":[[77.5,50],[-77.5,50],[-127.5,0],[-127.5,0],[-77.5,-50],[77.5,-50],[127.5,0],[127.5,0]],"c":true}]},{"t":526.552734375}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.227450980392,0.717647058824,0.23137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":74,"op":574.600600600601,"st":-26,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"bg","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":460.461,"s":[35],"e":[0]},{"t":490.490234375}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400.5,299.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-11.083,111.167],[-18.417,129.833]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 19","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-31.333],[0,0]],"o":[[0,0],[0,26.833],[0,0]],"v":[[-2.917,0.375],[1.25,47.375],[-4.75,89.625]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.5,-1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 18","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[16.5,-45.333]],"o":[[0,0],[0,0]],"v":[[21.083,65.167],[4.75,129.833]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 17","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,34.5],[0.343,7.079],[-15.143,3.994],[-2.486,-6.934],[0,0]],"o":[[0,0],[0,-34.5],[-0.312,-6.447],[15.167,-4],[4.909,13.694],[0,0]],"v":[[-40.371,123.25],[-20.538,49.917],[-24.38,1.838],[-7.871,-22.25],[18.462,-7.583],[22.962,42.625]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 16","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-11.333,0],[-9.167,-11.792],[0,-58.958],[0,0]],"o":[[0,0],[10.833,0],[7.836,10.081],[0,35.958],[0,0]],"v":[[-18.417,-41.083],[-2.583,-43.75],[30.25,-27.917],[44.417,52.625],[30.25,123.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.5,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 15","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.218,33.169],[0,12.439],[0,0]],"o":[[0,0],[1.75,-26.167],[0,-22.363],[0,0]],"v":[[-59.375,115.875],[-41.875,56.792],[-45.744,2.238],[-35.625,-28.375]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 14","np":3,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-51.333],[0,0]],"o":[[0,0],[0,41.022],[0,0]],"v":[[57.417,-21.5],[65.083,46.5],[55.917,114.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 13","np":3,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.5,13],[0,15.5],[-25.188,12.89],[0,0]],"o":[[0,0],[-0.5,-13],[0,-15.5],[49.667,-25.417],[0,0]],"v":[[-64.25,56.042],[-63.5,32.625],[-67.333,-1.875],[-34.167,-57.125],[48.333,-40.708]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 12","np":3,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.5,11.25]],"o":[[0,0],[0,0]],"v":[[-23,35.875],[-12,9.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-56,68.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 11","np":3,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[25.588,51.877],[0.253,0.286]],"o":[[-0.862,-0.039],[-12.167,-24.667],[0,0]],"v":[[83.122,95.5],[73.789,-41.833],[39.122,-75.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 10","np":3,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[37.69,-39.496],[0.227,-12.901],[0,-12.5],[0,0]],"o":[[0,0],[-22.167,23.229],[-0.229,12.998],[0,29.875],[0,0]],"v":[[18.047,-83.903],[-66.12,-59.632],[-88.229,0.347],[-84.703,39.347],[-95.703,89.597]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 9","np":3,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.346,-17.25]],"o":[[0,0],[0,0]],"v":[[108.577,39.125],[107.577,65.875]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 8","np":3,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-52.475,-34.419],[0,0],[0,0]],"o":[[0,0],[46.5,30.5],[0,0],[0,0]],"v":[[-44.5,-100.374],[58.25,-89.29],[106.75,6.46],[107.5,16.21]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2,18],[0,15.375],[-45.25,31.75]],"o":[[0,0],[-2,-18],[0,-15.375],[0,0]],"v":[[-111.125,71.625],[-106.125,41.625],[-110.125,3],[-64.875,-88.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 5","np":3,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[35.5,34.75],[0,0]],"o":[[0,0],[-34.746,-34.012],[0,0]],"v":[[126.531,-3.938],[89.281,-91.854],[17.531,-127.937]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[31.5,-19.5],[0,0]],"o":[[0,0],[-31.5,19.5],[0,0]],"v":[[-4.75,-129.937],[-71,-110.687],[-118.75,-56.937]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-22.25],[0,0]],"o":[[0,0],[0,22.25],[0,0]],"v":[[-128.25,-36.875],[-133.5,-0.125],[-126.5,40.375]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.509803921569,0.427450980392,0.827450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":34}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":20,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Scan","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":338.338,"s":[100],"e":[0]},{"t":368.369140625}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400.5,299.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-11.083,111.167],[-18.417,129.833]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 19","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-31.333],[0,0]],"o":[[0,0],[0,26.833],[0,0]],"v":[[-2.917,0.375],[1.25,47.375],[-4.75,89.625]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.5,-1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 18","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[16.5,-45.333]],"o":[[0,0],[0,0]],"v":[[21.083,65.167],[4.75,129.833]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 17","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,34.5],[0.343,7.079],[-15.143,3.994],[-2.486,-6.934],[0,0]],"o":[[0,0],[0,-34.5],[-0.312,-6.447],[15.167,-4],[4.909,13.694],[0,0]],"v":[[-40.371,123.25],[-20.538,49.917],[-24.38,1.838],[-7.871,-22.25],[18.462,-7.583],[22.962,42.625]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 16","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-11.333,0],[-9.167,-11.792],[0,-58.958],[0,0]],"o":[[0,0],[10.833,0],[7.836,10.081],[0,35.958],[0,0]],"v":[[-18.417,-41.083],[-2.583,-43.75],[30.25,-27.917],[44.417,52.625],[30.25,123.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.5,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 15","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.218,33.169],[0,12.439],[0,0]],"o":[[0,0],[1.75,-26.167],[0,-22.363],[0,0]],"v":[[-59.375,115.875],[-41.875,56.792],[-45.744,2.238],[-35.625,-28.375]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 14","np":3,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-51.333],[0,0]],"o":[[0,0],[0,41.022],[0,0]],"v":[[57.417,-21.5],[65.083,46.5],[55.917,114.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 13","np":3,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.5,13],[0,15.5],[-25.188,12.89],[0,0]],"o":[[0,0],[-0.5,-13],[0,-15.5],[49.667,-25.417],[0,0]],"v":[[-64.25,56.042],[-63.5,32.625],[-67.333,-1.875],[-34.167,-57.125],[48.333,-40.708]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 12","np":3,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.5,11.25]],"o":[[0,0],[0,0]],"v":[[-23,35.875],[-12,9.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-56,68.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 11","np":3,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[25.588,51.877],[0.253,0.286]],"o":[[-0.862,-0.039],[-12.167,-24.667],[0,0]],"v":[[83.122,95.5],[73.789,-41.833],[39.122,-75.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 10","np":3,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[37.69,-39.496],[0.227,-12.901],[0,-12.5],[0,0]],"o":[[0,0],[-22.167,23.229],[-0.229,12.998],[0,29.875],[0,0]],"v":[[18.047,-83.903],[-66.12,-59.632],[-88.229,0.347],[-84.703,39.347],[-95.703,89.597]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 9","np":3,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.346,-17.25]],"o":[[0,0],[0,0]],"v":[[108.577,39.125],[107.577,65.875]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 8","np":3,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-52.475,-34.419],[0,0],[0,0]],"o":[[0,0],[46.5,30.5],[0,0],[0,0]],"v":[[-44.5,-100.374],[58.25,-89.29],[106.75,6.46],[107.5,16.21]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2,18],[0,15.375],[-45.25,31.75]],"o":[[0,0],[-2,-18],[0,-15.375],[0,0]],"v":[[-111.125,71.625],[-106.125,41.625],[-110.125,3],[-64.875,-88.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 5","np":3,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[35.5,34.75],[0,0]],"o":[[0,0],[-34.746,-34.012],[0,0]],"v":[[126.531,-3.938],[89.281,-91.854],[17.531,-127.937]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[31.5,-19.5],[0,0]],"o":[[0,0],[-31.5,19.5],[0,0]],"v":[[-4.75,-129.937],[-71,-110.687],[-118.75,-56.937]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-22.25],[0,0]],"o":[[0,0],[0,22.25],[0,0]],"v":[[-128.25,-36.875],[-133.5,-0.125],[-126.5,40.375]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.23137254902,0.658823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":38,"s":[0],"e":[100]},{"t":96}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":20,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/funky_chicken.json b/external/rlottie/example/resource/funky_chicken.json new file mode 100644 index 000000000..9870f7160 --- /dev/null +++ b/external/rlottie/example/resource/funky_chicken.json @@ -0,0 +1 @@ +{"v":"5.1.14","fr":30,"ip":0,"op":32,"w":512,"h":512,"nm":"cipa 3","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"cipa","refId":"comp_1","sr":0.8,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[442,468,0],"ix":2},"a":{"a":0,"k":[450,450,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":900,"h":900,"ip":0,"op":32,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Слой-фигура 1","sr":1,"ks":{"o":{"a":0,"k":36,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[442,440,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":0,"s":[103.311,100,100],"e":[85,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":8,"s":[85,100,100],"e":[103.311,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":16,"s":[103.311,100,100],"e":[85,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":24,"s":[85,100,100],"e":[103.311,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":32,"s":[103.311,100,100],"e":[85,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":40,"s":[85,100,100],"e":[103.311,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":49,"s":[103.311,100,100],"e":[85,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":57,"s":[85,100,100],"e":[103.311,100,100]},{"t":65}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[327.625,10.68],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Контур прямоугольника 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.582368259804,0.582368259804,0.582368259804,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.812,290.66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,132.703],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Прямоугольник 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":32,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Кривые ochki","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[297.64,420.945,0],"ix":2},"a":{"a":0,"k":[297.64,420.945,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[62.833,-11.624],[0,0],[17.986,-6.775],[0.333,-10.334],[3,-6],[2.333,7.333],[-2.726,8.808],[-4.655,2.007],[0,0],[-25.667,5.333],[0,0]],"o":[[0,0],[-70.215,12.99],[0.12,-1.267],[-12.802,4.822],[-0.333,10.333],[-3,6],[-2.333,-7.333],[2.167,-7],[30.525,-13.156],[0,0],[25.666,-5.333],[0,0]],"v":[[98.247,-45.334],[59.58,56.999],[-31.331,-27.111],[-83.333,-10.978],[-101.333,5.021],[-101.666,62.354],[-124.333,70.354],[-115.333,-4.812],[-102.501,-17.593],[-31.331,-50.778],[46.914,-70.334],[90.247,-78.376]],"c":false}],"e":[{"i":[[0,0],[59.667,-10],[0,0],[17.986,-6.775],[0.333,-10.334],[3,-6],[2.333,7.333],[-2.726,8.808],[-4.655,2.007],[0,0],[-25.667,5.333],[0,0]],"o":[[0,0],[-70.424,11.803],[0.12,-1.267],[-12.802,4.822],[-0.333,10.333],[-3,6],[-2.333,-7.333],[2.167,-7],[30.525,-13.156],[0,0],[25.666,-5.333],[0,0]],"v":[[134.139,-50.603],[88.999,52.688],[5.999,-32.978],[-100.333,-6.978],[-118.333,9.021],[-118.666,66.354],[-141.333,74.354],[-132.333,-0.812],[-119.501,-13.594],[5.999,-56.646],[76.334,-74.646],[124.143,-83.369]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[59.667,-10],[0,0],[17.986,-6.775],[0.333,-10.334],[3,-6],[2.333,7.333],[-2.726,8.808],[-4.655,2.007],[0,0],[-25.667,5.333],[0,0]],"o":[[0,0],[-70.424,11.803],[0.12,-1.267],[-12.802,4.822],[-0.333,10.333],[-3,6],[-2.333,-7.333],[2.167,-7],[30.525,-13.156],[0,0],[25.666,-5.333],[0,0]],"v":[[134.139,-50.603],[88.999,52.688],[5.999,-32.978],[-100.333,-6.978],[-118.333,9.021],[-118.666,66.354],[-141.333,74.354],[-132.333,-0.812],[-119.501,-13.594],[5.999,-56.646],[76.334,-74.646],[124.143,-83.369]],"c":false}],"e":[{"i":[[0,0],[62.833,-11.624],[0,0],[17.986,-6.775],[0.333,-10.334],[3,-6],[2.333,7.333],[-2.726,8.808],[-4.655,2.007],[0,0],[-25.667,5.333],[0,0]],"o":[[0,0],[-70.215,12.99],[0.12,-1.267],[-12.802,4.822],[-0.333,10.333],[-3,6],[-2.333,-7.333],[2.167,-7],[30.525,-13.156],[0,0],[25.666,-5.333],[0,0]],"v":[[98.247,-45.334],[59.58,56.999],[-31.331,-27.111],[-83.333,-10.978],[-101.333,5.021],[-101.666,62.354],[-124.333,70.354],[-115.333,-4.812],[-102.501,-17.594],[-31.331,-50.778],[46.914,-70.334],[90.247,-78.376]],"c":false}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[260.333,426.312],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[3.34,20.121],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.586,-15.689],[-6.773,-7.368],[-35.44,22.897]],"c":true}],"e":[{"i":[[4.375,20.5],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-4.638,-21.232],[27.639,-11.958],[-1.901,17.366]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[4.375,20.5],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-4.638,-21.232],[27.639,-11.958],[-1.901,17.366]],"c":true}],"e":[{"i":[[3.34,20.121],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.586,-15.689],[-6.773,-7.368],[-35.44,22.897]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[399.167,397],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-37.857,7.499],[-8.502,7.569],[-38.857,-1.626]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-1.965,2.23],[25.91,2.98],[-2.965,-6.895]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-1.965,2.23],[25.91,2.98],[-2.965,-6.895]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-37.857,7.499],[-8.502,7.569],[-38.857,-1.626]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.783999992819,0.039000002543,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[398.812,383.062],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[4.125,20.75],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.586,-15.689],[-6.773,-7.368],[-36.586,22.311]],"c":true}],"e":[{"i":[[4.125,20.75],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-4.694,-20.958],[27.639,-11.958],[-0.694,17.042]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[4.125,20.75],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-4.694,-20.958],[27.639,-11.958],[-0.694,17.042]],"c":true}],"e":[{"i":[[4.125,20.75],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.586,-15.689],[-6.773,-7.368],[-36.586,22.311]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.579999976065,0.039000002543,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[399.167,397],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[-78.198,17.874],[7.634,11.583],[26,-3.667],[0,0]],"o":[[0,0],[54.631,-12.487],[-9.667,-14.667],[-25.958,3.661],[0,0]],"v":[[-84.836,-16.046],[-6.919,60.121],[27.414,-54.546],[-38.744,-60.302],[-96.586,-50.296]],"c":false}],"e":[{"i":[[0,0],[-69.656,15.715],[7.634,11.583],[26,-3.667],[0,0]],"o":[[0,0],[54.666,-12.334],[-9.667,-14.667],[-25.958,3.661],[0,0]],"v":[[-48.944,-21.315],[22.501,55.81],[56.834,-58.858],[-5.833,-64.858],[-62.69,-55.289]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[-69.656,15.715],[7.634,11.583],[26,-3.667],[0,0]],"o":[[0,0],[54.666,-12.334],[-9.667,-14.667],[-25.958,3.661],[0,0]],"v":[[-48.944,-21.315],[22.501,55.81],[56.834,-58.858],[-5.833,-64.858],[-62.69,-55.289]],"c":false}],"e":[{"i":[[0,0],[-78.198,17.874],[7.634,11.583],[26,-3.667],[0,0]],"o":[[0,0],[54.631,-12.487],[-9.667,-14.667],[-25.958,3.661],[0,0]],"v":[[-84.836,-16.046],[-6.919,60.121],[27.414,-54.546],[-38.744,-60.302],[-96.586,-50.296]],"c":false}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[444.166,398.858],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[0,0],[-47.667,7.666],[0,0],[0,0],[60.667,-11],[0,0],[0,0]],"o":[[0,0],[0,0],[47.667,-7.667],[0,0],[0,0],[-60.666,11],[0,0],[0,0]],"v":[[-159.381,42.754],[-82.245,6.333],[43.747,-23.188],[151.414,-38.522],[140.08,-40.522],[41.08,-27.522],[-85.934,3.188],[-155.787,36.774]],"c":true}],"e":[{"i":[[0,0],[0,0],[-47.667,7.666],[0,0],[0,0],[60.667,-11],[0,0],[0,0]],"o":[[0,0],[0,0],[47.667,-7.667],[0,0],[0,0],[-60.666,11],[0,0],[0,0]],"v":[[-175.833,43.833],[-44.833,-0.167],[77.643,-28.181],[180.833,-42.833],[169.5,-44.833],[74.976,-32.515],[-48.833,-4.167],[-172.501,39.501]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[-47.667,7.666],[0,0],[0,0],[60.667,-11],[0,0],[0,0]],"o":[[0,0],[0,0],[47.667,-7.667],[0,0],[0,0],[-60.666,11],[0,0],[0,0]],"v":[[-175.833,43.833],[-44.833,-0.167],[77.643,-28.181],[180.833,-42.833],[169.5,-44.833],[74.976,-32.515],[-48.833,-4.167],[-172.501,39.501]],"c":true}],"e":[{"i":[[0,0],[0,0],[-47.667,7.666],[0,0],[0,0],[60.667,-11],[0,0],[0,0]],"o":[[0,0],[0,0],[47.667,-7.667],[0,0],[0,0],[-60.666,11],[0,0],[0,0]],"v":[[-159.381,42.754],[-82.245,6.333],[43.747,-23.188],[151.414,-38.522],[140.08,-40.522],[41.08,-27.522],[-85.934,3.188],[-155.787,36.774]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039000002543,0.732999973671,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[307.833,374.833],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[2,-5],[-2.084,-0.811],[-1.333,2.333],[0,0],[-3,1.666]],"o":[[0,0],[0,0],[0,0],[-2,5],[6,2.333],[1.333,-2.333],[0,0],[3,-1.667]],"v":[[39.712,-40.466],[37.379,-61.133],[-33.958,-29.666],[-45.625,-16.666],[-52.958,59.667],[-31.958,49.667],[-31.291,-14.666],[-24.625,-20.666]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[2,-5],[-2.084,-0.811],[-1.333,2.333],[0,0],[-3,1.666]],"o":[[0,0],[0,0],[0,0],[-2,5],[6,2.333],[1.333,-2.333],[0,0],[3,-1.667]],"v":[[77.042,-46.333],[74.709,-67],[-50.958,-25.666],[-62.625,-12.666],[-69.958,63.667],[-48.958,53.667],[-48.291,-10.666],[-41.625,-16.666]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[0,0],[2,-5],[-2.084,-0.811],[-1.333,2.333],[0,0],[-3,1.666]],"o":[[0,0],[0,0],[0,0],[-2,5],[6,2.333],[1.333,-2.333],[0,0],[3,-1.667]],"v":[[77.042,-46.333],[74.709,-67],[-50.958,-25.666],[-62.625,-12.666],[-69.958,63.667],[-48.958,53.667],[-48.291,-10.666],[-41.625,-16.666]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[2,-5],[-2.084,-0.811],[-1.333,2.333],[0,0],[-3,1.666]],"o":[[0,0],[0,0],[0,0],[-2,5],[6,2.333],[1.333,-2.333],[0,0],[3,-1.667]],"v":[[39.712,-40.466],[37.379,-61.133],[-33.958,-29.666],[-45.625,-16.666],[-52.958,59.667],[-31.958,49.667],[-31.291,-14.666],[-24.625,-20.666]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.109999997008,0.313999998803,0.596000043084,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.292,438.667],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 7","np":2,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[-17.553,4.111],[-4.534,0],[-3,-8.333],[48.215,-10.557],[1,8.333],[-6.167,2.5]],"o":[[18.5,-4.333],[4.666,0],[3,8.333],[-51,11.167],[-1,-8.334],[6.969,-2.826]],"v":[[-49.105,-45.549],[-1.36,-53.772],[11.473,-44.105],[-14.527,49.228],[-89.438,-19.882],[-80.438,-36.382]],"c":true}],"e":[{"i":[[-17.553,4.111],[-4.534,0],[-3,-8.333],[48.215,-10.557],[1,8.333],[-6.167,2.5]],"o":[[18.5,-4.333],[4.666,0],[3,8.333],[-51,11.167],[-1,-8.334],[6.969,-2.826]],"v":[[-11.774,-51.417],[32.536,-58.765],[45.369,-49.098],[14.893,44.917],[-52.107,-25.749],[-43.107,-42.249]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[-17.553,4.111],[-4.534,0],[-3,-8.333],[48.215,-10.557],[1,8.333],[-6.167,2.5]],"o":[[18.5,-4.333],[4.666,0],[3,8.333],[-51,11.167],[-1,-8.334],[6.969,-2.826]],"v":[[-11.774,-51.417],[32.536,-58.765],[45.369,-49.098],[14.893,44.917],[-52.107,-25.749],[-43.107,-42.249]],"c":true}],"e":[{"i":[[-17.553,4.111],[-4.534,0],[-3,-8.333],[48.215,-10.557],[1,8.333],[-6.167,2.5]],"o":[[18.5,-4.333],[4.666,0],[3,8.333],[-51,11.167],[-1,-8.334],[6.969,-2.826]],"v":[[-49.104,-45.549],[-1.36,-53.772],[11.473,-44.105],[-14.527,49.228],[-89.438,-19.882],[-80.438,-36.382]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.411999990426,0.063000002094,0.325,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[333.107,419.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 8","np":2,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[-6.5,-8.5],[-7.25,2.25],[-1.75,-1],[2.5,-10.25],[0,0],[-8,0.75],[0,0],[1.25,14.75],[10.5,-1],[0.5,2],[-2.093,12.324],[0,0]],"o":[[0,0],[5.075,6.637],[7.25,-2.25],[1.75,1],[-2.5,10.25],[0,0],[8,-0.75],[0,0],[-0.587,-6.926],[-4.41,0.42],[-0.5,-2],[2.25,-13.25],[0,0]],"v":[[-51.58,-38.633],[-56.08,10.617],[-39.58,15.617],[-29.83,12.617],[-31.08,38.367],[-35.827,50.306],[-14.419,53.061],[-2.169,50.811],[4.581,3.561],[-9.919,-8.689],[-24.919,-6.939],[-22.669,-31.939],[-20.419,-47.189]],"c":true}],"e":[{"i":[[0,0],[-6.5,-8.5],[-7.25,2.25],[-1.75,-1],[2.5,-10.25],[0,0],[-8,0.75],[0,0],[1.25,14.75],[10.5,-1],[0.5,2],[-2.093,12.324],[0,0]],"o":[[0,0],[5.075,6.637],[7.25,-2.25],[1.75,1],[-2.5,10.25],[0,0],[8,-0.75],[0,0],[-0.587,-6.926],[-4.41,0.42],[-0.5,-2],[2.25,-13.25],[0,0]],"v":[[-14.25,-44.5],[-18.75,4.75],[-2.25,9.75],[7.5,6.75],[6.25,32.5],[0.75,48],[15,48.75],[27.25,46.5],[34,-0.75],[19.5,-13],[4.5,-11.25],[6.75,-36.25],[9,-51.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[-6.5,-8.5],[-7.25,2.25],[-1.75,-1],[2.5,-10.25],[0,0],[-8,0.75],[0,0],[1.25,14.75],[10.5,-1],[0.5,2],[-2.093,12.324],[0,0]],"o":[[0,0],[5.075,6.637],[7.25,-2.25],[1.75,1],[-2.5,10.25],[0,0],[8,-0.75],[0,0],[-0.587,-6.926],[-4.41,0.42],[-0.5,-2],[2.25,-13.25],[0,0]],"v":[[-14.25,-44.5],[-18.75,4.75],[-2.25,9.75],[7.5,6.75],[6.25,32.5],[0.75,48],[15,48.75],[27.25,46.5],[34,-0.75],[19.5,-13],[4.5,-11.25],[6.75,-36.25],[9,-51.5]],"c":true}],"e":[{"i":[[0,0],[-6.5,-8.5],[-7.25,2.25],[-1.75,-1],[2.5,-10.25],[0,0],[-8,0.75],[0,0],[1.25,14.75],[10.5,-1],[0.5,2],[-2.093,12.324],[0,0]],"o":[[0,0],[5.075,6.637],[7.25,-2.25],[1.75,1],[-2.5,10.25],[0,0],[8,-0.75],[0,0],[-0.587,-6.926],[-4.41,0.42],[-0.5,-2],[2.25,-13.25],[0,0]],"v":[[-51.58,-38.633],[-56.08,10.617],[-39.58,15.617],[-29.83,12.617],[-31.08,38.367],[-35.827,50.306],[-14.419,53.061],[-2.169,50.811],[4.581,3.561],[-9.919,-8.689],[-24.919,-6.939],[-22.669,-31.939],[-20.419,-47.189]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.477999997606,0.830999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[325.5,416.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 9","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[-17.553,4.111],[-4.534,0],[-3,-8.333],[48.215,-10.557],[1,8.333],[-6.167,2.5]],"o":[[18.5,-4.333],[4.666,0],[3,8.333],[-51,11.167],[-1,-8.334],[6.969,-2.826]],"v":[[-49.105,-45.549],[-1.36,-53.772],[11.473,-44.105],[-14.527,49.228],[-89.438,-19.882],[-80.438,-36.382]],"c":true}],"e":[{"i":[[-17.553,4.111],[-4.534,0],[-3,-8.333],[48.215,-10.557],[1,8.333],[-6.167,2.5]],"o":[[18.5,-4.333],[4.666,0],[3,8.333],[-51,11.167],[-1,-8.334],[6.969,-2.826]],"v":[[-11.774,-51.417],[32.536,-58.765],[45.369,-49.098],[14.893,44.917],[-52.107,-25.749],[-43.107,-42.249]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[-17.553,4.111],[-4.534,0],[-3,-8.333],[48.215,-10.557],[1,8.333],[-6.167,2.5]],"o":[[18.5,-4.333],[4.666,0],[3,8.333],[-51,11.167],[-1,-8.334],[6.969,-2.826]],"v":[[-11.774,-51.417],[32.536,-58.765],[45.369,-49.098],[14.893,44.917],[-52.107,-25.749],[-43.107,-42.249]],"c":true}],"e":[{"i":[[-17.553,4.111],[-4.534,0],[-3,-8.333],[48.215,-10.557],[1,8.333],[-6.167,2.5]],"o":[[18.5,-4.333],[4.666,0],[3,8.333],[-51,11.167],[-1,-8.334],[6.969,-2.826]],"v":[[-49.104,-45.549],[-1.36,-53.772],[11.473,-44.105],[-14.527,49.228],[-89.438,-19.882],[-80.438,-36.382]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.885999971278,0.337000020345,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[333.107,419.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 10","np":2,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[59.667,-10],[0,0],[17.986,-6.775],[0.333,-10.334],[3,-6],[2.333,7.333],[-2.726,8.808],[-4.655,2.007],[0,0],[-25.667,5.333],[0,0]],"o":[[0,0],[-70.424,11.803],[0.12,-1.267],[-12.802,4.822],[-0.333,10.333],[-3,6],[-2.333,-7.333],[2.167,-7],[30.525,-13.156],[0,0],[25.666,-5.333],[0,0]],"v":[[98.247,-45.522],[59.58,56.811],[-31.331,-27.299],[-83.333,-11.166],[-101.333,4.834],[-101.666,62.167],[-124.333,70.167],[-115.333,-5],[-102.501,-17.781],[-31.331,-50.966],[46.914,-70.522],[90.914,-78.189]],"c":false}],"e":[{"i":[[0,0],[59.667,-10],[0,0],[17.986,-6.775],[0.333,-10.334],[3,-6],[2.333,7.333],[-2.726,8.808],[-4.655,2.007],[0,0],[-25.667,5.333],[0,0]],"o":[[0,0],[-70.424,11.803],[0.12,-1.267],[-12.802,4.822],[-0.333,10.333],[-3,6],[-2.333,-7.333],[2.167,-7],[30.525,-13.156],[0,0],[25.666,-5.333],[0,0]],"v":[[134.139,-50.791],[88.999,52.5],[5.999,-33.166],[-100.333,-7.166],[-118.333,8.834],[-118.666,66.167],[-141.333,74.167],[-132.333,-1],[-119.501,-13.781],[5.999,-56.833],[76.334,-74.833],[124.81,-83.182]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[59.667,-10],[0,0],[17.986,-6.775],[0.333,-10.334],[3,-6],[2.333,7.333],[-2.726,8.808],[-4.655,2.007],[0,0],[-25.667,5.333],[0,0]],"o":[[0,0],[-70.424,11.803],[0.12,-1.267],[-12.802,4.822],[-0.333,10.333],[-3,6],[-2.333,-7.333],[2.167,-7],[30.525,-13.156],[0,0],[25.666,-5.333],[0,0]],"v":[[134.139,-50.791],[88.999,52.5],[5.999,-33.166],[-100.333,-7.166],[-118.333,8.834],[-118.666,66.167],[-141.333,74.167],[-132.333,-1],[-119.501,-13.781],[5.999,-56.833],[76.334,-74.833],[124.81,-83.182]],"c":false}],"e":[{"i":[[0,0],[59.667,-10],[0,0],[17.986,-6.775],[0.333,-10.334],[3,-6],[2.333,7.333],[-2.726,8.808],[-4.655,2.007],[0,0],[-25.667,5.333],[0,0]],"o":[[0,0],[-70.424,11.803],[0.12,-1.267],[-12.802,4.822],[-0.333,10.333],[-3,6],[-2.333,-7.333],[2.167,-7],[30.525,-13.156],[0,0],[25.666,-5.333],[0,0]],"v":[[98.247,-45.522],[59.58,56.811],[-31.331,-27.299],[-83.333,-11.166],[-101.333,4.834],[-101.666,62.167],[-124.333,70.167],[-115.333,-5],[-102.501,-17.781],[-31.331,-50.966],[46.914,-70.522],[90.914,-78.189]],"c":false}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.430999995213,0.694000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[260.333,426.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 11","np":2,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[-17.776,3.003],[-4.526,-0.284],[-2.472,-8.504],[48.781,-7.515],[0.475,8.379],[-6.31,2.109]],"o":[[18.735,-3.166],[4.657,0.292],[2.472,8.505],[-51.599,7.949],[-0.477,-8.38],[7.133,-2.383]],"v":[[-41.42,-47.106],[2.244,-51.507],[14.446,-41.056],[-17.352,50.465],[-83.282,-24.017],[-73.267,-39.921]],"c":true}],"e":[{"i":[[-17.776,3.003],[-4.526,-0.284],[-2.472,-8.504],[48.781,-7.515],[0.475,8.379],[-6.31,2.109]],"o":[[18.735,-3.166],[4.657,0.292],[2.472,8.505],[-51.599,7.949],[-0.477,-8.38],[7.133,-2.383]],"v":[[-8.509,-51.662],[31.663,-55.819],[43.866,-45.368],[12.068,46.153],[-45.895,-29.254],[-35.88,-45.158]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[-17.776,3.003],[-4.526,-0.284],[-2.472,-8.504],[48.781,-7.515],[0.475,8.379],[-6.31,2.109]],"o":[[18.735,-3.166],[4.657,0.292],[2.472,8.505],[-51.599,7.949],[-0.477,-8.38],[7.133,-2.383]],"v":[[-8.509,-51.662],[31.663,-55.819],[43.866,-45.368],[12.068,46.153],[-45.895,-29.254],[-35.88,-45.158]],"c":true}],"e":[{"i":[[-17.776,3.003],[-4.526,-0.284],[-2.472,-8.504],[48.781,-7.515],[0.475,8.379],[-6.31,2.109]],"o":[[18.735,-3.166],[4.657,0.292],[2.472,8.505],[-51.599,7.949],[-0.477,-8.38],[7.133,-2.383]],"v":[[-41.42,-47.106],[2.244,-51.507],[14.446,-41.056],[-17.352,50.465],[-83.282,-24.017],[-73.267,-39.921]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.411999990426,0.063000002094,0.325,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[448.707,398.839],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 12","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[-5.954,-8.891],[-7.377,1.792],[-1.684,-1.108],[3.137,-10.073],[0,0],[-8.032,0.247],[0,0],[0.323,14.799],[10.542,-0.34],[0.374,2.028],[-2.861,12.169],[0,0]],"o":[[0,0],[4.649,6.942],[7.377,-1.791],[1.684,1.108],[-3.138,10.074],[0,0],[8.031,-0.248],[0,0],[-0.152,-6.95],[-4.428,0.143],[-0.374,-2.027],[3.076,-13.083],[0,0]],"v":[[-47.969,-40.476],[-53.586,7.757],[-40.39,14.489],[-28.476,11.967],[-31.406,36.59],[-34.839,52.005],[-17.172,53.403],[-4.805,51.924],[4.892,5.191],[-8.812,-7.945],[-23.892,-7.139],[-20.08,-31.949],[-16.878,-47.027]],"c":true}],"e":[{"i":[[0,0],[-5.954,-8.891],[-7.377,1.792],[-1.684,-1.108],[3.137,-10.073],[0,0],[-8.032,0.247],[0,0],[0.323,14.799],[10.542,-0.34],[0.374,2.028],[-2.861,12.169],[0,0]],"o":[[0,0],[4.649,6.942],[7.377,-1.791],[1.684,1.108],[-3.138,10.074],[0,0],[8.031,-0.248],[0,0],[-0.152,-6.95],[-4.428,0.143],[-0.374,-2.027],[3.076,-13.083],[0,0]],"v":[[-11.103,-45.809],[-14.204,2.38],[1.95,8.404],[7.393,6.703],[4.532,32.324],[2.548,46.767],[12.247,49.091],[24.614,47.612],[34.311,0.879],[20.607,-12.256],[5.527,-11.45],[9.339,-36.26],[12.541,-51.338]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[-5.954,-8.891],[-7.377,1.792],[-1.684,-1.108],[3.137,-10.073],[0,0],[-8.032,0.247],[0,0],[0.323,14.799],[10.542,-0.34],[0.374,2.028],[-2.861,12.169],[0,0]],"o":[[0,0],[4.649,6.942],[7.377,-1.791],[1.684,1.108],[-3.138,10.074],[0,0],[8.031,-0.248],[0,0],[-0.152,-6.95],[-4.428,0.143],[-0.374,-2.027],[3.076,-13.083],[0,0]],"v":[[-11.103,-45.809],[-14.204,2.38],[1.95,8.404],[7.393,6.703],[4.532,32.324],[2.548,46.767],[12.247,49.091],[24.614,47.612],[34.311,0.879],[20.607,-12.256],[5.527,-11.45],[9.339,-36.26],[12.541,-51.338]],"c":true}],"e":[{"i":[[0,0],[-5.954,-8.891],[-7.377,1.792],[-1.684,-1.108],[3.137,-10.073],[0,0],[-8.032,0.247],[0,0],[0.323,14.799],[10.542,-0.34],[0.374,2.028],[-2.861,12.169],[0,0]],"o":[[0,0],[4.649,6.942],[7.377,-1.791],[1.684,1.108],[-3.138,10.074],[0,0],[8.031,-0.248],[0,0],[-0.152,-6.95],[-4.428,0.143],[-0.374,-2.027],[3.076,-13.083],[0,0]],"v":[[-47.969,-40.476],[-53.586,7.757],[-40.39,14.489],[-28.476,11.967],[-31.406,36.59],[-34.839,52.005],[-17.172,53.402],[-4.805,51.923],[4.892,5.19],[-8.812,-7.944],[-23.892,-7.138],[-20.08,-31.948],[-16.878,-47.026]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.477999997606,0.830999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[440.991,396.264],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 13","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[-17.776,3.003],[-4.526,-0.284],[-2.472,-8.504],[48.781,-7.515],[0.475,8.379],[-6.31,2.109]],"o":[[18.735,-3.166],[4.657,0.292],[2.472,8.505],[-51.599,7.949],[-0.477,-8.38],[7.133,-2.383]],"v":[[-41.42,-47.106],[2.244,-51.507],[14.446,-41.056],[-17.352,50.465],[-83.282,-24.017],[-73.267,-39.921]],"c":true}],"e":[{"i":[[-17.776,3.003],[-4.526,-0.284],[-2.472,-8.504],[48.781,-7.515],[0.475,8.379],[-6.31,2.109]],"o":[[18.735,-3.166],[4.657,0.292],[2.472,8.505],[-51.599,7.949],[-0.477,-8.38],[7.133,-2.383]],"v":[[-8.509,-51.662],[31.663,-55.819],[43.866,-45.368],[12.068,46.153],[-45.895,-29.254],[-35.88,-45.158]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[-17.776,3.003],[-4.526,-0.284],[-2.472,-8.504],[48.781,-7.515],[0.475,8.379],[-6.31,2.109]],"o":[[18.735,-3.166],[4.657,0.292],[2.472,8.505],[-51.599,7.949],[-0.477,-8.38],[7.133,-2.383]],"v":[[-8.509,-51.662],[31.663,-55.819],[43.866,-45.368],[12.068,46.153],[-45.895,-29.254],[-35.88,-45.158]],"c":true}],"e":[{"i":[[-17.776,3.003],[-4.526,-0.284],[-2.472,-8.504],[48.781,-7.515],[0.475,8.379],[-6.31,2.109]],"o":[[18.735,-3.166],[4.657,0.292],[2.472,8.505],[-51.599,7.949],[-0.477,-8.38],[7.133,-2.383]],"v":[[-41.42,-47.106],[2.244,-51.507],[14.446,-41.056],[-17.352,50.465],[-83.282,-24.017],[-73.267,-39.921]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.885999971278,0.337000020345,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[448.707,398.839],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 14","np":2,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[-76.291,14.727],[13,1.667],[28.667,-1.333],[0,0]],"o":[[0,0],[71.119,-13.729],[-5.96,-0.764],[-28.667,1.333],[0,0]],"v":[[-98.253,-47.606],[-19.919,59.394],[14.747,-63.273],[-25.586,-65.606],[-99.919,-54.273]],"c":true}],"e":[{"i":[[0,0],[-63.044,12.094],[13,1.667],[28.667,-1.333],[0,0]],"o":[[0,0],[71.135,-13.646],[-5.96,-0.764],[-28.667,1.333],[0,0]],"v":[[-64.358,-52.599],[9.5,55.083],[44.166,-67.584],[3.833,-69.917],[-66.024,-59.266]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[-63.044,12.094],[13,1.667],[28.667,-1.333],[0,0]],"o":[[0,0],[71.135,-13.646],[-5.96,-0.764],[-28.667,1.333],[0,0]],"v":[[-64.358,-52.599],[9.5,55.083],[44.166,-67.584],[3.833,-69.917],[-66.024,-59.266]],"c":true}],"e":[{"i":[[0,0],[-76.291,14.727],[13,1.667],[28.667,-1.333],[0,0]],"o":[[0,0],[71.119,-13.729],[-5.96,-0.764],[-28.667,1.333],[0,0]],"v":[[-98.253,-47.606],[-19.919,59.394],[14.747,-63.273],[-25.586,-65.606],[-99.919,-54.273]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.430999995213,0.694000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[450.167,401.584],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 15","np":2,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Кривые volosy","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[297.64,420.945,0],"ix":2},"a":{"a":0,"k":[297.64,420.945,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[-4.493,1.259],[-1.676,-26.43],[0,0],[-16,-0.667],[0,0],[1.333,32.667],[0,0],[-14,4],[0,0],[-11.334,4],[0,0],[-21.269,2.127],[0,0]],"o":[[-0.5,-15.667],[11.036,-3.092],[1.084,17.083],[0,0],[16,0.666],[0,0],[-1.333,-32.667],[0,0],[14,-4],[0,0],[11.333,-4],[0,0],[33.333,-3.334],[0,0]],"v":[[-108.667,29],[-106.417,9.25],[-90.834,50.75],[-90.834,85.417],[-63.5,89.417],[-27.5,88.75],[-76.167,8.75],[-59.834,-36.667],[-33.834,-36],[-8.5,-55.333],[13.501,-56],[29.5,-71.333],[60.833,-63.333],[109.166,-91.333]],"c":false}],"e":[{"i":[[0,0],[-4.493,1.259],[-3.812,-26.207],[0,0],[-16,-0.667],[0,0],[1.333,32.667],[0,0],[-14,4],[0,0],[-11.334,4],[0,0],[-21.269,2.127],[0,0]],"o":[[-0.5,-15.667],[11.036,-3.092],[2.667,18.333],[0,0],[16,0.666],[0,0],[-1.333,-32.667],[0,0],[14,-4],[0,0],[11.333,-4],[0,0],[33.333,-3.334],[0,0]],"v":[[-108.667,29],[-99.667,8.5],[-67.834,52],[-67.834,86.667],[-40.5,90.667],[8.187,87.118],[-48.69,9.318],[-39.834,-36.667],[-13.834,-36],[11.5,-55.333],[33.5,-56],[49.5,-71.333],[80.833,-63.333],[118.166,-91.333]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[-4.493,1.259],[-3.812,-26.207],[0,0],[-16,-0.667],[0,0],[1.333,32.667],[0,0],[-14,4],[0,0],[-11.334,4],[0,0],[-21.269,2.127],[0,0]],"o":[[-0.5,-15.667],[11.036,-3.092],[2.667,18.333],[0,0],[16,0.666],[0,0],[-1.333,-32.667],[0,0],[14,-4],[0,0],[11.333,-4],[0,0],[33.333,-3.334],[0,0]],"v":[[-108.667,29],[-99.667,8.5],[-67.834,52],[-67.834,86.667],[-40.5,90.667],[8.187,87.118],[-48.69,9.318],[-39.834,-36.667],[-13.834,-36],[11.5,-55.333],[33.5,-56],[49.5,-71.333],[80.833,-63.333],[118.166,-91.333]],"c":false}],"e":[{"i":[[0,0],[-4.493,1.259],[-1.676,-26.43],[0,0],[-16,-0.667],[0,0],[1.333,32.667],[0,0],[-14,4],[0,0],[-11.334,4],[0,0],[-21.269,2.127],[0,0]],"o":[[-0.5,-15.667],[11.036,-3.092],[1.084,17.083],[0,0],[16,0.666],[0,0],[-1.333,-32.667],[0,0],[14,-4],[0,0],[11.333,-4],[0,0],[33.333,-3.334],[0,0]],"v":[[-108.667,29],[-106.417,9.25],[-90.834,50.75],[-90.834,85.417],[-63.5,89.417],[-27.5,88.75],[-76.167,8.75],[-59.834,-36.667],[-33.834,-36],[-8.5,-55.333],[13.5,-56],[29.5,-71.333],[60.833,-63.333],[109.166,-91.333]],"c":false}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[278.5,378.667],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[-4.493,1.259],[-3.812,-26.207],[0,0],[-16,-0.667],[0,0],[1.333,32.667],[0,0],[-14,4],[0,0],[-11.334,4],[0,0],[-21.269,2.127],[0,0],[53.5,4.5],[48,-26.5],[-2,-29]],"o":[[-0.5,-15.667],[11.036,-3.092],[2.667,18.333],[0,0],[16,0.666],[0,0],[-1.333,-32.667],[0,0],[14,-4],[0,0],[11.333,-4],[0,0],[33.333,-3.334],[0,0],[-47.501,-3.995],[-48,26.5],[2,29]],"v":[[-96.417,54.914],[-94.167,35.164],[-78.584,76.664],[-78.584,111.332],[-51.25,115.332],[-15.25,114.664],[-63.917,34.664],[-47.584,-10.753],[-21.584,-10.086],[3.75,-29.418],[25.75,-30.086],[41.75,-45.418],[73.083,-37.418],[121.416,-65.418],[76.25,-113.253],[-65.25,-87.253],[-127.75,15.747]],"c":true}],"e":[{"i":[[0,0],[-4.493,1.259],[-3.812,-26.207],[0,0],[-16,-0.667],[0,0],[1.333,32.667],[0,0],[-14,4],[0,0],[-11.334,4],[0,0],[-21.269,2.127],[0,0],[53.5,4.5],[48,-26.5],[-2,-29]],"o":[[-0.5,-15.667],[11.036,-3.092],[2.667,18.333],[0,0],[16,0.666],[0,0],[-1.333,-32.667],[0,0],[14,-4],[0,0],[11.333,-4],[0,0],[33.333,-3.334],[0,0],[-47.501,-3.995],[-48,26.5],[2,29]],"v":[[-96.417,54.914],[-87.417,34.414],[-55.584,77.914],[-55.584,112.582],[-28.25,116.582],[20.436,113.033],[-36.441,35.233],[-27.584,-10.753],[-1.584,-10.086],[23.75,-29.418],[45.75,-30.086],[61.75,-45.418],[93.083,-37.418],[130.416,-65.418],[76.25,-113.253],[-65.25,-87.253],[-127.75,15.747]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[-4.493,1.259],[-3.812,-26.207],[0,0],[-16,-0.667],[0,0],[1.333,32.667],[0,0],[-14,4],[0,0],[-11.334,4],[0,0],[-21.269,2.127],[0,0],[53.5,4.5],[48,-26.5],[-2,-29]],"o":[[-0.5,-15.667],[11.036,-3.092],[2.667,18.333],[0,0],[16,0.666],[0,0],[-1.333,-32.667],[0,0],[14,-4],[0,0],[11.333,-4],[0,0],[33.333,-3.334],[0,0],[-47.501,-3.995],[-48,26.5],[2,29]],"v":[[-96.417,54.914],[-87.417,34.414],[-55.584,77.914],[-55.584,112.582],[-28.25,116.582],[20.436,113.033],[-36.441,35.233],[-27.584,-10.753],[-1.584,-10.086],[23.75,-29.418],[45.75,-30.086],[61.75,-45.418],[93.083,-37.418],[130.416,-65.418],[76.25,-113.253],[-65.25,-87.253],[-127.75,15.747]],"c":true}],"e":[{"i":[[0,0],[-4.493,1.259],[-3.812,-26.207],[0,0],[-16,-0.667],[0,0],[1.333,32.667],[0,0],[-14,4],[0,0],[-11.334,4],[0,0],[-21.269,2.127],[0,0],[53.5,4.5],[48,-26.5],[-2,-29]],"o":[[-0.5,-15.667],[11.036,-3.092],[2.667,18.333],[0,0],[16,0.666],[0,0],[-1.333,-32.667],[0,0],[14,-4],[0,0],[11.333,-4],[0,0],[33.333,-3.334],[0,0],[-47.501,-3.995],[-48,26.5],[2,29]],"v":[[-96.417,54.914],[-94.167,35.164],[-78.584,76.664],[-78.584,111.332],[-51.25,115.332],[-15.25,114.664],[-63.917,34.664],[-47.584,-10.753],[-21.584,-10.086],[3.75,-29.418],[25.75,-30.086],[41.75,-45.418],[73.083,-37.418],[121.416,-65.418],[76.25,-113.253],[-65.25,-87.253],[-127.75,15.747]],"c":true}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.180000005984,0.035000000748,0.144999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[266.25,352.752],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Кривые R_ruka","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[196.296,490.712,0],"ix":2},"a":{"a":0,"k":[196.293,491.186,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[13.227,-15.815],[-7,-6],[-13.802,5.751],[0,0]],"o":[[0,0],[-11.499,13.749],[7,6],[13.663,-5.693],[0,0]],"v":[[17.67,-35.5],[-6.308,-13.159],[-19.412,28.154],[10.657,13.007],[31.33,7.739]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[168.83,506.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[17.969,15.418],[13.227,-15.815],[-7,-6],[-13.802,5.751],[0,0]],"o":[[0,0],[-11.499,13.749],[7,6],[13.663,-5.693],[0,0]],"v":[[15.516,-35.5],[-8.462,-13.159],[-21.566,28.154],[8.503,13.007],[29.175,7.739]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.875,0.039000002543,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[171.56,505.925],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Кривые telo","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[2],"e":[15]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":20,"s":[15],"e":[2]},{"t":40}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[449.64,462.945,0],"e":[449.64,439.945,0],"to":[0,-3.83333325386047,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[449.64,439.945,0],"e":[449.64,462.945,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[449.64,462.945,0],"e":[449.64,439.945,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[449.64,439.945,0],"e":[449.64,462.945,0],"to":[0,0,0],"ti":[0,-3.83333325386047,0]},{"t":40}],"ix":2},"a":{"a":0,"k":[297.64,420.945,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[100,100,100],"e":[100,97,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":5,"s":[100,97,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":10,"s":[100,100,100],"e":[100,103,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":15,"s":[100,103,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":20,"s":[100,100,100],"e":[100,97,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":25,"s":[100,97,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":30,"s":[100,100,100],"e":[100,103,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":35,"s":[100,103,100],"e":[100,100,100]},{"t":40}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[-69.333,11.333],[0,0]],"o":[[0,0],[69.333,-11.334],[0,0]],"v":[[-94.243,-3.694],[-16.919,36.694],[-99.586,-41.973]],"c":false}],"e":[{"i":[[0,0],[-69.333,11.333],[0,0]],"o":[[0,0],[69.333,-11.334],[0,0]],"v":[[-59.666,-8],[13.667,32.667],[-69,-46]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[-69.333,11.333],[0,0]],"o":[[0,0],[69.333,-11.334],[0,0]],"v":[[-59.666,-8],[13.667,32.667],[-69,-46]],"c":false}],"e":[{"i":[[0,0],[-69.333,11.333],[0,0]],"o":[[0,0],[69.333,-11.334],[0,0]],"v":[[-94.243,-3.694],[-16.919,36.694],[-99.586,-41.973]],"c":false}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.705999995213,0.011999999776,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[448.333,423.667],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[0,0],[-71.333,14],[0,0],[0,0]],"o":[[0,0],[0,0],[78.024,-15.313],[0,0],[0,0]],"v":[[-105.345,-5.167],[-75.449,-13.199],[17.988,59.833],[23.988,-65.833],[-112.012,-25.833]],"c":false}],"e":[{"i":[[0,0],[0,0],[-71.333,14],[0,0],[0,0]],"o":[[0,0],[0,0],[78.024,-15.313],[0,0],[0,0]],"v":[[-105.345,-5.167],[-41.012,-19.499],[40.988,54.833],[46.988,-70.833],[-112.012,-25.833]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[-71.333,14],[0,0],[0,0]],"o":[[0,0],[0,0],[78.024,-15.313],[0,0],[0,0]],"v":[[-105.345,-5.167],[-41.012,-19.499],[40.988,54.833],[46.988,-70.833],[-112.012,-25.833]],"c":false}],"e":[{"i":[[0,0],[0,0],[-71.333,14],[0,0],[0,0]],"o":[[0,0],[0,0],[78.024,-15.313],[0,0],[0,0]],"v":[[-105.345,-5.167],[-75.449,-13.199],[17.988,59.833],[23.988,-65.833],[-112.012,-25.833]],"c":false}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.705999995213,0.011999999776,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[300.345,427.167],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.333,19.334],[-73.334,27.334],[-30,-32],[19.411,-53.972],[60.441,-6.199],[4.666,100.667]],"o":[[-3.588,-52.03],[104.531,-38.961],[30,32],[-27.333,76],[-78,8],[-2.105,-45.407]],"v":[[-166.578,-27.52],[-85.911,-160.186],[120.422,-90.186],[150.755,89.147],[8.755,191.147],[-163.911,59.147]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[339.578,452.853],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[0,0],[-63.626,-57.679],[0,0],[64.667,41.999],[3.334,67.333],[0,0]],"o":[[0,0],[71.333,64.667],[0,0],[-60.325,-39.181],[-3.333,-67.333],[0,0]],"v":[[-88.333,-130.667],[-39.667,42],[120.333,94],[-47.001,88.667],[-117.001,-46.667],[-117.001,-125.999]],"c":false}],"e":[{"i":[[0,0],[-63.626,-57.679],[0,0],[64.667,41.999],[3.334,67.333],[0,0]],"o":[[0,0],[71.333,64.667],[0,0],[-60.325,-39.181],[-3.333,-67.333],[0,0]],"v":[[-76.333,-130.667],[-21.667,36],[120.333,94],[-47.001,88.667],[-117.001,-46.667],[-117.001,-125.999]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[-63.626,-57.679],[0,0],[64.667,41.999],[3.334,67.333],[0,0]],"o":[[0,0],[71.333,64.667],[0,0],[-60.325,-39.181],[-3.333,-67.333],[0,0]],"v":[[-76.333,-130.667],[-21.667,36],[120.333,94],[-47.001,88.667],[-117.001,-46.667],[-117.001,-125.999]],"c":false}],"e":[{"i":[[0,0],[-63.626,-57.679],[0,0],[64.667,41.999],[3.334,67.333],[0,0]],"o":[[0,0],[71.333,64.667],[0,0],[-60.325,-39.181],[-3.333,-67.333],[0,0]],"v":[[-88.333,-130.667],[-39.667,42],[120.333,94],[-47.001,88.667],[-117.001,-46.667],[-117.001,-125.999]],"c":false}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.705999995213,0.011999999776,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[290.667,535.333],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.333,19.334],[-73.334,27.334],[-30,-32],[19.411,-53.972],[60.441,-6.199],[4.666,100.667]],"o":[[-3.588,-52.03],[104.531,-38.961],[30,32],[-27.333,76],[-78,8],[-2.105,-45.407]],"v":[[-166.578,-27.52],[-85.911,-160.186],[120.422,-90.186],[150.755,89.147],[8.755,191.147],[-163.911,59.147]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.875,0.039000002543,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[339.578,452.853],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 5","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Кривые L_noga 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":20,"s":[0],"e":[34]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":30,"s":[34],"e":[67]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":40,"s":[67],"e":[34]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":50,"s":[34],"e":[0]},{"t":60}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":20,"s":[577.14,653.445,0],"e":[485.14,672.445,0],"to":[-14.5833330154419,8.58333301544189,0],"ti":[40.7188301086426,-1.91244661808014,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":30,"s":[485.14,672.445,0],"e":[397.14,653.945,0],"to":[-47.4723854064941,2.2296416759491,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":40,"s":[397.14,653.945,0],"e":[485.14,646.445,0],"to":[0,0,0],"ti":[-17.2466659545898,0.14780442416668,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":50,"s":[485.14,646.445,0],"e":[577.14,653.445,0],"to":[60.0219345092773,-0.51438969373703,0],"ti":[13.1223392486572,-7.72343397140503,0]},{"t":60}],"ix":2},"a":{"a":0,"k":[425.14,624.445,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.323,-8.378],[-6.738,22.378],[18.988,-0.711]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.169,-8.122],[-11.207,15.154],[14.192,-2.049]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":28,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.169,-8.122],[-11.207,15.154],[14.192,-2.049]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.328,-3.35],[-12.728,12.696],[12.56,-2.505]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.328,-3.35],[-12.728,12.696],[12.56,-2.505]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.777,-4.082],[-13.794,13.763],[9.374,-2.623]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.777,-4.082],[-13.794,13.763],[9.374,-2.623]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.271,-0.383],[-14.861,14.83],[10.232,1.691]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":34,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.271,-0.383],[-14.861,14.83],[10.232,1.691]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.417,4.837],[-16.861,16.831],[13,13.368]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":40,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.417,4.837],[-16.861,16.831],[13,13.368]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8.55,25.291],[-26.4,-1.895],[-14.663,36.832]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":47,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8.55,25.291],[-26.4,-1.895],[-14.663,36.832]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.323,-8.378],[-6.738,22.378],[18.988,-0.711]],"c":false}]},{"t":60}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[455.594,644.211],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[5.023,8.361],[0,0]],"o":[[0,0],[0,0],[-6.791,-11.305],[0,0]],"v":[[29.083,14.289],[1.022,26.044],[-15.293,6.51],[-25.084,-16.544]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[19.49,0.585],[-4.978,16.544],[-16.289,-2.108],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[19.49,0.585],[-4.978,16.544],[-16.289,-2.108],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[17.209,2.001],[-6.041,17.565],[-11.82,-3.225],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[17.209,2.001],[-6.041,17.565],[-11.82,-3.225],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[18.972,7.85],[-7.105,18.585],[-7.352,-4.342],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":34,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[18.972,7.85],[-7.105,18.585],[-7.352,-4.342],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[21.289,28.144],[-9.1,20.498],[1.029,-6.436],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":40,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[21.289,28.144],[-9.1,20.498],[1.029,-6.436],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.706,8.543],[0,0]],"o":[[0,0],[0,0],[-5.449,-9.892],[0,0]],"v":[[-17,40.956],[-18.639,1.771],[-4.062,-18.442],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":47,"s":[{"i":[[0,0],[0,0],[4.706,8.543],[0,0]],"o":[[0,0],[0,0],[-5.449,-9.892],[0,0]],"v":[[-17,40.956],[-18.639,1.771],[-4.062,-18.442],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[5.023,8.361],[0,0]],"o":[[0,0],[0,0],[-6.791,-11.305],[0,0]],"v":[[29.083,14.289],[1.022,26.044],[-15.293,6.51],[-25.084,-16.544]],"c":false}]},{"t":60}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[447.833,640.544],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":60,"st":20,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Кривые L_noga 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":-20,"s":[0],"e":[34]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":-10,"s":[34],"e":[67]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":0,"s":[67],"e":[34]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":10,"s":[34],"e":[0]},{"t":20}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":-20,"s":[577.14,653.445,0],"e":[485.14,672.445,0],"to":[-14.5833330154419,8.58333301544189,0],"ti":[40.7188301086426,-1.91244661808014,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":-10,"s":[485.14,672.445,0],"e":[397.14,653.945,0],"to":[-47.4723854064941,2.2296416759491,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":0,"s":[397.14,653.945,0],"e":[485.14,646.445,0],"to":[0,0,0],"ti":[-17.2466659545898,0.14780442416668,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":10,"s":[485.14,646.445,0],"e":[577.14,653.445,0],"to":[60.0219345092773,-0.51438969373703,0],"ti":[13.1223392486572,-7.72343397140503,0]},{"t":20}],"ix":2},"a":{"a":0,"k":[425.14,624.445,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":-20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.323,-8.378],[-6.738,22.378],[18.988,-0.711]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.169,-8.122],[-11.207,15.154],[14.192,-2.049]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.169,-8.122],[-11.207,15.154],[14.192,-2.049]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.328,-3.35],[-12.728,12.696],[12.56,-2.505]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.328,-3.35],[-12.728,12.696],[12.56,-2.505]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.777,-4.082],[-13.794,13.763],[9.374,-2.623]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.777,-4.082],[-13.794,13.763],[9.374,-2.623]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.271,-0.383],[-14.861,14.83],[10.232,1.691]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":-6,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.271,-0.383],[-14.861,14.83],[10.232,1.691]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.417,4.837],[-16.861,16.831],[13,13.368]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.417,4.837],[-16.861,16.831],[13,13.368]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8.55,25.291],[-26.4,-1.895],[-14.663,36.832]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":7,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8.55,25.291],[-26.4,-1.895],[-14.663,36.832]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.323,-8.378],[-6.738,22.378],[18.988,-0.711]],"c":false}]},{"t":20}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[455.594,644.211],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":-20,"s":[{"i":[[0,0],[0,0],[5.023,8.361],[0,0]],"o":[[0,0],[0,0],[-6.791,-11.305],[0,0]],"v":[[29.083,14.289],[1.022,26.044],[-15.293,6.51],[-25.084,-16.544]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[19.49,0.585],[-4.978,16.544],[-16.289,-2.108],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-10,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[19.49,0.585],[-4.978,16.544],[-16.289,-2.108],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[17.209,2.001],[-6.041,17.565],[-11.82,-3.225],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-8,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[17.209,2.001],[-6.041,17.565],[-11.82,-3.225],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[18.972,7.85],[-7.105,18.585],[-7.352,-4.342],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":-6,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[18.972,7.85],[-7.105,18.585],[-7.352,-4.342],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[21.289,28.144],[-9.1,20.498],[1.029,-6.436],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":0,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[21.289,28.144],[-9.1,20.498],[1.029,-6.436],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.706,8.543],[0,0]],"o":[[0,0],[0,0],[-5.449,-9.892],[0,0]],"v":[[-17,40.956],[-18.639,1.771],[-4.062,-18.442],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":7,"s":[{"i":[[0,0],[0,0],[4.706,8.543],[0,0]],"o":[[0,0],[0,0],[-5.449,-9.892],[0,0]],"v":[[-17,40.956],[-18.639,1.771],[-4.062,-18.442],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[5.023,8.361],[0,0]],"o":[[0,0],[0,0],[-6.791,-11.305],[0,0]],"v":[[29.083,14.289],[1.022,26.044],[-15.293,6.51],[-25.084,-16.544]],"c":false}]},{"t":20}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[447.833,640.544],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":-20,"op":20,"st":-20,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Кривые L_noga","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":0,"s":[0],"e":[34]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":10,"s":[34],"e":[67]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":20,"s":[67],"e":[34]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":30,"s":[34],"e":[0]},{"t":40}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":0,"s":[577.14,653.445,0],"e":[485.14,672.445,0],"to":[-14.5833330154419,8.58333301544189,0],"ti":[40.7188301086426,-1.91244661808014,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":10,"s":[485.14,672.445,0],"e":[397.14,653.945,0],"to":[-47.4723854064941,2.2296416759491,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":20,"s":[397.14,653.945,0],"e":[485.14,646.445,0],"to":[0,0,0],"ti":[-17.2466659545898,0.14780442416668,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":30,"s":[485.14,646.445,0],"e":[577.14,653.445,0],"to":[60.0219345092773,-0.51438969373703,0],"ti":[13.1223392486572,-7.72343397140503,0]},{"t":40}],"ix":2},"a":{"a":0,"k":[425.14,624.445,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.323,-8.378],[-6.738,22.378],[18.988,-0.711]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.169,-8.122],[-11.207,15.154],[14.192,-2.049]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":8,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.169,-8.122],[-11.207,15.154],[14.192,-2.049]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.328,-3.35],[-12.728,12.696],[12.56,-2.505]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.328,-3.35],[-12.728,12.696],[12.56,-2.505]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.777,-4.082],[-13.794,13.763],[9.374,-2.623]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[8.777,-4.082],[-13.794,13.763],[9.374,-2.623]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.271,-0.383],[-14.861,14.83],[10.232,1.691]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.271,-0.383],[-14.861,14.83],[10.232,1.691]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.417,4.837],[-16.861,16.831],[13,13.368]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[9.417,4.837],[-16.861,16.831],[13,13.368]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8.55,25.291],[-26.4,-1.895],[-14.663,36.832]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":27,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8.55,25.291],[-26.4,-1.895],[-14.663,36.832]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.323,-8.378],[-6.738,22.378],[18.988,-0.711]],"c":false}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[455.594,644.211],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":0,"s":[{"i":[[0,0],[0,0],[5.023,8.361],[0,0]],"o":[[0,0],[0,0],[-6.791,-11.305],[0,0]],"v":[[29.083,14.289],[1.022,26.044],[-15.293,6.51],[-25.084,-16.544]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[19.49,0.585],[-4.978,16.544],[-16.289,-2.108],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[19.49,0.585],[-4.978,16.544],[-16.289,-2.108],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[17.209,2.001],[-6.041,17.565],[-11.82,-3.225],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[17.209,2.001],[-6.041,17.565],[-11.82,-3.225],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[18.972,7.85],[-7.105,18.585],[-7.352,-4.342],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":14,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[18.972,7.85],[-7.105,18.585],[-7.352,-4.342],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[21.289,28.144],[-9.1,20.498],[1.029,-6.436],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[4.542,8.632],[0,0]],"o":[[0,0],[0,0],[-8.023,-15.246],[0,0]],"v":[[21.289,28.144],[-9.1,20.498],[1.029,-6.436],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[4.706,8.543],[0,0]],"o":[[0,0],[0,0],[-5.449,-9.892],[0,0]],"v":[[-17,40.956],[-18.639,1.771],[-4.062,-18.442],[-29.554,-28.296]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":27,"s":[{"i":[[0,0],[0,0],[4.706,8.543],[0,0]],"o":[[0,0],[0,0],[-5.449,-9.892],[0,0]],"v":[[-17,40.956],[-18.639,1.771],[-4.062,-18.442],[-29.554,-28.296]],"c":false}],"e":[{"i":[[0,0],[0,0],[5.023,8.361],[0,0]],"o":[[0,0],[0,0],[-6.791,-11.305],[0,0]],"v":[[29.083,14.289],[1.022,26.044],[-15.293,6.51],[-25.084,-16.544]],"c":false}]},{"t":40}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[447.833,640.544],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Кривые volosy_back","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[278.64,439.945,0],"ix":2},"a":{"a":0,"k":[278.64,439.945,0],"ix":1},"s":{"a":1,"k":[{"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]},"n":["0p667_1_0p167_0","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":0,"s":[100,100,100],"e":[100,96,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,0.833,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_1_0p333_0","0p833_0p833_0p333_0","0p833_1_0p333_0"],"t":5,"s":[100,96,100],"e":[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.167,0]},"n":["0p667_1_0p167_0","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":10,"s":[100,100,100],"e":[100,104,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,0.833,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_1_0p333_0","0p833_0p833_0p333_0","0p833_1_0p333_0"],"t":15,"s":[100,104,100],"e":[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.167,0]},"n":["0p667_1_0p167_0","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":20,"s":[100,100,100],"e":[100,96,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,0.833,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_1_0p333_0","0p833_0p833_0p333_0","0p833_1_0p333_0"],"t":25,"s":[100,96,100],"e":[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.167,0]},"n":["0p667_1_0p167_0","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":30,"s":[100,100,100],"e":[100,104,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,0.833,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_1_0p333_0","0p833_0p833_0p333_0","0p833_1_0p333_0"],"t":35,"s":[100,104,100],"e":[100,100,100]},{"t":40}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[18.333,4.667],[0,0],[20.667,14.666],[0,0],[6.667,28],[0,0],[-4.333,20.667],[0,0],[-4.333,9.334],[0,0],[-21,18],[0,0],[-22.661,8.664],[0,0],[-15,2],[0,0],[-25.333,-2.333],[0,0],[-18,-10.334],[0,0],[-13.334,-9],[0,0],[-5,-21.667],[0,0],[4.334,-16.667],[0,0],[3.666,-9],[0,0]],"o":[[0,0],[-18.334,-4.667],[0,0],[-20.667,-14.667],[0,0],[-5.9,-24.781],[0,0],[4.333,-20.667],[0,0],[4.333,-9.333],[0,0],[21,-18],[0,0],[22.666,-8.667],[0,0],[15,-2],[0,0],[25.334,2.334],[0,0],[18,10.333],[0,0],[13.333,9],[0,0],[5,21.666],[0,0],[-4.333,16.667],[0,0],[-3.667,9],[0,0]],"v":[[-65.883,165.167],[-99.217,171.167],[-121.883,149.167],[-159.883,142.834],[-178.551,110.167],[-215.883,75.166],[-205.216,31.834],[-213.883,-10.833],[-194.883,-36.5],[-192.883,-55.5],[-176.551,-67.166],[-161.551,-113.167],[-115.883,-123.167],[-88.217,-157.167],[-49.217,-151.5],[-23.217,-171.833],[5.449,-163.5],[44.449,-173.5],[78.449,-156.833],[119.449,-154.167],[144.449,-121.5],[175.783,-116.833],[191.783,-88.5],[213.45,-62.166],[208.45,-28.166],[217.45,5.167],[199.783,30.167],[199.783,49.5],[179.117,62.167]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[253.883,287.833],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[13.333,9],[0,0],[18,10.333],[0,0],[25.334,2.333],[0,0],[15,-2],[0,0],[22.667,-8.667],[0,0],[21,-18],[0,0],[4.333,-9.334],[0,0],[4.333,-20.666],[0,0],[-10.61,20.795],[0,0],[-5.334,7],[0,0],[-20.667,14.667],[0,0],[-24.166,9.916],[0,0],[-17.177,2.417],[0,0],[-23.667,-3.667],[0,0],[-17.666,-8],[0,0],[-13,-11],[0,0],[-7.25,-4.75]],"o":[[-5,-21.667],[0,0],[-13.334,-9],[0,0],[-18,-10.333],[0,0],[-25.333,-2.334],[0,0],[-15,2],[0,0],[-22.66,8.665],[0,0],[-21,18],[0,0],[-4.334,9.333],[0,0],[-4.334,20.667],[0,0],[8.333,-16.333],[0,0],[5.333,-7],[0,0],[20.667,-14.667],[0,0],[21.189,-8.695],[0,0],[22.5,-3.167],[0,0],[23.667,3.666],[0,0],[17.667,8],[0,0],[13,11],[0,0],[7.25,4.75]],"v":[[215.833,9.834],[194.167,-16.499],[178.167,-44.833],[146.833,-49.499],[121.833,-82.167],[80.833,-84.833],[46.833,-101.499],[7.834,-91.499],[-20.834,-99.833],[-46.833,-79.499],[-85.833,-85.167],[-113.5,-51.167],[-159.167,-41.167],[-174.167,4.833],[-190.5,16.501],[-192.5,35.501],[-211.5,61.167],[-202.833,103.833],[-202.5,62.167],[-178.167,43.167],[-177.5,21.833],[-160.167,13.167],[-147.167,-28.167],[-104.5,-38.083],[-79.833,-70.499],[-41.833,-63.833],[-18.499,-84.167],[10.833,-72.833],[46.833,-86.499],[82.167,-64.499],[115.833,-69.499],[141,-39.833],[174.5,-34.333],[189.833,-9.499],[202.5,-3.583]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.430999995213,0.216000007181,0.654999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[251.5,215.833],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[18.333,4.667],[0,0],[20.667,14.666],[0,0],[6.667,28],[0,0],[-4.333,20.667],[0,0],[-4.333,9.334],[0,0],[-21,18],[0,0],[-22.661,8.664],[0,0],[-15,2],[0,0],[-25.333,-2.333],[0,0],[-18,-10.334],[0,0],[-13.334,-9],[0,0],[-5,-21.667],[0,0],[4.334,-16.667],[0,0],[3.666,-9],[0,0]],"o":[[0,0],[-18.334,-4.667],[0,0],[-20.667,-14.667],[0,0],[-5.9,-24.781],[0,0],[4.333,-20.667],[0,0],[4.333,-9.333],[0,0],[21,-18],[0,0],[22.666,-8.667],[0,0],[15,-2],[0,0],[25.334,2.334],[0,0],[18,10.333],[0,0],[13.333,9],[0,0],[5,21.666],[0,0],[-4.333,16.667],[0,0],[-3.667,9],[0,0]],"v":[[-65.883,165.167],[-99.217,171.167],[-121.883,149.167],[-159.883,142.834],[-178.551,110.167],[-215.883,75.166],[-205.216,31.834],[-213.883,-10.833],[-194.883,-36.5],[-192.883,-55.5],[-176.551,-67.166],[-161.551,-113.167],[-115.883,-123.167],[-88.217,-157.167],[-49.217,-151.5],[-23.217,-171.833],[5.449,-163.5],[44.449,-173.5],[78.449,-156.833],[119.449,-154.167],[144.449,-121.5],[175.783,-116.833],[191.783,-88.5],[213.45,-62.166],[208.45,-28.166],[217.45,5.167],[199.783,30.167],[199.783,49.5],[179.117,62.167]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.180000005984,0.035000000748,0.144999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[253.883,287.833],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Кривые L_ruka","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[461.575,424.56,0],"ix":2},"a":{"a":0,"k":[454.176,425.589,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-16.006,-12.996],[5.725,-7.226],[14.647,3.007],[0,0]],"o":[[0,0],[13.914,11.297],[-5.723,7.228],[-14.5,-2.976],[0,0]],"v":[[-27.114,-31.501],[5.777,-13.773],[26.534,24.273],[-5.875,15.152],[-32.259,13.552]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.830999995213,0.26699999641,0.019999999626,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[487.767,436.625],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-14.69,18.569],[-16.006,-12.996],[5.724,-7.228],[14.647,3.007],[0,0]],"o":[[0,0],[13.915,11.297],[-5.724,7.227],[-14.499,-2.977],[0,0]],"v":[[-22.341,-31.501],[10.55,-13.773],[31.307,24.274],[-1.102,15.153],[-27.485,13.552]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.875,0.039000002543,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[482.32,436.17],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"cipa 2","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,266,0],"ix":2},"a":{"a":0,"k":[450,450,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"w":900,"h":900,"ip":0,"op":32,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/gears.json b/external/rlottie/example/resource/gears.json new file mode 100644 index 000000000..13b2a0ee1 --- /dev/null +++ b/external/rlottie/example/resource/gears.json @@ -0,0 +1 @@ +{"v":"4.5.7","fr":30,"ip":0,"op":52,"w":128,"h":128,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":3,"nm":"Null 5","ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[0],"e":[90]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":25,"s":[90],"e":[0]},{"t":52}]},"p":{"a":0,"k":[64,64,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ip":0,"op":53,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"gear3","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[360],"e":[0]},{"t":52}]},"p":{"s":true,"x":{"a":0,"k":19.125},"y":{"a":0,"k":22.125}},"a":{"a":0,"k":[28,30,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.627,0.306],[0,0],[0,0],[0,0],[1.704,-0.597],[0,0],[0,0],[0,0],[1.186,-1.384],[0,0],[0,0],[0,0],[0.33,-1.753],[0,0],[0,0],[0,0],[-0.6,-1.701],[0,0],[0,0],[0,0],[-1.387,-1.186],[0,0],[0,0],[0,0],[-0.127,-0.045],[-1.627,-0.306],[0,0],[0,0],[0,0],[-1.703,0.598],[0,0],[0,0],[0,0],[-1.185,1.383],[0,0],[0,0],[0,0],[-0.329,1.754],[0,0],[0,0],[0,0],[0.6,1.703],[0,0],[0,0],[0,0],[1.386,1.188],[0,0],[0,0],[0,0],[0.126,0.045]],"o":[[-1.591,-0.564],[0,0],[0,0],[0,0],[-1.779,0.307],[0,0],[0,0],[0,0],[-1.371,1.14],[0,0],[0,0],[0,0],[-0.63,1.709],[0,0],[0,0],[0,0],[0.31,1.777],[0,0],[0,0],[0,0],[1.145,1.369],[0,0],[0,0],[0,0],[0.127,0.047],[1.59,0.564],[0,0],[0,0],[0,0],[1.779,-0.308],[0,0],[0,0],[0,0],[1.371,-1.142],[0,0],[0,0],[0,0],[0.631,-1.708],[0,0],[0,0],[0,0],[-0.311,-1.78],[0,0],[0,0],[0,0],[-1.145,-1.371],[0,0],[0,0],[0,0],[-0.125,-0.047],[-0.126,-0.044]],"v":[[105.253,4.747],[100.419,3.445],[97.651,8.16],[91.588,8.111],[88.885,3.362],[83.651,4.72],[83.618,10.179],[78.347,13.166],[73.623,10.395],[69.778,14.184],[72.485,18.94],[69.421,24.162],[63.947,24.118],[62.513,29.322],[67.238,32.093],[67.2,38.151],[62.449,40.843],[63.816,46.073],[69.283,46.117],[72.28,51.386],[69.513,56.102],[73.312,59.946],[78.07,57.251],[83.302,60.32],[83.266,65.787],[83.646,65.925],[88.479,67.227],[91.245,62.513],[97.309,62.56],[100.012,67.31],[105.245,65.951],[105.279,60.493],[110.55,57.506],[115.275,60.278],[119.119,56.488],[116.412,51.731],[119.477,46.511],[124.95,46.553],[126.383,41.349],[121.659,38.579],[121.697,32.52],[126.449,29.83],[125.08,24.598],[119.616,24.555],[116.618,19.286],[119.384,14.571],[115.584,10.724],[110.827,13.421],[105.596,10.352],[105.63,4.884],[105.253,4.747]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[-9.941,0],[0,-9.941],[9.941,0],[0,9.941]],"o":[[9.941,0],[0,9.941],[-9.941,0],[0,-9.941]],"v":[[94.463,17.334],[112.463,35.334],[94.463,53.334],[76.463,35.334]],"c":true}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.25,0.37,0.44,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-66.463,-5.334],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":4,"mn":"ADBE Vector Group"}],"ip":0,"op":53,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"gear2","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-360],"e":[0]},{"t":52}]},"p":{"s":true,"x":{"a":0,"k":-22.5},"y":{"a":0,"k":-2.25}},"a":{"a":0,"k":[-36,-4,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[1.982,-0.286],[0,0],[0,0],[0,0],[1.588,-1.254],[0,0],[0,0],[0,0],[0.734,-1.84],[0,0],[0,0],[0,0],[-0.285,-1.981],[0,0],[0,0],[0,0],[-1.254,-1.589],[0,0],[0,0],[0,0],[-1.839,-0.735],[0,0],[0,0],[0,0],[-1.982,0.287],[0,0],[0,0],[0,0],[-1.587,1.254],[0,0],[0,0],[0,0],[-0.734,1.838],[0,0],[0,0],[0,0],[0.287,1.982],[0,0],[0,0],[0,0],[1.255,1.588],[0,0],[0,0],[0,0],[1.838,0.734]],"o":[[0,0],[0,0],[0,0],[-2.001,-0.045],[0,0],[0,0],[0,0],[-1.737,0.951],[0,0],[0,0],[0,0],[-1.052,1.727],[0,0],[0,0],[0,0],[-0.046,2.003],[0,0],[0,0],[0,0],[0.951,1.736],[0,0],[0,0],[0,0],[1.727,1.054],[0,0],[0,0],[0,0],[2.003,0.044],[0,0],[0,0],[0,0],[1.736,-0.95],[0,0],[0,0],[0,0],[1.053,-1.726],[0,0],[0,0],[0,0],[0.044,-2.001],[0,0],[0,0],[0,0],[-0.952,-1.738],[0,0],[0,0],[0,0],[-1.727,-1.053],[-1.838,-0.734]],"v":[[43.8,-32.098],[39.776,-27.554],[33.19,-28.898],[31.27,-34.644],[25.285,-34.281],[24.075,-28.343],[17.7,-26.211],[13.157,-30.235],[8.16,-26.928],[10.083,-21.173],[5.628,-16.139],[-0.317,-17.35],[-2.993,-11.989],[1.549,-7.964],[0.207,-1.377],[-5.538,0.543],[-5.176,6.53],[0.762,7.74],[2.891,14.117],[-1.132,18.662],[2.175,23.66],[7.929,21.736],[12.96,26.192],[11.749,32.139],[17.11,34.817],[21.132,30.273],[27.718,31.613],[29.637,37.362],[35.623,36.999],[36.833,31.06],[43.207,28.929],[47.752,32.952],[52.748,29.646],[50.825,23.89],[55.281,18.856],[61.225,20.068],[63.902,14.708],[59.359,10.683],[60.701,4.096],[66.448,2.174],[66.084,-3.812],[60.147,-5.023],[58.017,-11.399],[62.04,-15.943],[58.733,-20.942],[52.979,-19.019],[47.948,-23.475],[49.159,-29.421],[43.8,-32.098]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[-11.046,0],[0,-11.046],[11.046,0],[0,11.046]],"o":[[11.046,0],[0,11.046],[-11.046,0],[0,-11.046]],"v":[[30.463,-18.666],[50.463,1.334],[30.463,21.334],[10.463,1.334]],"c":true}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.89,0.34,0.3,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-66.463,-5.334],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":4,"mn":"ADBE Vector Group"}],"ip":0,"op":53,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"gear1","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[360],"e":[0]},{"t":52}]},"p":{"s":true,"x":{"a":0,"k":17.063},"y":{"a":0,"k":-23.437}},"a":{"a":0,"k":[24,-34,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.357,0.446],[0,0],[0,0],[0,0],[1.525,-0.316],[0,0],[0,0],[0,0],[1.17,-1.05],[0,0],[0,0],[0,0],[0.479,-1.462],[0,0],[0,0],[0,0],[-0.322,-1.524],[0,0],[0,0],[0,0],[-1.053,-1.172],[0,0],[0,0],[0,0],[-0.103,-0.053],[-1.358,-0.446],[0,0],[0,0],[0,0],[-1.524,0.318],[0,0],[0,0],[0,0],[-1.169,1.05],[0,0],[0,0],[0,0],[-0.478,1.463],[0,0],[0,0],[0,0],[0.322,1.525],[0,0],[0,0],[0,0],[1.053,1.174],[0,0],[0,0],[0,0],[0.102,0.053]],"o":[[-1.298,-0.664],[0,0],[0,0],[0,0],[-1.557,0.062],[0,0],[0,0],[0,0],[-1.301,0.82],[0,0],[0,0],[0,0],[-0.731,1.392],[0,0],[0,0],[0,0],[0.065,1.557],[0,0],[0,0],[0,0],[0.826,1.303],[0,0],[0,0],[0,0],[0.103,0.055],[1.297,0.663],[0,0],[0,0],[0,0],[1.556,-0.062],[0,0],[0,0],[0,0],[1.301,-0.821],[0,0],[0,0],[0,0],[0.732,-1.391],[0,0],[0,0],[0,0],[-0.066,-1.557],[0,0],[0,0],[0,0],[-0.826,-1.304],[0,0],[0,0],[0,0],[-0.102,-0.054],[-0.103,-0.052]],"v":[[103.129,-53.638],[99.14,-55.302],[96.242,-51.581],[91.061,-52.312],[89.282,-56.683],[84.652,-56.115],[84.01,-51.446],[79.164,-49.487],[75.435,-52.395],[71.719,-49.589],[73.501,-45.211],[70.293,-41.09],[65.615,-41.749],[63.803,-37.459],[67.534,-34.55],[66.821,-29.369],[62.454,-27.604],[63.036,-22.972],[67.707,-22.315],[69.68,-17.464],[66.782,-13.743],[69.6,-10.021],[73.973,-11.788],[78.105,-8.567],[77.46,-3.891],[77.769,-3.73],[81.757,-2.067],[84.653,-5.788],[89.836,-5.059],[91.615,-0.687],[96.244,-1.256],[96.887,-5.923],[101.731,-7.882],[105.462,-4.973],[109.177,-7.78],[107.396,-12.158],[110.604,-16.279],[115.282,-15.621],[117.092,-19.912],[113.363,-22.82],[114.076,-28.001],[118.443,-29.765],[117.86,-34.397],[113.19,-35.054],[111.218,-39.904],[114.114,-43.626],[111.296,-47.35],[106.923,-45.582],[102.792,-48.802],[103.436,-53.479],[103.129,-53.638]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[-8.837,0],[0,-8.837],[8.836,0],[0,8.837]],"o":[[8.836,0],[0,8.837],[-8.837,0],[0,-8.837]],"v":[[90.463,-44.666],[106.463,-28.666],[90.463,-12.666],[74.463,-28.666]],"c":true}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.39,0.5,0.56,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-66.463,-5.334],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":4,"mn":"ADBE Vector Group"}],"ip":0,"op":53,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/gears_or_settings.json b/external/rlottie/example/resource/gears_or_settings.json new file mode 100644 index 000000000..668465fab --- /dev/null +++ b/external/rlottie/example/resource/gears_or_settings.json @@ -0,0 +1 @@ +{"v":"5.1.1","fr":25,"ip":0,"op":29,"w":261,"h":299,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"gear Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[91],"e":[0]},{"t":29}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[65.543,243.492,0],"e":[66.114,246.141,0],"to":[0.63389188051224,0.43371549248695,0],"ti":[-0.59447288513184,-1.12922275066376,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":1,"s":[66.114,246.141,0],"e":[66.79,248.814,0],"to":[0.41561776399612,0.78948098421097,0],"ti":[-0.45528426766396,-1.02199518680573,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2,"s":[66.79,248.814,0],"e":[67.639,251.325,0],"to":[0.3837648332119,0.86145251989365,0],"ti":[-0.43365067243576,-0.97296315431595,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[67.639,251.325,0],"e":[68.655,253.812,0],"to":[0.39388379454613,0.88373994827271,0],"ti":[-0.45162639021873,-0.9361160993576,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":4,"s":[68.655,253.812,0],"e":[69.789,256.264,0],"to":[0.42802980542183,0.8872058391571,0],"ti":[-0.49433445930481,-0.91032445430756,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[69.789,256.264,0],"e":[71.114,258.581,0],"to":[0.48347863554955,0.89033323526382,0],"ti":[-0.56523299217224,-0.93818730115891,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[71.114,258.581,0],"e":[72.489,260.831,0],"to":[2.14385366439819,3.55841970443726,0],"ti":[-0.56523299217224,-0.93818730115891,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":7,"s":[72.489,260.831,0],"e":[74.039,263.038,0],"to":[0.66254264116287,1.09970414638519,0],"ti":[-0.56497228145599,-0.77992361783981,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":8,"s":[74.039,263.038,0],"e":[75.676,265.237,0],"to":[0.67640376091003,0.93375080823898,0],"ti":[-0.79516309499741,-0.82775580883026,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":9,"s":[75.676,265.237,0],"e":[77.505,267.325,0],"to":[0.68977969884872,0.71805286407471,0],"ti":[-0.97716957330704,-0.82866209745407,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[77.505,267.325,0],"e":[79.389,269.272,0],"to":[0.76325196027756,0.64725506305695,0],"ti":[-0.82630759477615,-0.56484717130661,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":11,"s":[79.389,269.272,0],"e":[81.407,271.087,0],"to":[0.83111488819122,0.56813335418701,0],"ti":[-0.88650888204575,-0.55724161863327,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12,"s":[81.407,271.087,0],"e":[83.475,272.848,0],"to":[0.85700911283493,0.53869867324829,0],"ti":[-0.89429974555969,-0.50983655452728,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":13,"s":[83.475,272.848,0],"e":[85.579,274.422,0],"to":[0.88868284225464,0.50663435459137,0],"ti":[-0.92676615715027,-0.45997801423073,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":14,"s":[85.579,274.422,0],"e":[87.872,275.881,0],"to":[0.92115861177444,0.45719486474991,0],"ti":[-0.93775117397308,-0.39359641075134,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[87.872,275.881,0],"e":[90.159,277.311,0],"to":[0.95279586315155,0.39991104602814,0],"ti":[-1.10174834728241,-0.50261902809143,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16,"s":[90.159,277.311,0],"e":[92.506,278.622,0],"to":[1.1385383605957,0.51940268278122,0],"ti":[-0.95087832212448,-0.2986201941967,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[92.506,278.622,0],"e":[95.023,279.586,0],"to":[0.99073857069016,0.31113818287849,0],"ti":[-0.93247872591019,-0.34245449304581,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18,"s":[95.023,279.586,0],"e":[97.558,280.658,0],"to":[0.93090575933456,0.34187683463097,0],"ti":[-0.92517024278641,-0.03547479957342,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":19,"s":[97.558,280.658,0],"e":[100.144,281.54,0],"to":[0.95009499788284,0.03643051534891,0],"ti":[-0.93971288204193,-0.2205313295126,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[100.144,281.54,0],"e":[102.775,282.08,0],"to":[1.01888990402222,0.23911255598068,0],"ti":[-1.10344433784485,-0.17690135538578,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21,"s":[102.775,282.08,0],"e":[105.473,282.795,0],"to":[1.20659899711609,0.19343885779381,0],"ti":[-0.9462838768959,0.08564107865095,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[105.473,282.795,0],"e":[108.081,283.204,0],"to":[1.06814050674438,-0.09666941314936,0],"ti":[-0.91514319181442,-0.08660132437944,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":23,"s":[108.081,283.204,0],"e":[110.765,283.459,0],"to":[1.16727662086487,0.11046107113361,0],"ti":[-0.86166793107986,0.15333108603954,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":24,"s":[110.765,283.459,0],"e":[113.543,283.492,0],"to":[1.8156601190567,-0.32309100031853,0],"ti":[-0.0203275885433,-0.0203275885433,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[113.543,283.492,0],"e":[116.293,283.367,0],"to":[0.02718277275562,0.02718277275562,0],"ti":[-0.04166666790843,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":26,"s":[116.293,283.367,0],"e":[118.918,283.117,0],"to":[0.04166666790843,0,0],"ti":[0.04166666790843,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":27,"s":[118.918,283.117,0],"e":[121.668,282.867,0],"to":[-0.04166666790843,0,0],"ti":[0.04166666790843,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":28,"s":[121.668,282.867,0],"e":[124.168,282.242,0],"to":[-0.04166666790843,0,0],"ti":[0.04166666790843,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":29,"s":[124.168,282.242,0],"e":[124.168,282.367,0],"to":[-0.04166666790843,0,0],"ti":[0.04166666790843,0,0]},{"t":30}],"ix":2},"a":{"a":0,"k":[144,280,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16.838,0],[0,16.837],[-16.837,0],[0,-16.839]],"o":[[-16.837,0],[0,-16.839],[16.838,0],[0,16.837]],"v":[[0,30.48],[-30.48,-0.001],[0,-30.48],[30.48,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.356,1.169],[0,0],[0,0],[0,0],[0.889,0.829],[0,0],[0,0],[0,0],[1.195,0.278],[0,0],[0,0],[0,0],[1.169,-0.347],[0,0],[0,0],[0,0],[0.823,-0.892],[0,0],[0,0],[0,0],[0.286,-1.197],[0,0],[0,0],[0,0],[-0.357,-1.165],[0,0],[0,0],[0,0],[-0.881,-0.832],[0,0],[0,0],[0,0],[-1.197,-0.277],[0,0],[0,0],[0,0],[-1.169,0.356],[0,0],[0,0],[0,0],[-0.829,0.883],[0,0],[0,0],[0,0],[-0.277,1.197],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-0.811,-0.911],[0,0],[0,0],[0,0],[-1.157,-0.377],[0,0],[0,0],[0,0],[-1.197,0.25],[0,0],[0,0],[0,0],[-0.9,0.812],[0,0],[0,0],[0,0],[-0.376,1.159],[0,0],[0,0],[0,0],[0.247,1.198],[0,0],[0,0],[0,0],[0.813,0.901],[0,0],[0,0],[0,0],[1.157,0.376],[0,0],[0,0],[0,0],[1.205,-0.257],[0,0],[0,0],[0,0],[0.911,-0.812],[0,0],[0,0],[0,0],[0.377,-1.165],[0,0],[0,0],[0,0],[-0.25,-1.208]],"v":[[40.709,-12.329],[44.006,-19.519],[39.294,-27.681],[31.648,-28.402],[29.097,-31.015],[28.354,-38.909],[20.181,-43.617],[13.217,-40.431],[9.676,-41.423],[5.097,-47.871],[-4.333,-47.871],[-8.774,-41.622],[-12.337,-40.718],[-19.529,-44.005],[-27.688,-39.295],[-28.411,-31.648],[-31.014,-29.094],[-38.91,-28.353],[-43.626,-20.182],[-40.442,-13.217],[-41.431,-9.676],[-47.871,-5.094],[-47.871,4.334],[-41.628,8.773],[-40.719,12.334],[-44.013,19.529],[-39.293,27.689],[-31.647,28.412],[-29.104,31.015],[-28.354,38.908],[-20.192,43.626],[-13.225,40.442],[-9.686,41.432],[-5.104,47.871],[4.334,47.871],[8.766,41.629],[12.327,40.719],[19.519,44.014],[27.681,39.293],[28.402,31.648],[31.013,29.102],[38.909,28.351],[43.618,20.181],[40.432,13.224],[41.422,9.686],[47.872,5.105],[47.872,-4.334],[41.62,-8.764]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.701,231.739],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":29,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"01","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[415.5,245,0],"ix":2},"a":{"a":0,"k":[360,300,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":720,"h":600,"ip":0,"op":29,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"01","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[345.5,185,0],"ix":2},"a":{"a":0,"k":[360,300,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":720,"h":600,"ip":0,"op":29,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/glow_loading.json b/external/rlottie/example/resource/glow_loading.json new file mode 100644 index 000000000..3cbcc056b --- /dev/null +++ b/external/rlottie/example/resource/glow_loading.json @@ -0,0 +1 @@ +{"v":"4.6.8","fr":29.9700012207031,"ip":0,"op":69.0000028104276,"w":256,"h":256,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Glow ball","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[360]},{"t":69.0000028104276}]},"p":{"a":0,"k":[127.984,127.969,0]},"a":{"a":0,"k":[-0.182,32.385,0]},"s":{"a":0,"k":[132,132,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.125,14.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.1635217,0.8509804,0.8105415,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.063,1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 8","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":315},"p":{"a":0,"k":[127.984,127.969,0]},"a":{"a":0,"k":[-0.182,32.385,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":56,"s":[132,132,100],"e":[145,145,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":59,"s":[145,145,100],"e":[132,132,100]},{"t":63.0000025660426}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.125,14.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.8509804,0.8117647,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":62,"s":[0.1647059,0.8509804,0.8117647,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"t":69.0000028104276}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.063,1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 7","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":270},"p":{"a":0,"k":[127.984,127.969,0]},"a":{"a":0,"k":[-0.182,32.385,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":48,"s":[132,132,100],"e":[145,145,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":51,"s":[145,145,100],"e":[132,132,100]},{"t":55.0000022401959}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.125,14.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.6745098,0.8431373,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":47,"s":[0.1647059,0.6745098,0.8431373,1],"e":[0.1647059,0.8509804,0.8117647,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":58,"s":[0.1647059,0.8509804,0.8117647,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"t":69.0000028104276}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.063,1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 6","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":225},"p":{"a":0,"k":[127.984,127.969,0]},"a":{"a":0,"k":[-0.182,32.385,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":39,"s":[132,132,100],"e":[145,145,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":42,"s":[145,145,100],"e":[132,132,100]},{"t":46.0000018736184}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.125,14.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":37,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.8509804,0.8117647,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":43,"s":[0.1647059,0.8509804,0.8117647,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"t":48.0000019550801}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.063,1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 5","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":180},"p":{"a":0,"k":[127.984,127.969,0]},"a":{"a":0,"k":[-0.182,32.385,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":31,"s":[132,132,100],"e":[145,145,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":34,"s":[145,145,100],"e":[132,132,100]},{"t":38.0000015477717}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.125,14.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":26,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.8509804,0.8117647,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":38,"s":[0.1647059,0.8509804,0.8117647,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"t":42.0000017106951}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.063,1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":135},"p":{"a":0,"k":[127.984,127.969,0]},"a":{"a":0,"k":[-0.182,32.385,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":23,"s":[132,132,100],"e":[145,145,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":26,"s":[145,145,100],"e":[132,132,100]},{"t":30.0000012219251}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.125,14.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.8509804,0.8117647,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[0.1647059,0.8509804,0.8117647,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"t":38.0000015477717}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.063,1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":90},"p":{"a":0,"k":[127.984,127.969,0]},"a":{"a":0,"k":[-0.182,32.385,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":14,"s":[132,132,100],"e":[145,145,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":17,"s":[145,145,100],"e":[132,132,100]},{"t":21.0000008553475}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.125,14.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.8509804,0.8117647,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0.1647059,0.8509804,0.8117647,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"t":28.0000011404634}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.063,1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":45},"p":{"a":0,"k":[127.984,127.969,0]},"a":{"a":0,"k":[-0.182,32.385,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":7,"s":[132,132,100],"e":[145,145,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":10,"s":[145,145,100],"e":[132,132,100]},{"t":14.0000005702317}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.125,14.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.8509804,0.8117647,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":16,"s":[0.1647059,0.8509804,0.8117647,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"t":22.0000008960784}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.063,1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[127.984,127.969,0]},"a":{"a":0,"k":[-0.182,32.385,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[132,132,100],"e":[145,145,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":3,"s":[145,145,100],"e":[132,132,100]},{"t":7.00000028511585}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.125,14.125]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0.1647059,0.6313726,0.8509804,1],"e":[0.1647059,0.8509804,0.8117647,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[0.1647059,0.8509804,0.8117647,1],"e":[0.1647059,0.6313726,0.8509804,1]},{"t":16.0000006516934}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.063,1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/gradient_animated_background.json b/external/rlottie/example/resource/gradient_animated_background.json new file mode 100644 index 000000000..f9ce52d41 --- /dev/null +++ b/external/rlottie/example/resource/gradient_animated_background.json @@ -0,0 +1 @@ +{"v":"4.6.10","fr":15,"ip":0,"op":155,"w":1080,"h":1920,"nm":"background","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[540,960,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[1160,880]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[0.9960784,0.7843137,0.145098,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"gf","o":{"a":0,"k":100},"r":1,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[0,0.511,0.89,0.283,0.5,0.334,0.873,0.583,1,0.156,0.857,0.882],"e":[0,0.726,0.283,0.89,0.5,0.441,0.356,0.886,1,0.156,0.429,0.882]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[0,0.726,0.283,0.89,0.5,0.441,0.356,0.886,1,0.156,0.429,0.882],"e":[0,0.89,0.283,0.283,0.5,0.886,0.553,0.219,1,0.882,0.823,0.156]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[0,0.89,0.283,0.283,0.5,0.886,0.553,0.219,1,0.882,0.823,0.156],"e":[0,0,0.312,0.737,0.5,0.078,0.597,0.754,1,0.156,0.882,0.771]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91,"s":[0,0,0.312,0.737,0.5,0.078,0.597,0.754,1,0.156,0.882,0.771],"e":[0,0.51,0.89,0.282,0.5,0.333,0.873,0.582,1,0.157,0.855,0.882]},{"t":120}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[-430.769,-404.573],"e":[23.726,-364.48],"to":[75.7491683959961,6.68213844299316],"ti":[-123.915840148926,-8.51547145843506]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[23.726,-364.48],"e":[312.726,-353.48],"to":[123.915840148926,8.51547145843506],"ti":[-1.00208830833435,-1.83333337306976]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[312.726,-353.48],"e":[29.739,-353.48],"to":[1.00208830833435,1.83333337306976],"ti":[120.055290222168,0.60746711492538]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91,"s":[29.739,-353.48],"e":[-407.606,-357.125],"to":[-120.055290222168,-0.60746711492538],"ti":[72.8907089233398,0.60746711492538]},{"t":120}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[374.412,342.611],"e":[22.822,357.191],"to":[-58.5984153747559,2.42986845970154],"ti":[132.520950317383,-7.89707231521606]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[22.822,357.191],"e":[-420.714,389.994],"to":[-132.520950317383,7.89707231521606],"ti":[-4.68509674072266,-7.89707231521606]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[-420.714,389.994],"e":[50.932,404.573],"to":[4.68509674072266,7.89707231521606],"ti":[-132.918350219727,4.25226974487305]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91,"s":[50.932,404.573],"e":[376.797,364.48],"to":[132.918350219727,-4.25226974487305],"ti":[-54.3107261657715,6.68213844299316]},{"t":120}]},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[93.29,219.491],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":155,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":1,"nm":"Deep Red Solid 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[540,960,0]},"a":{"a":0,"k":[540,960,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"sw":1080,"sh":1920,"sc":"#be2a2a","ip":0,"op":155,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/gradient_sleepy_loader.json b/external/rlottie/example/resource/gradient_sleepy_loader.json new file mode 100644 index 000000000..2881125f7 --- /dev/null +++ b/external/rlottie/example/resource/gradient_sleepy_loader.json @@ -0,0 +1 @@ +{"v":"5.1.8","fr":23.9759979248047,"ip":0,"op":240.999979140721,"w":300,"h":300,"nm":"SynthesisProto_Loader","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-180],"e":[180]},{"t":239.999979227274}],"ix":10},"p":{"a":0,"k":[150.125,150,0],"ix":2},"a":{"a":0,"k":[533,533,0],"ix":1},"s":{"a":0,"k":[16,16,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[65.74,-27.805],[48.897,-48.895],[26.837,-63.449],[0,-71.877],[-27.805,-65.739],[-48.894,-48.896],[-63.449,-26.837],[-71.878,0],[-65.739,27.805],[-48.895,48.895],[-26.837,63.449],[0,71.878],[27.805,65.739],[48.896,48.896],[63.449,26.837],[71.877,0]],"o":[[-63.449,26.837],[-48.894,48.896],[-27.805,65.739],[0,71.878],[26.837,63.449],[48.897,48.895],[65.74,27.805],[71.877,0],[63.449,-26.837],[48.896,-48.896],[27.805,-65.739],[0,-71.877],[-26.837,-63.449],[-48.895,-48.895],[-65.739,-27.805],[-71.878,0]],"v":[[-207.395,-490.833],[-376.703,-376.703],[-490.833,-207.394],[-532.735,0],[-490.833,207.393],[-376.703,376.702],[-207.395,490.833],[0,532.735],[207.394,490.833],[376.702,376.702],[490.833,207.393],[532.738,0],[490.833,-207.394],[376.702,-376.703],[207.394,-490.833],[0,-532.738]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[65.201,65.2],[0,92.206],[-65.199,65.2],[-92.207,0],[-65.2,-65.2],[0,-92.206],[65.2,-65.201],[92.206,0]],"o":[[-65.199,-65.201],[0,-92.206],[65.201,-65.2],[92.206,0],[65.2,65.2],[0,92.206],[-65.2,65.2],[-92.207,0]],"v":[[-244.095,244.094],[-345.202,0],[-244.095,-244.094],[0,-345.202],[244.095,-244.094],[345.202,0],[244.095,244.094],[0,345.202]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.133,0.063,0.282,0.5,0.386,0.257,0.459,1,0.639,0.451,0.635],"ix":9}},"s":{"a":0,"k":[661,0],"ix":5},"e":{"a":0,"k":[-690,0],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[533,533],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720.999937595269,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[180],"e":[-180]},{"t":239.999979227274}],"ix":10},"p":{"a":0,"k":[150.125,150,0],"ix":2},"a":{"a":0,"k":[726,726,0],"ix":1},"s":{"a":0,"k":[16,16,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-400.378],[-400.379,0],[0,400.378],[400.378,0]],"o":[[0,400.378],[400.378,0],[0,-400.378],[-400.379,0]],"v":[[-724.948,0],[0,724.949],[724.948,0],[0,-724.949]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.133,0.063,0.282,0.5,0.386,0.257,0.459,1,0.639,0.451,0.635],"ix":9}},"s":{"a":0,"k":[200,0],"ix":5},"e":{"a":0,"k":[-608,0],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[726,726],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":180,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720.999937595269,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/happy.json b/external/rlottie/example/resource/happy.json new file mode 100644 index 000000000..2558e31b5 --- /dev/null +++ b/external/rlottie/example/resource/happy.json @@ -0,0 +1 @@ +{"v":"5.1.17","fr":25,"ip":0,"op":79,"w":1100,"h":1072,"nm":"feliz","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"emoticon feliz","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[561,549,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[300,300,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Degradado de 4 colores","np":16,"mn":"ADBE 4ColorGradient","ix":1,"en":1,"ef":[{"ty":6,"nm":"Posiciones y colores","mn":"ADBE 4ColorGradient-0011","ix":1,"v":0},{"ty":3,"nm":"Punto 1","mn":"ADBE 4ColorGradient-0001","ix":2,"v":{"a":0,"k":[70.469,58.563],"ix":2}},{"ty":2,"nm":"Color 1","mn":"ADBE 4ColorGradient-0002","ix":3,"v":{"a":0,"k":[0.937254905701,0.937254905701,0.623529434204,1],"ix":3}},{"ty":3,"nm":"Punto 2","mn":"ADBE 4ColorGradient-0003","ix":4,"v":{"a":0,"k":[970.521,70.474],"ix":4}},{"ty":2,"nm":"Color 2","mn":"ADBE 4ColorGradient-0004","ix":5,"v":{"a":0,"k":[0.937254905701,0.937254905701,0.623529434204,1],"ix":5}},{"ty":3,"nm":"Punto 3","mn":"ADBE 4ColorGradient-0005","ix":6,"v":{"a":0,"k":[110,964.8],"ix":6}},{"ty":2,"nm":"Color 3","mn":"ADBE 4ColorGradient-0006","ix":7,"v":{"a":0,"k":[0.937254905701,0.937254905701,0.623529434204,1],"ix":7}},{"ty":3,"nm":"Punto 4","mn":"ADBE 4ColorGradient-0007","ix":8,"v":{"a":0,"k":[990,964.8],"ix":8}},{"ty":2,"nm":"Color 4","mn":"ADBE 4ColorGradient-0008","ix":9,"v":{"a":0,"k":[1,0.78823530674,0.278431385756,1],"ix":9}},{"ty":6,"nm":"Color 4","mn":"ADBE 4ColorGradient-0012","ix":10,"v":0},{"ty":0,"nm":"Fusionar","mn":"ADBE 4ColorGradient-0009","ix":11,"v":{"a":0,"k":100,"ix":11}},{"ty":0,"nm":"Variación","mn":"ADBE 4ColorGradient-0010","ix":12,"v":{"a":0,"k":0,"ix":12}},{"ty":0,"nm":"Opacidad","mn":"ADBE 4ColorGradient-0013","ix":13,"v":{"a":0,"k":100,"ix":13}},{"ty":7,"nm":"Modo de fusión","mn":"ADBE 4ColorGradient-0014","ix":14,"v":{"a":0,"k":5,"ix":14}}]}],"shapes":[{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0,0.894117474556,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"d":1,"ty":"el","s":{"a":0,"k":[115,115],"ix":2},"p":{"a":0,"k":[39,-37],"ix":3},"nm":"Trazado elíptico 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tm","s":{"a":0,"k":32,"ix":1},"e":{"a":0,"k":0,"ix":2},"o":{"a":0,"k":-187,"ix":3},"m":1,"ix":3,"nm":"Recortar trazados 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.011764706112,0.010841984302,0.010841984302,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[6,99],"e":[63,88],"to":[9.5,-1.83333337306976],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31.699,"s":[63,88],"e":[6,99],"to":[0,0],"ti":[9.5,3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45.88,"s":[6,99],"e":[6,70],"to":[-9.5,-3],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.884,"s":[6,70],"e":[6,99],"to":[0,0],"ti":[7.83333349227905,-2.83333325386047]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55.055,"s":[6,99],"e":[-41,87],"to":[-7.83333349227905,2.83333325386047],"ti":[7.83333349227905,2]},{"t":65.8990478108317}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[100,100],"e":[100,100]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":45.88,"s":[100,100],"e":[146,146]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":50.884,"s":[146,146],"e":[100,100]},{"t":55.0552978108317}],"ix":3},"r":{"a":0,"k":-51.614,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"boca 2","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":45.88,"s":[54.7,80.409],"e":[54.7,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":50.884,"s":[54.7,0],"e":[54.7,76]},{"t":55.0552978108317}],"ix":2},"p":{"a":0,"k":[-51,0],"ix":3},"nm":"Trazado elíptico 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":45.88,"s":[54.7,80.409],"e":[54.7,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":50.884,"s":[54.7,0],"e":[54.7,76]},{"t":55.0552978108317}],"ix":2},"p":{"a":0,"k":[51,0],"ix":3},"nm":"Trazado elíptico 2","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.027450980619,0.026697425172,0.026697425172,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.007843137255,0.00719723234,0.00719723234,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.171},"n":"0p667_1_0p167_0p171","t":5.005,"s":[0,-26],"e":[71,-26],"to":[11.8333330154419,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":28.362,"s":[71,-26],"e":[0,-26],"to":[0,0],"ti":[22.1666660308838,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":50.884,"s":[0,-26],"e":[-62,-26],"to":[-22.1666660308838,0],"ti":[10.3333330154419,0]},{"t":74.2408446858317}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":5.005,"s":[100,100],"e":[74,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":28.362,"s":[74,100],"e":[100,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":50.884,"s":[100,100],"e":[87,100]},{"t":74.2408446858317}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"ojos","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Trazado elíptico 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":15,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Recortar trazados 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.011764706112,0.010841984302,0.010841984302,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[52,-36],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-8,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"ceja2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Trazado elíptico 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":15,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Recortar trazados 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.011764706112,0.010841984302,0.010841984302,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-52,-36],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-45,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"ceja1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.171},"n":"0p667_1_0p167_0p171","t":5.005,"s":[0,0],"e":[73,0],"to":[12.1666669845581,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":28.362,"s":[73,0],"e":[0,0],"to":[0,0],"ti":[23.3333339691162,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":50.884,"s":[0,0],"e":[-67,0],"to":[-23.3333339691162,0],"ti":[11.1666669845581,0]},{"t":74.2408446858317}],"ix":2},"a":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45.88,"s":[0,0],"e":[0,-15],"to":[0,-2.5],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.884,"s":[0,-15],"e":[0,0],"to":[0,0],"ti":[0,-2.5]},{"t":55.0552978108317}],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":5.005,"s":[100,100],"e":[70,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":28.362,"s":[70,100],"e":[100,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":50.884,"s":[100,100],"e":[77,100]},{"t":74.2408446858317}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"cejas","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[300,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Trazado elíptico 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784313725,0.847058823529,0.505882352941,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"cara","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":-1.66833500166833,"op":248.581915248582,"st":-1.66833500166833,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/heart.json b/external/rlottie/example/resource/heart.json new file mode 100644 index 000000000..08b20396b --- /dev/null +++ b/external/rlottie/example/resource/heart.json @@ -0,0 +1 @@ +{"v":"5.1.7","fr":29.9700012207031,"ip":0,"op":24.00000097754,"w":100,"h":100,"nm":"heart","ddd":0,"assets":[{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Shape Layer 2 Comp 2","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Shape Layer 2 Comp 2","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":130,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Shape Layer 2 Comp 2","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Shape Layer 2 Comp 2","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Shape Layer 2 Comp 2","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-135,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Shape Layer 2 Comp 2","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-90,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Shape Layer 2 Comp 2","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-45,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Shape Layer 2 Comp 2","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":0,"op":900.000036657751,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.281]},"n":["0p667_1_0p333_0p281"],"t":3,"s":[0],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":9,"s":[100],"e":[0]},{"t":17.0000006924242}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.567},"o":{"x":0.333,"y":0.406},"n":"0p667_0p567_0p333_0p406","t":3,"s":[39.878,39.582,0],"e":[39.878,22.253,0],"to":[0,-0.83333331346512,0],"ti":[0,2.48720121383667,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0.5},"n":"0p667_1_0p333_0p5","t":9,"s":[39.878,22.253,0],"e":[39.878,2.25,0],"to":[0,-8.33440494537354,0],"ti":[0,3.3337619304657,0]},{"t":17.0000006924242}],"ix":2},"a":{"a":0,"k":[-0.122,-27.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[15.897,15.897,-17.409]},"o":{"x":[0.333,0.333,0.333],"y":[-44.172,-44.172,107.618]},"n":["0p667_15p897_0p333_-44p172","0p667_15p897_0p333_-44p172","0p667_-17p409_0p333_107p618"],"t":3,"s":[78.68,78.68,100],"e":[78,78,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-0.562,-0.562,24.545]},"n":["0p667_1_0p333_-0p562","0p667_1_0p333_-0p562","0p667_1_0p333_24p545"],"t":9,"s":[78,78,100],"e":[54,54,100]},{"t":17.0000006924242}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[6.66,6.66],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803921569,0.18431372549,0.56862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.17,-26.594],"ix":2},"a":{"a":0,"k":[0,1.076],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.281]},"n":["0p667_1_0p333_0p281"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":17.0000006924242}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.567},"o":{"x":0.333,"y":0.406},"n":"0p667_0p567_0p333_0p406","t":0,"s":[49.878,39.582,0],"e":[49.878,22.253,0],"to":[0,-2.35414934158325,0],"ti":[0,2.48720121383667,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0.687},"n":"0p667_1_0p333_0p687","t":6,"s":[49.878,22.253,0],"e":[49.878,2.25,0],"to":[0,-8.33440494537354,0],"ti":[0,3.3337619304657,0]},{"t":17.0000006924242}],"ix":2},"a":{"a":0,"k":[-0.122,-27.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[15.897,15.897,-17.409]},"o":{"x":[0.333,0.333,0.333],"y":[-44.172,-44.172,107.618]},"n":["0p667_15p897_0p333_-44p172","0p667_15p897_0p333_-44p172","0p667_-17p409_0p333_107p618"],"t":0,"s":[78.68,78.68,100],"e":[78,78,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-0.773,-0.773,33.75]},"n":["0p667_1_0p333_-0p773","0p667_1_0p333_-0p773","0p667_1_0p333_33p75"],"t":6,"s":[78,78,100],"e":[54,54,100]},{"t":17.0000006924242}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[6.66,6.66],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964705882353,0.309803921569,0.4,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.17,-26.594],"ix":2},"a":{"a":0,"k":[0,1.076],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.281]},"n":["0p667_1_0p333_0p281"],"t":5,"s":[0],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":11,"s":[100],"e":[0]},{"t":19.0000007738859}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.567},"o":{"x":0.333,"y":0.406},"n":"0p667_0p567_0p333_0p406","t":5,"s":[59.878,39.582,0],"e":[59.878,22.253,0],"to":[0,-2.35414934158325,0],"ti":[0,2.48720121383667,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0.5},"n":"0p667_1_0p333_0p5","t":11,"s":[59.878,22.253,0],"e":[59.878,2.25,0],"to":[0,-8.33440494537354,0],"ti":[0,3.3337619304657,0]},{"t":19.0000007738859}],"ix":2},"a":{"a":0,"k":[-0.122,-27.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[15.897,15.897,-17.409]},"o":{"x":[0.333,0.333,0.333],"y":[-44.172,-44.172,107.618]},"n":["0p667_15p897_0p333_-44p172","0p667_15p897_0p333_-44p172","0p667_-17p409_0p333_107p618"],"t":5,"s":[78.68,78.68,100],"e":[78,78,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-0.562,-0.562,24.545]},"n":["0p667_1_0p333_-0p562","0p667_1_0p333_-0p562","0p667_1_0p333_24p545"],"t":11,"s":[78,78,100],"e":[54,54,100]},{"t":19.0000007738859}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[6.66,6.66],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.868822583965,0.051056981554,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.17,-26.594],"ix":2},"a":{"a":0,"k":[0,1.076],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5.00000020365417,"op":905.000036861406,"st":5.00000020365417,"bm":0}]}],"layers":[{"ddd":0,"ind":3,"ty":4,"nm":"Layer 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50.085,49.972,0],"ix":2},"a":{"a":0,"k":[20.392,17.022,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.486,0.486,0.333],"y":[0,0,0]},"n":["0p667_1_0p486_0","0p667_1_0p486_0","0p667_1_0p333_0"],"t":0,"s":[0,0,100],"e":[119,119,100]},{"i":{"x":[0.576,0.576,0.667],"y":[1,1,1]},"o":{"x":[0.439,0.439,0.333],"y":[0,0,0]},"n":["0p576_1_0p439_0","0p576_1_0p439_0","0p667_1_0p333_0"],"t":5,"s":[119,119,100],"e":[82,82,100]},{"i":{"x":[0.288,0.288,0.667],"y":[1,1,1]},"o":{"x":[0.152,0.152,0.333],"y":[0,0,0]},"n":["0p288_1_0p152_0","0p288_1_0p152_0","0p667_1_0p333_0"],"t":10,"s":[82,82,100],"e":[100,100,100]},{"t":15.0000006109625}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.008,2.091],[-2.887,0.06],[0,0],[-2.098,-2.123],[0,0],[0,0],[-3.003,0.063],[0,0],[-2.092,-2.008],[-0.059,-2.889],[2.542,-1.428],[0.178,8.815]],"o":[[2.007,-2.09],[0,0],[3.002,-0.062],[0,0],[0,0],[2.009,-2.205],[0,0],[2.89,-0.058],[2.09,2.008],[0.229,11.336],[-7.185,-3.885],[-0.059,-2.89]],"v":[[-17.06,-13.009],[-9.471,-16.342],[-9.465,-16.342],[-1.555,-13.145],[-0.209,-11.783],[1.081,-13.198],[8.851,-16.714],[8.855,-16.714],[16.579,-13.69],[19.913,-6.096],[0.38,16.772],[-20.083,-5.285]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964999988032,0.310000011968,0.4,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[20.392,17.022],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Shape Layer 2 Comp 1","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[86,86,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":3.00000012219251,"op":903.000036779944,"st":3.00000012219251,"bm":0},{"ddd":0,"ind":6,"ty":1,"nm":"White Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":100,"sh":100,"sc":"#ffffff","ip":0,"op":900.000036657751,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/hourglass.json b/external/rlottie/example/resource/hourglass.json new file mode 100644 index 000000000..8f54d57f4 --- /dev/null +++ b/external/rlottie/example/resource/hourglass.json @@ -0,0 +1 @@ +{"v":"5.0.3","fr":24,"ip":0,"op":46,"w":1280,"h":720,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[719.269,437.649,0],"ix":2},"a":{"a":0,"k":[81.853,109.045,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-15.782,6.528],[0,-19.879]],"o":[[0,0],[0,0],[0,-19.879],[15.81,6.551],[0,0]],"v":[[49.861,99.744],[-49.855,99.744],[-49.855,49.873],[-0.011,4.538],[49.861,49.873]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,19.879],[0,0],[0,0],[0,0],[15.787,-6.528]],"o":[[0,0],[0,0],[0,0],[0,19.901],[-15.782,-6.528]],"v":[[-49.855,-49.873],[-49.855,-99.717],[49.861,-99.717],[49.861,-49.873],[-0.011,-4.54]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[16.932,7.99],[0,23.823],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-16.938,-7.99],[0,-23.795],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-23.795],[16.932,-7.99],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,23.823],[-16.938,7.99],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[81.6,99.744],[58.939,99.744],[58.939,49.873],[9.067,-0.001],[58.939,-49.873],[58.939,-99.717],[81.6,-99.717],[81.6,-108.795],[-81.6,-108.795],[-81.6,-99.717],[-58.933,-99.717],[-58.933,-49.873],[-9.061,-0.001],[-58.933,49.873],[-58.933,99.744],[-81.6,99.744],[-81.6,108.795],[81.6,108.795]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.999999820485,0.999999760646,0.999999820485,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[81.85,109.045],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[717.751,446.954,0],"e":[717.751,529.954,0],"to":[0,13.8333330154419,0],"ti":[0,-13.8333330154419,0]},{"t":4}],"ix":2},"a":{"a":0,"k":[3.594,3.594,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.839,0],[0,-1.839],[-1.857,0],[0,1.84]],"o":[[-1.857,0],[0,1.84],[1.839,0],[0,-1.839]],"v":[[0,-3.345],[-3.345,0],[0,3.345],[3.345,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.594,3.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":32,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 10 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[719.431,537.721,0],"e":[719.431,537,0],"to":[0,-0.90864837169647,0],"ti":[0,1.77124309539795,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[719.431,537,0],"e":[719.431,537,0],"to":[0,-0.35245817899704,0],"ti":[0,0.40625029802322,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":36,"s":[719.431,537,0],"e":[719.431,537.722,0],"to":[0,-0.05667289346457,0],"ti":[0,0.15397024154663,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37,"s":[719.431,537.722,0],"e":[719.431,513.721,0],"to":[0,-2.94422245025635,0],"ti":[0,0.72574734687805,0]},{"t":41}],"ix":2},"a":{"a":0,"k":[61.419,0.91,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[100,0.39,100],"e":[100,7.248,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":4,"s":[100,7.248,100],"e":[100,65.273,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":9,"s":[100,65.273,100],"e":[102,103.253,100]},{"t":24}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.218,1.013],[0,0],[0,0],[0,0],[0,0],[0,0],[14.228,-18.623],[8.547,0.072],[0,0],[0.008,0.001],[0.037,0.001],[0,0],[0.001,0],[0,0],[0.203,0.01],[0,0],[0.028,0.007],[12.494,16.755]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[6.458,1.052],[-12.475,16.329],[0,0],[-0.007,0],[-0.037,-0.001],[0,0],[-0.001,-0.001],[0,0],[-0.196,0.005],[0,0],[-0.028,-0.002],[-9.007,-0.572],[-13.433,-18.017]],"v":[[-54.95,-35.66],[-2.777,-35.66],[-2.777,-35.659],[2.537,-35.659],[2.537,-35.66],[54.71,-35.66],[41.714,8.278],[0.017,35.588],[0.017,35.595],[-0.005,35.589],[-0.12,35.593],[-0.119,35.556],[-0.121,35.555],[-0.12,35.593],[-0.722,35.574],[-0.722,35.595],[-0.806,35.571],[-42.953,5.945]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[61.418,35.91],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 9 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12,"s":[717.751,446.954,0],"e":[717.751,529.954,0],"to":[0,13.8333330154419,0],"ti":[0,-13.8333330154419,0]},{"t":16}],"ix":2},"a":{"a":0,"k":[3.594,3.594,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.839,0],[0,-1.839],[-1.857,0],[0,1.84]],"o":[[-1.857,0],[0,1.84],[1.839,0],[0,-1.839]],"v":[[0,-3.345],[-3.345,0],[0,3.345],[3.345,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.594,3.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":12,"op":24,"st":12,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 8 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":11,"s":[717.751,446.954,0],"e":[717.751,529.954,0],"to":[0,13.8333330154419,0],"ti":[0,-13.8333330154419,0]},{"t":15}],"ix":2},"a":{"a":0,"k":[3.594,3.594,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.839,0],[0,-1.839],[-1.857,0],[0,1.84]],"o":[[-1.857,0],[0,1.84],[1.839,0],[0,-1.839]],"v":[[0,-3.345],[-3.345,0],[0,3.345],[3.345,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.594,3.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":11,"op":23,"st":11,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 7 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[717.751,446.954,0],"e":[717.751,529.954,0],"to":[0,13.8333330154419,0],"ti":[0,-13.8333330154419,0]},{"t":14}],"ix":2},"a":{"a":0,"k":[3.594,3.594,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.839,0],[0,-1.839],[-1.857,0],[0,1.84]],"o":[[-1.857,0],[0,1.84],[1.839,0],[0,-1.839]],"v":[[0,-3.345],[-3.345,0],[0,3.345],[3.345,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.594,3.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":10,"op":22,"st":10,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 6 Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":7,"s":[717.751,446.954,0],"e":[717.751,529.954,0],"to":[0,13.8333330154419,0],"ti":[0,-13.8333330154419,0]},{"t":11}],"ix":2},"a":{"a":0,"k":[3.594,3.594,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.839,0],[0,-1.839],[-1.857,0],[0,1.84]],"o":[[-1.857,0],[0,1.84],[1.839,0],[0,-1.839]],"v":[[0,-3.345],[-3.345,0],[0,3.345],[3.345,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.594,3.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":19,"st":7,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 6 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[717.751,446.954,0],"e":[717.751,529.954,0],"to":[0,13.8333330154419,0],"ti":[0,-13.8333330154419,0]},{"t":9}],"ix":2},"a":{"a":0,"k":[3.594,3.594,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.839,0],[0,-1.839],[-1.857,0],[0,1.84]],"o":[[-1.857,0],[0,1.84],[1.839,0],[0,-1.839]],"v":[[0,-3.345],[-3.345,0],[0,3.345],[3.345,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.594,3.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":17,"st":5,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 5 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2,"s":[717.751,446.954,0],"e":[717.751,529.954,0],"to":[0,13.8333330154419,0],"ti":[0,-13.8333330154419,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[3.594,3.594,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.839,0],[0,-1.839],[-1.857,0],[0,1.84]],"o":[[-1.857,0],[0,1.84],[1.839,0],[0,-1.839]],"v":[[0,-3.345],[-3.345,0],[0,3.345],[3.345,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.594,3.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2,"op":14,"st":2,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[718.431,432.721,0],"ix":2},"a":{"a":0,"k":[61.419,69.91,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[100,100,100],"e":[88.882,63.763,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":10,"s":[88.882,63.763,100],"e":[84.435,49.34,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":14,"s":[84.435,49.34,100],"e":[65.373,33.486,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":18,"s":[65.373,33.486,100],"e":[39.758,11.315,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":24,"s":[39.758,11.315,100],"e":[30.803,-0.129,100]},{"t":27}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.218,1.013],[0,0],[0,0],[0,0],[0,0],[0,0],[14.228,-18.623],[8.547,0.072],[0,0],[0.008,0.001],[0.037,0.001],[0,0],[0.001,0],[0,0],[0.203,0.01],[0,0],[0.028,0.007],[12.494,16.755]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[6.458,1.052],[-12.475,16.329],[0,0],[-0.007,0],[-0.037,-0.001],[0,0],[-0.001,-0.001],[0,0],[-0.196,0.005],[0,0],[-0.028,-0.002],[-9.007,-0.572],[-13.433,-18.017]],"v":[[-54.95,-35.66],[-2.777,-35.66],[-2.777,-35.659],[2.537,-35.659],[2.537,-35.66],[54.71,-35.66],[41.714,8.278],[0.017,35.588],[0.017,35.595],[-0.005,35.589],[-0.12,35.593],[-0.119,35.556],[-0.121,35.555],[-0.12,35.593],[-0.722,35.574],[-0.722,35.595],[-0.806,35.571],[-42.953,5.945]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[61.418,35.91],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":2,"ty":0,"nm":"egg timer","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[0],"e":[180]},{"t":40}],"ix":10},"p":{"a":0,"k":[628,388,0],"ix":2},"a":{"a":0,"k":[719,437,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1400,"h":980,"ip":0,"op":47,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/image_embedded.json b/external/rlottie/example/resource/image_embedded.json new file mode 100644 index 000000000..c3d48387f --- /dev/null +++ b/external/rlottie/example/resource/image_embedded.json @@ -0,0 +1 @@ +{"v":"5.4.3","fr":60,"ip":0,"op":60,"w":800,"h":800,"nm":"Comp 1","ddd":0,"assets":[{"id":"image_0","w":200,"h":300,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAEsCAYAAACG+vy+AAAgAElEQVR4Xly9C7Tla1Xd+e29zzlVdYsLl6cKAZLWaKsdjenWoR0HaKImrQ61Y8zQ1iHa7StttH00GMVHHAYBjSIxoh0RENELKEoUFUFIIgiIBLHTLYo61PYBmiCPW7fqPPajx5y/Ob//xpJrVZ06Z+/9/75vrTXXXHOtb/XtX/nDh/1YjcPqZBzGGPrz/jDGYTXGdr8f+7HWv+qr42ysx3rsx9DfV2v/vh+HcTiMsfLPHcb2cPDP7w76Pn1N3zHGejXGyt+n/9ZjvR5jtVqNlb4+eK3NajXWeu9xGGv9gL9X770a6xWvr9eaX/fX9Mn0uYf/zOfOc/gn9fOHvAM/zVf0B/3sauyGPvd6HFbr+fr9Hr2evlu/Dz29fnA1xsHPqc+9H0M/51XkdVk/3lM/5tXTIunPWVt94/J11nN5jX5O/7DX6ERrs1n7BbQWrOV+rA5aG+3DGIfd3p/Lb+L3Wv6sn9+M/bh7M4Z2euXXGWPjp9K6ag2G92+399tmrVhzfZ+eS8+xyz6cjjFO1vr53RiH/bi+HuNstRqX+8O48PfyGhs/xGHs9yt/NJ2qK+2VP6deb4wrr+d+bFbrcbbSeWGh+j1nq8O4uVmNzUrnbcXnHOtxsT+M8z1nxTukdfL38Ln9Lz6LrK9+Xmuh5/fZO4zBsh7GxV5ngf3WWbrU1n77Vz7bW7tfzaM/DquVF0kv621YHcZmfxin3ii9sB5qPa68AD2EMgotwmHMz3vYc1j0YTgRNjedHC2ED6//ygPaiOYRlvHwsBsfteHXZdF5dP1sDZpDyU/vvID9/Ly6DpM+hxdvHmUdeP5+pU9zWPtZ5RS0UDxej30+mV5XHzSHUO8/D3uece/Pweph8DUTm1qMTLuC89C3c5bnlvr7/PY2ED1rNna9Yd12OpReyrGxt9HaaNMOY6d/sxHMc+PvPVvrkA3vow6t/jvxuu/83tuD9v3gfdUa6qBrHbteXseVrIcDqs9xOg7j2maM1X43zrSvQ4d9NS7sXPlZvQfrr9fVymBk+kz6Hr1W18jP5KXejzXeiWcc+3HXZjXOvDK4PTm2q/1qXMrRZT9kAHbW2QuME8PW516vtLs4Be8PR9ifSwZxycfivB1WY/UdX/lsHnXNm9ob6sBoseKFOFircbbGgvWkfTG9hR5IP4XnwRPo+7VDByzEH3i1xxPrARwt9J82ao1H5GjmE/vfWKw+BM9YLx4Ps8piafGzlVr0nRYw3y8v22VlvTDyPHEWWxvFV/S7DrnXIwumz6wPo6i69hr1MOMB7Xny9ePI4M3OIcejs67YHhGgxuAIOCMy3+MoZCexctSVY9HL6CDqEMl56Hu29pI1yP3Y77UCGBi/MIgbqzGurffj1HvgmOjV4vCySoqml/v9uLMjItaLd5/1UzIefb8c5rW1Xjv7pEMrY5P9JlpuVvtxQhxmrRLZHJEcWVgBRQY5QX1moht7xFnZj2urw7i+XnOmvDXslZ5URiZXaIPw4Va0SPTPe2N8McW8hj6kfkKvcb4f44JlnM+9espX/cjBoT2GoYOhY8ohAYYY8thT8QFkjRhILRyIxEIGguz1YLz5fm8glsMGaOvB18IJThHyepAbVXgNfR0flA9ub9/4CYDaFt7EQ+trRMYl1OejAVPyTDMcG551sXkfr4XDfLyKnIixViFR4oRDtH5WXpPvsUPoR8zhAV4AMexY/IEWTyrvTVxdoCXGoVfl+71u+9XYnCTuao13OpA7Ik0i7Mq4gK3W7zosm8N+XFsPHzQ9/0kW0Z9ntffBw1BW4/ywHuc+uIkfdqM66Iquy0HX++i1DeEEbwOz/az16lrrHMzL3R7HVcM1HGJndge9Ms/l/YmR6PeTIQinNeDrdliJVor+WlFFM59EH/r9OAtKKSQMsObwGyEpqvE6ipQXA1hFWhBw/7SveQ7nWtBInt6HkQMXHzRzBVmynsbhyHgVHye8PbfCC8nf1vmzHtuL742uN8um1Vjy0Hj25Cr2JtmgGI8DUuJM8wJgIIePEE4UJBc6EB39zfLYGLN+GYsH5tl+9Wx/Ja/hKAHfiI5sTQAQxrNuHsRxAvYFBs7Dnn9zNI0f0WsJsqzWY7fjoOi1tHs6Jt6JmctoPXFYJ+s13jELZXi07W4Rxe199YL6eXnOA55Yh+h0rcgDXG6eghPEoQm2XIwxzresaSEyvzevWuDuqfMQEiydG+WAjTqsxgJptB9yBM5Qkwt4PeLJ+RzLCjvKHfSZV4aGXg9FLq25YKD/Yz2vreVGFD05Y/p+Dn8/dyNVYrbXh+ijs3yltGFPDqvj4n/+rq95riMWnzHJjQ/JGLs1gdPvk//HIRQE0/fKkPQqx5CDMO+F0WHPa+/2u+DAhDlvGJusdzixF8JD1oNOuHWUDwSx+Qebc/jwJx/RBhWoTQPJ9/J8SXSSpPrQTZOT59ASYwjHUUvfVfICbxdDSaj3QXK0AhtPA4oH7rFqNFLU1rqVuDAuz8bUQBpl+STTp41NINvJRgYG5AAFcEDsX73ePqnJN/gE2tHT1d6HB+cDtPUBDdGgI60k+2J38OGTsZuOgM4x3NP3QkushgykxrjdK3EG7Ho/5WZ7QJMLYHQYFdAquVggLYdmFejFe8sgHPXWymkwcMFtHWilA/oefY4iHL0/qSI5X41U77WcMZ5NP6/nNFmw53e5G//c07/muQcdNJuBk2os2KxCchJDn2J94z0eUP++rYfNAcIjL+zRxgcSTOqQtodJYNHIbQihwrKYfOGJ85gwEP7jzI3j1QMgehzrvY3x/QObsc33FBbgdoFEQdjxiol8E3YsyZo3MXSEcXMiwGJAeaUYC5g2GxP2bUHo/HRDe1+K9eyTBGIEO5NU9kBrzeo6lAPwZx2EzSaw7bBzvqdkXQdCuSNOi2URZFMk2azljWXs2hf9I95en+VCMGu/tzfVgSHp52B2h5qH9fPJu9sDxyML0onZGocdzkCLt9bZIkKe6kwFa3nPgxb0Z3vxuYaLcSsKbtb7cd3nkbyR2BnioURNokg/7Vw/J+lr55I9T44eYT6dP5ls4syvvvtrnwdJm3DU0Fi8DMBZjf1avklLK4hF4PQLrTZArXj+YsvSuooS+qWwSnImdqLeEGxalkIL5g2yTWE4oDoSerap8WWe0sAA7QFW7+iSHMTGvNKChAr1pgQC+TV79ANJ8rKLUSS69uvFzv47a+CH7/PXJzuXi+8PrOKpl4R0JuTxrDPxDxzK0gVylSpPLgc/buzv5FOwS7mc8IX+06HfGeyN60eRGc/N6mi97YmH8gJ4WUV9RUE5ljtb9qwwC+DKOvn7y/Tk9bV7yiO8B+B2H+SNjvBEEzhYkwbrgKkYRldHBmnDXLY4qy2j2gduwVXh6VkpOWadN+hoHLgjmxN9DJzoD2PF3oXlCmtbY4F2HmP1PV/3/IXIi7dzUhzKkMMWOnW98WErxBLVq4fQG67ELjhRxyvMGkeTb+csCx71RhoWgCllAKYeRdUE0WnDyzrxKMlHZuLIQgNAepCxqtY0xJUbV+uzGtZgHFrYom4vb8+5ocZffa+43hANvFO8X6KGXyIb37xFB5iDhDcy5Fv4NCJRPrjyuLJYZmO6eUeY3Ct8BBH9BOsNa7fe2ED2onh3Sh5YX72O6FF2aj0u83x6LdUWTNvPhLqHngN2Z7eHLg+rZHhiYE5C32jqmpjXNlArUN0MZRLsE+VaCycxHRkeEDpf+6D1oh6TPMZ5GgulMyXYVja1iXrZylgJVHeo3p2S04PIBU6x3kURTAbiMoWfhwjlmlryVv2bd+4ZX/+j05/7Y8SLsxmwJ3oDQ5XVxvWS3dhA5cW0mh6G4ImfYbHx0dqEJZkHdwubKmlOvlJWKUVBaiBQnMXpwKWkQzPsT7/LWQsbx7PoPe0/vBjb/Ur/HBYmHj41n+mtp5fMBiUy9FmW5wl+npGFz+uNnIxaDEnGYQMQOxgjCaXKHpHHgfF5B8w3fw7sDU0wsxr9nBJ2RQ/gaE7zYQstbMZL9KgOCMdD0EmHQPBHh1Z0r1k9f3YSXDNtqzEurijg9UkbQexyYgT28jFy8kntaaCiWTkZIbQJz5U1So63SxCXY9RPXYqRM+wLQZC8SRHA7Oe69bhASzIor5Yct7hw5XJEh4VSlmGRNwlOCQoCB222PmNyYiKTlhqK480zv/65pHFhgeQNhPN4/eBl07RY2FZGog/jwmLgViJIPbmr02FQHP677ZPGXUKf+R/HZPBtizgkqHgPcG84cxladqT4tZWEeldStuybFx5iQZ9bLJ0Wr5gTFq4LVWoyny9wRK/VekbXpOAsdjrjGKAKEyFqUPdArdDPweY5gQzrBfYHArzvr4UNtKNJcJfj4J0oFHK+Q4knxzNTJTbnIJeGoxJ1u99Rl4BCV/WbRF5bJihqLy5Pa0aHg33qSL9E/DouCq0Ng0QQEwV+IEryZtRMZzfHqRJjIUzkEAt9FPVxwKyydlNFSEU7Gb4p6+YEodz1vZeqrO8wmFnmCE4oIbBzXrVEKah8yCn2bsEkdtA/8HXPEa4Brznhazkbj9acQr8LorgA50OFjwOqFAPWY+MpS99pc4ptTSPnRVuQxiPJ8+BpTOe5CJV6QZJ3YE1hSg7dEU/PwaKqrG+caXjwuqv/TuwWLh8mLEXF8Ok9pj5+Ohg6eGaOoAFs9I60RED7+9Cp1GwwT6NURSx7bYyzhltjKJb3egaOtWCn15RnO8pmlsJf1tCIy9GWgq2MRYW3sd+Z7dE7nqrKvZGHPYxzyVFUowqLCNTCkHS0XA9QdTpemM8nmlV1BkEsHc6wSKHvQZ6sRXfl6ElJvuMw7TicALNX2ZrULpT7iFVSIVKlBJxAGU7Vb3SWVCy11/driO0a42pQt3Ftzj8G0wZhxOcyi9nkX+dAz2hj4ut52UnemGX94Sc+JyTeajjc2VAq1cAXlpHRG4OjcyhcfSfwcjBTzIumSR/AYdcoLdRpP78TywAWPxTGYY/n0J/EKp7NBy84Hv0VnkKHHt9Y7j3PYIi1SDVytL2QovWKMb0qoXW1WH029FVL8W2JVjLeVloKh+r38XZxM9SH8lllJLOutMS3fO5EmUlLNupg5MTsmB0JEpiZR8VF2KkMM1mONDsZCJ5REeJ0DXNztROM6o4dLN2QBAWMDvy4bbmJKFQiHPQMjktGUodX9cNBRUoZwRpDWOJgDKPOJcYGgFwAV+GknkHnS9HjYq8Dz0HXMbmmSOccNWvtpee8KdpJjyVd1nFu6OTdCZb2NQXqGe1gyhzdwyD6FE9HyPusfuRJzyNIxqt6K9Z41Foigr44fie4ScadDOtFN+Mg7Lc2X+GF1oNc7XgAxHThlctYYE/vwzZUGyQD0YaZjhS3nfBnSJcahMmBJGPAleM6aQ0VNgxvUqAs6hfuWxsFC0L6T3Tk2cWItbBp6JHX8eEM3YmgDlaocQN5xFIYI5jpc8ephP+3bCQJszc5+jFX8yPBaJUCYWH8oA2kfA+fO/HK8CPb5z/Xc9fZ7LY79s7ULYf3bIxxY0OOoleT49BBu9wjN9GqeV/MEOHBqdID/fxTqPlikKJ0l/VuHUz/rvoNtaKAw8h99EVBpu6gXk3GcdvECgXl65K0hC3zA+d1vG5DNRvVMigz1uEB3BdBrRyDopEMHe0ZZgM6JYFfJDOh1X/4Sc8/oJTF7nlBhT48kf+uxCVRxZ4rH8RlNZsZR2K/PuHgWbNFMW166hpY5QOBQ7bgWTdJ+M6hI5KksBX8yoJEEjIFlXjXMkZIVvCweg5Xb7PQHKYcQnn15FvW87giz+f20QhUQzqSr03NUTOuJWLUJ5rGjjDuWAXbBF4eWarXJvX6rCSm4G5j6EprSnW1JDSjBuZb5tBPHHQM/AOn++v7/VjtUrEKQycs3vxAh99JbLyrcDyVZfISOyhHmRTfHIHCaJXMdgGuhAowjjwpybUS9TBDZTlxLEtxE9ISgxdUurVDRCoDuWtDBJmRNNH+cg8sM3w+oobtZPp+UXgrRYC8CJGQtVjQAcVIv0dzph/4hucfZJk+VOWPq6iMRMOFm3lIIocPXenDUBylyiasNydW0md7RnIJ5wWRC+DZWRCUxPGXNg4MgygipiaQK65DkcMJb6JSUt54gnrUnJbUQBoRFdmKcOqt+2wUncbYmnX6KxL1/NgUmoCuZqLcIl9l5JZRJ0FdaGOex6roOBeKYayp2wVChgAZi5GBCstzRh/WdC6wy0c8LQQW+OG9UPcacom54kGu9DVrMjgUS+bE56ioUO+JTIV3bztCk/HEkNQbgF+mqI3/cSKm75vaJql3wa/vm7W0m3VUER29Gu/dIUbUz0pDZjLBFXUM6M4UObIPpZ1l3NZUpYbmyBj5S6O7HUcEnn76aMqoybEeWofV9z3pxw6qdso74LmOYIM/DBBF1NmlvasYrNQ6/MLFhST5+7UoVcIesKWhWrIKfB4/1kQLcQTFKB5Ui2RYkAUzJQnyi+aHEMmWLTUQQmU1QknUqs8KwgoK8QJQBGt9gnCuPIxCGTmZ09yjugjgoHAtNjLzMozGh0Ekgz+CkshKPsjo9O8mIvzC/WCFm7xGBXYumgU+ppJwxOItXh9qlWMueNgaaJWzWhh5ThmIDvDWvSPKHXgG8mGiZGD7FBs6r7Jz26sEEoyRepEfoTUQcjOzTH6diEJTDG7EcFRRDSZ4X06pfSmYNI71lpPvjQ0bKT0FYz2n6GrlStVqwXZyhiUbueNuAByJIkwCZsgbcIRySauHp16s1fhJ4I7Vdz/xJw5iMaynmakTzImtyeEXKCIpsAhD5yRRjgpLOyzZcwXXC9YYkvGgV3JWYU3ArPLSJXbLNrUIhgfRJsoowL1AOW9SlL9+xEnDzqMRP59kO8pU4e7mU8bOLmzxJYdnQcgWD0M0FNuapVt+fKpI+0aGcjqcIRBI9EJHJlQ56sQQkLhTDZbhN9GF/VrkFjruhQnSNzmyVCPmmspEgAFafKJjpStF3AWHUpSleHiQXsqROHGpSmMX5oDcwuwuQpahS87B4lF9WKwr6CD5mU2terc6u6KEIzq/EUjM2FngFnUrKYpxUGbnyn6uRD9vxpXz0UXAg8MhIiphF/SCrlauSjTpx23u1C8010TrNdz71Ax09fQnvfCgBbOFhjrjtUqpCRJw8EWRKiIY2lS/Fb0+HzCHTrDG379xwqcPWHyMeCxQxsUZaIkZ0szIaGM2Pkj2eFVmJieAYcIL6ISJH69i1fSfE1TVbFgkFLgpbrmzbCkQUb1GDbBUu6vwZMl9vlsbWqixKYRrmlCj0V7KO6I89ZNhKhX+BWLVa+JgUkOwPoq1p0OTiq+bmAopZ7J7RAk2kZ9FP3lfiIxCPK2XtHGWXOx3fk8zgUrGi9mDtVDE8gxOzPsAkb27uBiH2ocDmiyFQhuxHRv1E16nGjUiBYLKMa6rkYuMioJfjnsPB/wUTtfy9uSJpqmVp6ppKxV4OXKgKmumugeOzKXQnDVtCH9efuXMO7/i0K6e+qQXu/QmA2kIZjH2xrB9KIe+JLX2bJKdhBLWQkvvIxFZPbVe/s5+M27bga1nI4sxftiJJv7Yaw52NsMkQQxHeB090VIEKiyDAYGFqRchIQfC4YUXarRwaZGaxAlW4mzPtLa4Ei+l+kUTvvL3yURmk9YCvEzxynkoMc6BKNzRE3qz7ABW40SRJF5VK6BinPMuYxw4fMngFTlET5eW5HWBOn0Xok/zL6ICh4nDT6WYoixwDG2S/s0GEgey6MdyBpLwE3nTuxEGbFbHo5BFGUE22VoO9agm60fYPlDWRijNlttpldzjjBsJG2GqKxDVUFisz6x9N02dnBGZSljM1DoaeWnyQmmc4F4qZ8JWrU27Lb2XT33SixwbnQDFyquLASuyGUo4WaC8+VpQS/0L9LTJgru5zoMPY5xbEcr3ywD1kBeH9bht9eQC6Eim4qmNdYNWDan0usOq0C4CVfpEh3Dl8lBO7J1vBZIFc7RjjTMA++IDER3Qsl7tmaZQJk+lRW3CDgUeY2j60GS9+jMtfyjZKpb99yPOHcQFhK0WytViPUOMXcdgMjFRmDYXsYFYebvkgqE4moWkzx5Vdg8DPSp7RxUIJnIHixpTVCvd6RrC7NEARje34kfjfQ9yIaW6eSYictutOQxFJZwNPpOjtn42EnavRahWWh8C2UsEhcBwJhvvSUcjDqzzEGySLSHEZ5O4q9CdLtdyLDYif4owVzgCoSqfwmd84wsPwmtdAMr5y0NVui5D0QGEVnQmaM+qnMRaID1k84S8hqIFBoJWSAwSHPd63G+MGBFf6eUa32Q1yIX0ebQIZWD88aKWte4m0Yf+ajyWWaQI4PTeSCg4K/Lc+l4yTrCzVbHZNEcQJXp7aOqG80kK2LAamBP8y9Lky6UYiSjsBhLuBFl/HW9ex6TPRKGUNe7ACw8oOBpgUJYFrw98rFECcoAx9aaGsHEObooLrAGD8x9KVyJXStSzsQk1NVBXzwOhEicjw1KynAhDP0bl/nTs+T0DkRyJJkEdQiVwXS7Xa+CcePKFUM2GueRi3rpkgxW5MngDB9c4WgdTAsjoZafaR1OnoAWjHIy4UJezcxirH3zyCw/uypKQr6X8UHNEEH7Q3WiGPcipvYGWL+A/1AJKLrGm0jyLMUgt9IWziOoEb8Rx633bwadD7qEJDs/QwoURaHHWDBuwE0f46MMQXRWhOqErhS17gDBGigQyVn2PqsHOW7KZbUU93cA4KUKpknx/aMZWW+E7Wp3PyU/z0qxDlCovp9/IaKzfRqMmjHDycjyI8YAMbhEo1Sr2MC2hxv2HHeswaV9J3DkV1XzZ869aqI33nvUP1AGWwzd5CgQVq1XdlFZfkbcFYj1GHc4Rq5z6Wdgr09qBhjFEWpZBHgx8CIRxzksfhqKcUAPGIbhPa20OgH9eBkP+y1lUzkkZs8XgMpIBZfYdqAdc+PW3EtVQKKdUsEf35dOU+pnTi6ownvPN9/oU3acPmgPEJmHp9YB45E6c4CDSvw71a3bJRYYjMk+NMvWaWgAtio0EnCgPTQU5koEjKQns0d4yeq2UmDbBtHqW5uvkNDmF8Wz1BE2C9b4y0lvC86lNyEu7q86Jq6q0aL+azGnj1JctBTC9ATgQGq0EC2CqQAxtEptoJkm/MWhEikd5jA2wn1lFw3RTqtIruUbwNEn6alwqH7Kjh5BAcbBLca/gJZXkqGTNFLa9wMyPXqsNceE3THWyl26aMjUdnVVcMe2xeOZ6VSt+J7Tk0DfCdNAC0Zg2bhfiJuVLXqt8AzoXIgK2THkk/95fOCQKz86U/H3NIZCPzFWPIpc90WtL1h4FR6aZyCnQPQic23loxBLJFF94VpU29mP1vG954UEhTd78PktDFvZqmSpxLJ1gNA4fi4O9O2zivrFyia+qUjVzEkunYkvbpH7gjgVx5CLbMF9OZO0dyHGSYvgDX2siG0M9Zp6qpzF68MEHerjF1PByP27LW8RgrS8Km2QSwDJqNtIQwQaCRB7VcnBqtgNIkRhXxXLFqZHi0Kx1LNshtCs6OR+IlTvRTA6oLxZL6xBaUKd+9aOiIEayJPhaI9ee0jZqyiMHH92U8DcSbwSyQKXK0vXvMpD1Toa6zUCD7HEYNEeQFNEY09NzCWVskalgtml4PLXZSucq5DhtqZ7V6uB/1Zt00N356OjA2pIxLdIUvydluYlTXQ5IAbQkCOwlbbQykBIQBWdozHIuQyVzjtlngD3TVlbPfvJPHK6fAJ/EON02ZsRL9o11mJpAUcVugt1QhZwO2Ti5yVjFvFLZlUU7fAbGmelIzUFLCOPC8DY2GsVw5dRAvHjPKY3QT24I4S3wpTBUT69P0egjb6WoRdgHibqqrQiyFlMWBO/IJgMJ9veZwrLoXiNhLeA1wxISozUD14HSrgolzqZbKBniAniwFNbkPbXwUqXys+11iKfv4e57JcILugmGtVrcBAkJO4boYXrTKIkadnKFKvLe9vT7sd9t51A8eiREjVNoBKgARfl5TEXgx8Ptui4JkBasRtIqR8Q5ar0nBpCD31FEjRB9Zc89CKeCDi0ERvRfNzTQIeJVOR+tn86PCCEGzPE5OUvZtpYGYoSul2SuGwwcHN3qh7/53sPdG4Zy6YC+Z7sadw6MaoMDp7DEBL0mZ60vpJyfsqJBWYqKLAtFJ8Ekh+nIC8D/eA0YLD2M+qDrIjrGZzFEDpjgWZtwyCdIcBe2ozOSdBCth6paNZH4/l1pQA4IxILaTzEQQS05AYqcaQoL21K4UDkCarWckTUYut5Rz0p/Nqewm66NEElR2MInT2KaAqAia+lpS0dMBy+HGTlLIEI2vnw/Bz/+vbg7UTPVmAWU5MBQN8I5mPHL0DcoWt4Y9gk62KTPTPDxy4JM7ftRD3qBD8+fOVcukEZmM7tLO16pgkh4sPbSmPHOuvC2vCAenpzlLpcoiPC3pVh2XkHdjghScqQ0dbEPaYOMuLqzatsmennut9x7eOBGIynBmu/absZtixU5gC2wyUBavp3FvpkoNRwSAfzi+Z14SEFw56hCnUAWT3GS/EDU74VOj2ovanJqlKrRxHZgbRh5aTmH5jzhwuY0ChgrvB7ar0X307Cb2mU2loUXU3Y9iaS8suogUgGgXi7zgREoEiph7kbq3z15w/sb6Jnmoxqyfo6JlAxnE7QoGyTxotbkjiKXGL4UwFsfoV6SiNDzGe5l6qZyGN174YOE0raMmn1+4AzddbxewaOJF8nhZ061dy8MquUlYvBzS3st7dU5uOkibI2llGs1akjmRTQAf+WgLAXJ3AED4wwHNAxKO4L21Ml8yBiLLYMkUCuTlEti0pZdpQ0XiQaL3iwbGaPX3qiwqDbcnFRUFelZWT3vW37scHM9xoNPPVFovHd/4uS0C4lMIln9pPBWLugYK8cDlkrjBzOORnRpOr8KAxQAACAASURBVPjoZacTUX/2Qq009QIYpQVQR9jlitKk+6tTOaZIVQk1fpuDCIy/kW4zHV1P1MjhYoQq7axltDqWVIuoZyPk8xSif33wA6+1IZeRUXtyYiYaivU6VcWbIwjJEIFnlbR6iSap+owmBRLuS79Wau8uzqyjakczN4uU5my1c2usn3wK7IAMdj5HlDDSFYxDh1vfD8TAOOS4ahQM9AM+4nakaYxEJLmEiZq2RcfovNcttQcmVuyKjJ68w54+IRYnRaSh+YqcT19zTuMhb205YI+rg5MRoSYIpT1rNkQODYbQ87qNNnuBNIcozu4SJSutYXRS1Ao1kKgZnIuEnFj9+Lfde7i53o+7aAgYd+LhtHmCNHpMY8uwG3pjM087VXeXBaDoRCbJ2FEHXryBmnWiy3Il1ErT9ZxjBA5HHHglfsZhdSnaOVcIL+7gWGFeqE4dnruc4LWJKrULsUU+AGGgWtNtf0eS+BYqqUFAVZpmFcuyEz3MBpmpEeXoNlXzeJFqTFDjepCNMdBAkYAqf+Xhydsy7tLTFF2txsguh0R4MIp4VcYknRoGRvPuaTLISPrLdYwj42gvSCGRJz96cmTYtFS4p8gxVCdpSg857zf/HkaKNCzdpvl+08ypQ1QqbiMKHGNGlvbxSMJkwND2bMAmEzLbqhyA10EOMePWuarRkn5cr6PiblXbznGTaANnww7OvA/Dt0ohtbQOiJvqdSXp9377iw43VL0VERX6TIukw0GRTG9FpdyJTjwyMvZF+g4zEr6s2V+SbvuT1cbG5152txgCtQyBMt9dh0vraQVwuHOvr2so8vCYPdRyIE866TSUeeYEs+IKIu8gAi0ojUvB+CYcGH7naGLIlg2MZEItquqP6BCBqVtDvT8l1ZzVSCS8GWV6yCGocWQ4QPRKc5lS9a0MR+yZhXqRXbTFlZ/ntRj+UKYOuNfo4YT6CI7pc3poRX6mxTu0YkQMvVL7MTwFvT+foW4YBM9ko0pCT7SlIOh+mmmzKTrGEOmBIWcQLLbqQrWNTFSvYtwgqm0QmROsd+2A6hJYrqe4Ap8iYmpFWoO6q+aMxMmeVfKPTtVkbd4316QOxqusXvgdLz7c2HTatyhRMniJDGlA4SMBJ/LnXDMgtkCRgFE/9TRNgDJ8S4fR/RUn48qHMVEFzQbePW2UHhbRtktHaI68Gay0cwpb+dB7EXlvPYpYKFeg41KZfJhiYoyksBHaFkMjEWcB7ak7fTBlqNuaJVtGSWF3r/xD8vsQEjLWDB3TZxdm7tCCJqocJiKJinGFhmIJPQbUjoZoZDYvzqe/k7dBVfP0CEBlUKbObRzZHeVFHjWKHKWHBFgXoWioTSTienKGOhTi4BQRTXYugQFPGCkq/FErpDJup5rCYqO8p7RoEaKOFXwVnQ5EhbwxjBVL1mHl9jMM/Ksw0UM2klb5M7WMnPUmJQNy+uqEdjyGRu5POMJO0STPYCeXJN3dpJYYYfB2HD/5nS85WMYxdtY7aaGUyEpvr40p3UguQjTRSpH4ofR1ggy3Ow3FEMXfBISgC3Djeof0W/JR+jO/GHrgLQq0oobARtO036Of/pTOvkpfCYW/cNi8VCAH0YY5S/THtxClr3eKfZM4JoSTsOll6ig8HjOq0M2e/hR3TKYGYRcSjh4GMI+W9ljyBV5UG6iipBgzJawEZzZLh96G4bC/TC8HJtAR18Q7wXWO2sGAKs4Mm+Xn7vUGUe+mXtKI57pKIrlyFBUU1Z7rZwjRYIPIVMzCK9U/tP/sTa6+8Jnp+WidDAesXEokiJ2QWVEmkVhRkRxBBq9zARsJodE50At7x96URpq5mNeTdfUexumk+BMXT7pAapSal7WB0MFtmvO/i8r+6ae+5KCk6YbujkjiqST9fsNwfHC9g35oNtRkwxsymdqRqwnigfhZYEHiSwZLA7X83xwhFElKqqmxOzrVfLbyCul+dEJuPdjGXormqkXQCHuSduFAKnwkBUJkJhmjeqSjwszxHjqgykEacVpLuJ4ypjdPY2SsNUNNoI/aRi+u0uiBrsWkW1L9D24agiFKuk0PQ3RqwEHCvfj95Luzvx60jralvR4kxmGmLOtYLtUxTOwIp7xjp354AHXgq+HYTgwWtSJPs9lj2OixiFKmn48ErtVowSJGHZFhHfqbnIHOmJ9ba7XeoBKYTW1M+NCZ0Bns/tC23c7HUs9xrEd+E0zBJMkz73N1g9GizdoP0pLZOWlaG6ekUofKDXpZO82ffdpPHa5t1v7gNzbS6Yxx3/Zk3Mr4lFbBob0Fu7TgKtSg1aFhqoEAYaIWU3Nf249teVh0P4RSDrcSUi+5FkpWHN/u5vyMmtFDkPTWI8r75sIYdZZpIL974DM8zXkG4YeGIaIX2BSuXt6bCjMiRtpZe5lO+tijgaLnWZCTZ9b3io1ClKcoyR0fMo4Ew9n3fATIYV1TMLScI7IRkmteV5DEQ/kiHiIXjvDQHnUzJSGki2WY+Cw4/KVOQbUcta0+y1WkPyAB9o7dSGRNvUro4dLKyt3si9juroggkdnQwiuyggq56e56ZeWvW0HrsEHZQ637DdctUBErE3BinXzX87BWm3GhmcrHDN1RbtP8gkF5MGWt1bT/RPWsMyEicGny5rjYkAbuJkzuYXib/Ew1Ks8OS26z+vnvfulBH7hqWSVu79mtx63dBu1UcKQ2ytSc56Eexu0dfb+FBiRNWLrDZWoPfJ5aK/AFXQ0GokF09FzgOfR7r+DyAcniTq8cT6ID6iFg8qwbeW8MBMhEHUefpbclcTjVtVY9U5Er5xqpAXCM8B5YGBimQ0Oi7mO4VIzFUqXJiegDdKh3p3YR/5A7U9yPnqTdAxGcT0FPWw5jFQOv5XbdZFbUOzJ1JUMSYK4QHlbF20gTGoPeEkcaXsvNZYiC/Hd5c8/Tyld19YHu8bAI0i8cObzFjMmDEp00tRGJTgecyzCg28XEeUi0uxhJ0gXj9TNmijS/YOZbmW0lowkawQCWCSkz/z9a3wkwEh0sRlX5QIbYdc36A5sKf3MbV1CRk3Xn3atxnv33fv7S97zULbcdzaOFvBybcXu3gZJL364SdhnHXZmR1NE5HvCVrrWkEfRb1KEG/lQrpddH5Ad0KMTSkQF7Up6k0EEOwrQMEjsq8IFIOlap+q50VUNznchUYLw6KA6sDD5dhhBQ/GxNh750MyapL8gzupfAUIDDi3i21DHdg1SSiZqGWTn4XEmXwWQdQmHjAK60Ic3R2TIJ8r/52VNgUo7YaG4mMUXcGoObgZLzzcpOVao1jjmiCPYKdQJ5JLPQUFOoHVr7TXNVxIiHra9UULTw2KOMZpKn9tTF6tDM7DHqVc8D3JKx5fIeNze1qYpr/JDerMbF6gQB65TJZjhcvD6o3vV+nFDqSq5RAXFMWujzyBHKSPSrzCXOnK/1z81F9DU5KDvtOqEaiGTeOtFMa2cKoFgEywI8mUQT+RDuKcnSwkqeovBNaFqPW1twq46+PQquzdCjxTN5fEOmFGSKzDokYSuma2q0iArUphJ5cgXZUvRzp8nYB0YwF6piR5gROBr0YXiXSMXDoOkzCCZwLwSwUYkjauIk/elDcC3HHh4Ma2jlalNagwXdspmFPM0jWmS0vk2HKlq3pVgFeFBVVxRvtdTyao7OrsHAVi394IxosuQ/Sb4+c5W5Hd1KJMBQYdBoKdV6gNUxepMOzuuqVyPqOGrIQMJmOg85bJGnW6enQRSR0NsIWT/tpQ+b4Ol+P840umfl+J46E/Ux3w+534ztOgJWT8YJdVdyo4fauWVmisVZ6TXmrC7ngwzNUxF6FlcrF4qS3Il9GbFK8+WgbaD8svN6xff97EFG4AS81xqEHi0rxHVcEeoF991lRoJ6p/qJL7YM+9Iis3gp3euQ5f7DFmyOb5uiUQfIZRVvpsfrokwNy+agEo7MpBlXUhQ0YxPdfkcE1ZMZnYYKVsjvz3cAhN5Hnlr/ci1j9PX5tW70CyyZuyuyOR6dXRU7AJxNtq1U6+KhOmTPRUgzOUpWBUsCe0K/Mn1efH8HXEN4QNN2dhTDqKt1pl/jaNBzoCwRJnK7HAyqyES3/jstvzsTBUIEHX/UNTbjZmPAKZrqzWfRzjSPUhQPhZBVKg2f3vF4bmoh4Hv8Z9sdmCKoHFTOadZr5lOksS25ms92p+VHRYBWLNKiNp45D44hpLjcmcONRZhCpNLvc01FptO8+pkvgyPKG3YRbUEeg6NpJiry8UDaH23kXUq43IN+GGcbBGLmN4Q5vWDxUrNoRkOUk7PMfdWDOmRPcUSqsYUvgWBU3wMqnKBnHFGuPtMaeM5Skm9mMLVqg8JYD+kBEClC6TCcu45CVVybZg2UcwaiUAUBPqjTyDAeXxopx+LDqP79aSuRaAN829RDX/3OBiLZfsZBTNGdSYpMLzH0zNUSHcujDwo8YCiCHAuSCPIXTtwyfKENQnRRNrWlLkS7byecsE+VejPxJVdbp9LNCNM4vFxX4ZbUo3sNYc4CG6fqYR6/5D/ARHKyRvd+NhmH0IriaznLFGIlsYgejDoZRG33gSDzV7szlzsy5WkEy1xgThsF5YdGVIZrBKzgsJPwrF79r19ms+v1Xz2IDAtrsUZTszMORjmKnSZskBIuBF94jesaPxrMqUiiCm8HGPgxnH4QxpQIakPkTU0bRiLew6dvZS6wjEKBWTABQ3TkMBzIeEqxac1Xkqv4aKRbzUmiinKZdaXDeOE5vT1AjDWaqqRovwws4rlc8fcgiIUVgy3FGEmq28OQwou9E0ZxfaPfhePr1cDHhhlR/hqSaB3ca8artobShJ2xNQjsJPnxoQsz5vpTNhdGCzioxq0OwXKO5EYxRlfQXYiwbU4/jNlpT9pAB1hNyTjjhPwZ0vBEZNIRpPnJV1dHpeBYFyGjWcY8mx8lTXHQ2RzijmpFX9ch6pQIOymz3Y5JlyAcEqnb/air/wqVaa8IjeKPwNltizlBCCcOAzrG6jXPetmBMTy8cVkDKW31Ukqg4NGAGdLYM3DhyGKVo6QnwZXd/KzEck4u3VCTUSrh6GdRJlGkYdxfT9GRnm3e39INRS9X5ZdeEyr9/Y+1RgtWz4QxCy5ek7Ga7wVNm87spsxrrxNyZ4IPWJlSGke3juJfWDzXIXKYPWerNyplTpQMo/BKn96VYhfJWGMXM92ph2xwiQ7RKh0VYfUIMtw7sUYZv7VylYPYMXaQNEeiCmN5XqQ9GAjQBHaL6ILXt+jQTOTRnOT0pbcJTHQ0nYoVeHZeV6KTKeDC4Q6BiONwUKBWZUc3J3eS/8pREBcYou2TmVGqHaZnAiB5SJ3IbM9gwt28UqLqi+DuWchtExfANbcEJydzvvarP/AyCXNNubUwoxNA408tnVXTYZLalD70ROLkAo4IhB86BgNRlIvY5yuRlRmqqhtuX6/afgEPWz66dKueTzrX+vhqgeDc27WoR6ZZy5jZpECa+/05+AeP2bF3odZjOYMPGr0nHlVpyEWNACZISWtEgzlwjUoiNpwwA33TokwnIh13JI4UJRU5qJ63xdWDzbKm+tz6DIrCen/m5GJ8TIWXypbPxVidXFm8I0GnO3JvycnCCsdoMkgDLxsYkQTdkgwjhVTgE1FLLLuZTP/tt2ioUiBsjuDCmmncFISzFopUHVfqSOVbeTEMV5w6D3neE8nam7A2xYuhtemNWhZrDakBFX9ujRy1LPJTDNMG33xkDv4GfUBSLO3jutZaRlpI2xNvRkzv95ofeNmBPg3qF4oSFGH4kFoY9yKsNJKeTcS6uWMjbC6VyGh9bD4Zj9MD4uaWNOXQK6BK7fYoAY+qNX0KPnWuHguGVfqO96Nu0MIPdKvPfJ9ucvpED6Y+hn5NNV0/IOOQoehfFLWcwGX6un7SM4WT7/hYerBFBsJFJN88iiQ2/SNJjJ33SCdmSrSZULVdUKpI4qkbKJqo4AnTha+/2O2TuLd/HJghWle9DrGk0KxU1T1nNoyTWCOtHv0NwFRLLPbcdDujTzRzgplmiXyIBH+T6Opat4P2iz5vfY/bkX2QzTn5s8Ca1znkHkQ7KqSV7RuBmGm/+KLa6D4W6uJE0/6ageq+eVf7kwhWg0aD1YjIa7oL0l+MU8+tXBo2x3BvILHhXVINQzW1eOtc/cqzfj4Bmt4N0ZjtDdBPIyyTB8R8NTBYdzeYEs2JZPp7rN/JBImUPlyb8VH+pgaRwlF7lcWRI5VglSt+BCZUssg0xxpkvTzJGcI8KsdskKAYi5I5W23l9SHBq+9zbYMci6Nn8oBlhE7zGgCIl/+oX5pkc4EsnfXbaY4et+/kPHfk2VORXOog0Y+vnG6RvMjzehSsh8XRIqw98XTKHHp5fdG6VVtn2ULfcvSY6yQHV8kFaoHCNzNh2g9HLOhjH1jllqmyT2fULsPD1oOw6XZM33nkk0TSyAJt5NRHmLfFPrSGFZI8bdpLPqbXoO89BcLAJ8Sg0fTNHnnafpeKe6rqc3gdkb3pgSl/GYw7P4kOSgUK7UStVxwKXFZgWMlAfsE5qMWD1uMj1XMvQiIHFKowNMrbzj5VFbubjLSDAhDwgKMsyYnBU6qZ+jO8eqBBHkg1Fdt5+4YzWdChslAmbqpGkqA78wNuperNQ2WE2XQ9jSQMtw9ot1RIml2LoZRL74ZHSJ85Ca1+uRknm0jlHfBXD0bNhs0ss2IqNdNSSm0CnQoVkFvLyei1UBTjCWVMd9SemwMZ35O6R3on/G9RCMeZdPJJh4CzI/HYqaovOSRRzoYfD4xRQS2rorDAKEWinZuqNKHQLF1qTREEBUIpalJUdKGUQU0IFFN/8FqmOQ5dFLukzyIyRb9cP4kTYe0o+nI+iSrcwpVpkW0OK48cxhKan9usaM9eCrmEPlIHqHycVpUMq1f94C+2LswEDjIGtmheTB9vdDQGCM1KL6DBP5TSrIfxXFonaZUMcHg610gsgr2VHjB3ThARkDeU2gyXw6PEWPyK5vaRdSCfgNpDmUty77pIvIc2Re3E+g5jax/DGIqjjpLmKMuCkyPnAdK1MNir6GbjViKANwrD9P0YqZwL4wsOcMFoR+GUjeFauzJlHuCcPIhpgEl8k3ugH0K8OKv6SUYpJkbGkgmNztZyjYVJmB6m4tEUblUw9Kdzrgg00mgjD5HecWjMoqVLcb9XkZgZWGxJVx36V/UOat7KbflMVUqbgKgOLyUIDiq5nM6Eh9ulpFD2TZ+CPiAQjF7f6XumlDBIAseOo1qNrTtWlWdot0E3ikgYC+0N+qSS1+Dsl9u6/C+v/MFfOvgeCdRvKS8dAZmwGR60cPQwvoGo1fewH/aqwZWLESdSBKPm3E7MHGEJCD5VYoY3I08w/666ypFCuA07zjzsHFkQNdAs00ZytXCSMuQkSKhlAxgIj91GKi2kW4LjIDwkOYbPhgBRjOnjaXLmpvzf8M2OgQTYWVRk7Gxa0wQgCpCSJLXsmFWz2cgOXkbirkNKg9e8ZDOSCwwzzGKYJ66MCOFA0gYj2PfM55GERyQCFDEFTM/dyn76vkKrgKOLmonw0sXY6Ys9eKWyQyQnOSZX7FhSQ9xMwqkSWu+p3E8MWUWqluWkt4VgTg7E2qPJq0jTgz0cavcuNPtV3BlL5Yk2cfRyyolbuHTnab4HvRtOdvXKH/oljX0bYx2FVER+nvyd4qBDvzFgS1IwWfJupeM8KsUeeGmJxUg6LTBe3g+WRppclnMMmSgCE0VMMfrPsF9O7ueUL6DUrMom9/Dd6mlhrSRlwcdg4T4PEm9g6oSGXn/C/+VhY+mFNUXxSKbEYwDorcpkEWUd4aq9Sk+8qcjAEWp9QIhSx6D/DMoITNRrLfIRpo3A7LG+pqddy2neRRRmRBO1F19fF7tQfjVzmIBOiwkjKVLCTv/+Ims3f6i8SWzRXjCO/hd/XhfOeqvUsoJ2OMk3yElaewgDZXgWeOrwHJGqz58Kr7tJHWudtD9SAJ+udh4oYR/vdKLQc+fonLuAgOmFUrr9N/BKCJbh1WFaUwuyBrFkR9ZKy0CEPozVq37oFQdPRSxVmiS2QxPM6fegQ5qnTwTc1kYkjkkbTvgZsDMbiMQ8fLY9AAfVA8UC3ewFEo3oI3GZCIp0v52q1EYVUuck0IY/lLEM67w4LAZyFmQbsFrNqTYIIfNZyJuAAqZSdRnQOHVvwh3nHx3XgydsjmZ6mZPPfeTzAhwOR9k9KGRYFoAh0bFKZaT48fA+sCkSuuEJlYLu1dPB5pIioBaRqqJOoI3WwPcKBobMWWD+XiATw9UyctYfDHjS26+glRn27D6SHCTaCVQEhnRBB8XzkKMRZ2cnXw/eUQMeCTTM2tXqZE6ulJH6PhmTKPTO3LRiuAO2A5+c82K8HTpR5QMSiNTCMqTCgGwOfuiMBSBiFQjoLdgvFZF3Iqx+5d/+shP8dv1Rl+OyBYY4H3ndbB6Hv0O52usbwixGI0Uo68m/ayEtWQjbgakRsucdFJY8ABXKVzuSHKQXkvaHa8N8IFw8wouFXV+oPD8PkhS9X7IKjCUJqFt0e9V0CpL1Lo4AFSauT8edceJh2/q8x+NXa5ytxpaN04Fqi6i+pzL1BcBm3I4r8rn2QII/H7bQjcH13O/BeqgnRVHFI4nmVcr8m7122lbLuNWIS9nDGhJD/bVo1YgahV6oG7w7obRXBv6K3jRKOZPUfuzJJIiGLbShtDWTmdisvwC1coVDHaEdEONdESsA8WDnKCQoN7ppyAnsNqpOIxppKlpeP79pUPaJ91uyV7dzx0l6dFRyVfIVzqVzsLCLCEZXY/X6Z/8ygTtshFgs8cFlPdo1kAABfEkPOsvDG5e+ZEpGsHbYLD7M0sXH5Do+DMwMm0H325FkJEusL/oatlSLJbtmAiA5iiFZCGB4gSbay8C6KcXvnd+bXI8csR5ev5ANFs8ztMZm3FmdjnOZ90EKUQzOz9287ehOCX0WFwqDj4lcnUAfhWgOgKlL42B5SElyUNye6wYl14CAQIIQ+ptrFGVzotD1iKU9aloOKwmsaW71n2TsKrsUoWK8N5T18jzcEtvIiPqglXZBKhmIVygQ2LvvaemowLt3yhfK7k1EYE8OVV86VV5aUBZjwMp0TbUio/58ctiO61Y+N49ln2f6n3OIWcwOCahbE06dKbyMfbJTS2WeZ4eY6PlplyH1sP1Y/dpzXllC1x7ZFu1FVgJV/8CP2+NXedKbmZwwchCbUBoyRLXfD28q0SNWUoDLCElviDd9qbACu8pG4Yc6isfpll3Hbhzi2dy3ECMzEAprNSvumQXMZMdMY1QESRFP4Rt2hvZauPF12m3V2LVxr4Lwspu90hYQn+uDQdKPysg1i04AKcOSgQDAEKKqDF7tu4KfHAJKr7f2m3G+Q39mAZ+fE2FiC5J8KRvbvCWcRXMmfRjNDPPupD8bahpjoeZAYVCzuMz2YEbM8YpXdDxJ9NbNVGaPwjKKYuaOQuUPrAg3kvX6s+SEgfF0D1YHl/wk++8253QYevbwAXkOkhgiU4d8AAiJEXupDAr/Z0wjfjo65s4RctZS6mB/yJ82phFZUFBjdKs3PvdVWTLC6rxizd4LbzSXtJSejSSRI9V3X/KZeodaZn1bEFkGcoYmi9YeNR7xhw5R0PuT9AOhgGXIHBw9g/MJUWz60u0WaUUMBVkFGBdDWY3VCcRui5I6lDfW4uuZ2MEOJ8zmbhB9qd2FY3Pim7WQQ6R/JIm5mst04KknYGj535xAwq1VhQ9EMOVXeg7VDVbby3HYnIz7D+qqo9tOejFm7iaHcvgiAvs22Rh0hYF6T7Fv+hnBQYZiA19I8rEIMWH2oJ124tVC3azvcvSIXCOhZ6qJZRxyhpZ42NNeRdXcCfDJQed1agy1ZsRSJ0vmfphsq+nrrI3zJ1PkW0YxxUCYwyx2CvgMrmsVqmeqOmlYzSKXpFgZ1ABC0tXWhsWARiB41pZywgEDMYPSanLskvCe22pdnAF++NAnjCCNp3bgRv+EtGWih4o+wvosun5W3+fEcFaFk1zGDD06phITe1l5MvWXJBm0dQPFKHZVVg8V7AsqMyTCHH1GMDpI6yG1aHpdX/k1xk2NNLfXSt0iwj1mUgFJmDZIUrnbWM1Fq/Bk+TByGZpH8ESo2Jut2ozlzstIXWRMciTw8vvx9nf88Xjmz7xgfOrHPH583Ef9j1y7IH5+B1So1+/v1H2gN523pU2XlmHepdMa7YQCJ/Rnif8EH0NhTE8M5b6U/Hq3pA/KkeHrTKr9wfWEQFy9rqRDoM7FA/vQeQ4aTqoDyyn4QdM6ckxiAwphKU5HE5i2Aj+15mnFkUIQ8KvPw61naa3Wcx9BQ/IhzgGtCrmzMQiH0bacdjdMvel5rwqU5sv+4HoYT5dIZ9k0lEAte0+iA5d1Vqbs1SAp7YU8vr8QOOOwmwiSszHZl2R/81ZSP/DsRycHQbGaEF8wDqhMlMoEFf990Wg1ObMWaX2SmUy9yagKVBamo3OotRzNR7K3ktCStdFwAfdUB3pqd9R+es1et/Js1kH3VDRl0GFAm4VBehySPuDlrfGd9/7o+LJP/9xx9z0PQ0qiWlMMlbyHKuRx8t3rHACFsFJ6OV8S1OmCR303NFhRqCO3610dFE4n7ekohF91ATb74bFEu1wN4YgT0sR7BdO49FkgHg0mmNDShpL8E0IB+IgCgbYK7TXPUA1b2UGcsv+/wlfyCaBB5qSl78d3vuhJU7fpBTlQxMxeboG5TCD5bN5BZ+1Nz1OSzqUkFMzo7GLjWHb9Oi4AOhgFbnlvCwVm4/7CIjj5PuzHjd5xl2ro0tLK4pPhZPpf8V/wcCGaBW+pBLdO4uOQr4E+Ir8OxjeNqwiw29qTbTabcXqycZejx50GKlptGo/WngJYlYRebeRW9QgihI/DijGplay4YzBzrkx/566TvkaTW8EpD53wRwfnPPDsdPzzzui0UwAAIABJREFUH/3h8S+/4EvGX1zQgCa1gpwPWC3MEIsPHLbhRR8WrZjeqwPwtDbeN8OtRqFcCMTDpi8ERa+kRIY5nQYfWMbP8l5IzdO3H2N0mVN09QGhEtQySmOSZyh4OS2REGb4rFwG1Duhz81e4cBSz6noMsRPZwWE7WP8kBwSYqDOHbZM3/MHlMfIYKPkCOTX9zZiobnifVpIndFa5/CNz1MOQnmdYhVQqbKLdBBjJNn0NqooXHrmq+EVxRV4DhiYtpLISlPTdD7h6mcYrl5n0EkgyFQiJTf3HUo7dREZiSUOMgCH1+USSePxHRFN/9NGncmz7S7Gakv4F6tzdnY6NOShk096LQOppbwQVWSWPZSsPSqyfVijLjqfQPOxuGdEdDRr4MancP8QD3pNEs9Zm4qjuX52Or7hec8Z3/GFXzT+8py1dK9ItUcpEOojeZ6tL6QMe9PBBE7i015QpxOev7B3duHJMSSsiWAQFNauuWGpI3XtYRlp6sgT9TE6quqhkJkbzmmog9dO9RoQiZyM4CzjhTjos6U59al2JnoeQfLTGhpkD06h8J6bvtgbnjg5cQrEViR4nSl6gvsQprCfmTfgAX4UsrmgFgdbB2Tj+7Uf/Y+HFtDI+BGgFTphW0cYOP0JHM1lRI4XMF2FTFHMQIPSuHMz8chMry/WhDFxqK04LUkT0/3CFyX8Wbflxc21xpVkJ5HXv0jCr1/asNP91VhfXbDZ8nTXr4+T040LWuXDCwRm/0gLb/FWFD3JR/R0FQRqUIVyJrRWjNbE8BDp+d9S4ZZxyIBkSAtXDwN4dnI6/vnzf2R82+d90bjlkUotBpLUtjEMRqpGSwSSI1LUl7ec83uTB7HGSFcMcS3LoF/GV+elpYE7DyOLSX8FBxKHQJOUJiGG3SydXzo7UJdJLdSzdMAqu+9dl5ykzu5K/SJ3B3ILLWWEUCyh8DnYqIsxsvYGwTgy0YbgSg4jZlKCVJ+FGFAdHtdlAwWbywU/zEDg99eWvuHHXmNHUiEbwADrd3jWQTOOhK5TKHQ24PYIvIo28CLIDZiUUG1ja+JHcgx6BDKQjHUEJ5d3up5i1LC0tTYJ6yQKY2LTjS3yxJvH6DieiOSmZGV3PtZXV0CN69fGycmJF9ALWclEFt7exqcDGhVGjCIeNQ6FbjbNHXXK85MvqQAp09QBpOiE3+TgaNDFVTZXMBbBoeDGjdPT8U0/9tzxbZ/3+R65JJk7hVryijYUTXHnkTdUb70OZK8VKH2mddN7WnzoA4Ev5kYq9g1R08LeNe8DMYB1T5Mf+LLXAmK3ePQizKh65ywC+j/0OUoONI+Rk3INK+epjolZw0QLSKCygMk/EwVSQaO6X4WyCZhGCV5REn5p4jgl5GNWkdtCUxbInsbkSGMK60NBrl73gtcdfIvqvKx8kT9gZwwZ1nA2Y9N50WYGPaiwOKXgfFCHUSdMmXIYqpcbmCiaGSoEBqhfWy2+4NBmI8CopmQdIuYttjwj9N9sM62yd8YCClBO0HZjs7sa693lODk9HavNydicbDzP6vpmN66HRtQHNrybIJEoCfWM72uVV9FHSSyzXCnK9SByd0bEF6lX6LVljDc32zns2lEiB04G8i0//iPjyf/4c10ak2GJKbo6aJiByG7ODIPblt+1RLoRTFGbaZEpmqohamwzH2o3TteCSnV9Y9zZcUWZx2y2El81dFW7Pi1cuqpzIPX2khMB2Svbp9gHizir6ymERhvunEC6ujJX1cz5dVJNt7gzziVYIzcSLzU5392RgilaLs4MreN1jwAwPRvqh/bKo5bmJ45qHimKEjkyeUV/fu1PvP7gPvNcLOkPlVlIvk/ci8Qbt+m9BUMS7bBdMSZKOhGTRUxoOjDddaWLQ8jbRHzLbD6wu0LeB5Yl1MWyWTxGo5xFgsIDcTDcVXlUqfbi7HZjtfPNIxiH8o8Tbz2TTtISW0ZG/ePX12oMgnI2qDJ8XC6GbI/3bOZxbqD8oxAITh1mBnbsuhvPKCZqRTr1UZDncns1vuJZTx9f+Q8+fXzsh33UON/SSajD71GcURJjIDwtkFg9I4zL8dblBq6zsR0319tx46BnwaEod6vs5r0ykP163PElglqH3PSbq6B91XeQg2fl6j8VL0OthwTLNQHsB5oynrV1GqI8mYKm4LQegzCy2AD/w30nHHAgFPMNtG/UnojsOFHEseRyIZLmuFmOP0LUwLzMDHCdalbxONlVc1Rk2WKxP81r7339Qd6KkLs07liz5BpDMpAwS3w4xksuBZtw3DGSyoaNW82M0QvsJLqMTHBoP5QLZpZaRJ/VHCRDD9wleHRHhdMzjUON0tccPqCZuMRvjkriwTeHq9yyuhrrkxOzWb03kEWknqKDJHmDE80wN/VWEBIarBzDqQLAa6PcgkTd65NCmmOJ3j9QElJimz6EeLmxGn95333jCd//XeN/e9zfH//kEz5p3L7a+eBrFKn75sN4ANU4PMA46lCCuKUqBadubjQHl7KvPpdv6DaJcfA1ZSpESl/mEbxeNyTv1w5bJmp6fhUEjKKcG4pE3TcviZHK5Ji6CYRsjmE1ca8a8BlS0pzXdS87hIj2y2ZitBE3l70jftFf4jkImZmGZJ0IDYNIncUUtLov7X+OBJyJ5+Q1vKbVF7nUCNSV+QElkdIXtHrTi95wkHGIUvSY+dCCEHV4V4pvFGyO9VeGEZ5NRbW6lGkjDkxW7uJLlbQCtmqVwMkIBxGLsTp+b+cGy9VZ1nBNhiU0ZfsXjH/FLnE9Q+OrBXZbbXHmJKnP+uyaayH2qqkm03uA5AN/DUyiNgTzoV9UkFEZlO/wdQYCRsageM8OE2hl3S7EB5bbZG9s3BHPUU+j0//0tKeMb/7Mzxwf92EfOe7fagSp7txDl8WVcRnocHT7FsYI9BWEs4F7/NLeQw30Ux4kPgugY9zWYGlJWnZU61lzEvy71js8vbVfzKoyrOxFN4atGIJWwKYf0aedQ5vFMqeMqytwEC6iVvE9RbAYB7mFqu2MIDqWHwHB0uSULkG3fRvVBOHMyTwYu80m8AqXVTZUEKvZS7pVEwRo2w6wq/jyTS9+w4Ekm6KUtVi+ABPXgq4K3GjDc2ydOCjCQAyhTALLG4PptV8uzgRfJglmNE5udprFmaXRiLm1nVCRtt0OSms9JJIIV16dS2RhItI7SEy3vXKRzz0vp9ech3iiYCZtVPfF81ayXqhQtJpRPE6qQwcmqmIg+f60gjbqzH77CDG1BqqD3L1RmQroqf9u3zkf//Mzvmd82eMfPz7r4z9x3H9FLcR3Z2TW8LzYM01edkA5OIJWusLixnrr8Z76NxmAhmzo/5y0Bu6JVFDudJ9gCyfMe83QZ83QhdpVuy/XmgGHrN1KgmsYkkk4al1QJDd7ZehE3qIIrffl0k4kPVq723tJRkrb5nrplHqaN6Cyxdk0t1DSLXkIRVNBz14L0VID021QEQTuBXq7oJjcn3euTCaSqJyFxUljVqtff9Eb7BwLs5qPVK6ODJoCHY4m1dVAoWOY5eue593mGTvp5iN9Hj68k95w4SFJEqmWwc9lGSRRsScn3HgfYdvC/SZpXVii3C4kPJwIsdpvx/6KGsjh5HRsNqeenaXDIOixFIryPoIBSaypKXB4yCXAu146f3uY9ei4vJkWPYKjdVho69zSEZe3uGt95UOMP9X6rsedy4vx2d/73eOf/b1PHJ/yMY8bt7c79yOQ5yUJnTLu9lwkUuUuSUGYu6Xp0msf1uNdu83Y7skvPO6UKcV2djr46s+nTwSnoih4bZ3qda4hI1q+b16oXMYjUodgqsiSjDQKngfyMPVe66y8SySBvle53K29lNE0NlExZ14ZkG7JQWwI7mZs7zuHH14Kho8nAuK3hlG5SyE056lVmLZt81PxDtPpoz9DieFc+E0v/rVDK8Gl/zz7SkAj+UYxmuOH6X5ewIcg0cIK2kzIK9RyQp67PApRlOijx+Kj4UGDDadOPxy6cSEDpXnv0q2RkjQBdv6wSOqVyzAQjCr60N0Wm5Ox2uhKB5I3eXz1GiAvoZIMxOLfGM8J/GsVorUQezR/pqOoEt2cvLM+JfQt0ObmWhBPiSafUTBOC0lewdP/5h/84fjGFzx7fORjHjue+oX/K6RAqPMLZjLk7zSp0e3XUa2IJz2tw5geD6kIoj+5Su4IgexCz9uW3c7KajH3dKVcrYJNHU4BztRIPF4WBqnX83HnPcwVV1VjTfpdOYinb8o49LU1Q/IEj6aMXkfXgz20h6pzUKdpHueo6TPQ44zIklrOcnp61IGtrI05uyMpij+V6z7cezIj+HTAKKq7tiY8fuPFrweYuBcbbOpe8/Dk7stmvU3R+Y3bH5578kiOlw6uysUdvTs/N9um16dItdz7wCddbhBqwg1nzb1yLZz2vc0WhZJDz9/pJ2Gz8nobSUx2u7E+PXE+o9yDwdoUKTtDSp6OQc5UusPFzQPVyY5e4zw3c6HIdzg0EhcGgiV3swfVoVPsDDQlse0aH8bl+cV4/W//v+N7f+6F49H33DP+1RO+dDzkgQ82VPEM4X0ZqjI46MgIpuGlQgrZn4aW9Rzl6KhURNwkF7CbKYuRyjJniqiqf0czR/7Tfm98Qmj83NeK3+8ABMY3dRqjCQmxYxuMlloHBdyOcK3Q0hX3NYl9YZVQjcSavcOQgnbyMJMh1OPq4B2LvS6J9vNSn3zuOihPo0+iXnFm8lafo2Ny7T//1OsOPqzz9lgVr3JHXA4ydzhwiPWbw1ASd3a9dgvtNptVop5lnm7gQDxhuW4bHjoXhG7Fhxn4VsrPG9NkKl2ITAZM4cdsFtDLoTb3bmM4muyxQRnc+0FUYbexw1iJudJ/llhnaIEkJzAsJBshyGa/AHkGSaXgkAfryYf4INEmerLS62lDYlgZUm0PuBJ7dWv87GtfNf6fP/7D8ZY/+v1x9/Xr41P+1keMz/64x43rZzfHgx70kNDNWEQPJOM6ieDOMWQIuZwEmtLHMOwM+RlXFbT1GYN1yhDP6sQ29096momSdHn7HLi2RFMv4jnhndA92al4phe+XX8RTasxPu412nNZEoM16G9vh6OhrtbKBIHYNSLNnf3puHMAklH0JXeM7wx5seSJ2vfCre6d3l11K89pS44ZUEb5IfO7mPgYLW/nPP/WT/4qE6ridZgXC4+TU8uAgMlu1RgWxSrOSFaLIRAwMSh5uJ0v7WwvRG6y1ffJM4LfJvOADh/mCs1NrL9tuHmv8vlTfavN9a1IMRBFrjUQo0OnUYfCzAGxCKnyrqoXXFu5A8YJpyreNGkJGqWSXZKBci+nK8Umiwt3SZonONqZOt046cUrayoJUI3w/4L/+Krx8je/Ybz7zsW42FPtuHl6Oj76sY8Zf/cjPnp8/N/678d+CwGqX713zxBJ7xdhHve7Y5jNk+akj2iOzlbkQoVaHIbkOM33MqxDh/NS8MpFdsa1UmOBWKk317953FAmOBqWhsfRORCDZp2TDny6JCloUlvCtwaiHcFDXya0O3ENiPZieu8NhR35k5f5nnnWhhwGCr5XXJveTq4KmCXiOZtMDmREUW1ZeqCMQ+SAf+snXzfdo0WHlnET2uvPPbuWXla/GfNi8RyEsyNpQOe/RtNlvj5TQhw1+iApIs4e6RgW/pCZSEaYgRIcRL7W3GXmMJUOaJPdSMUEDhW6nElkBhIJeW/DlVEAq5SL0HOChzpzq6dSUF9anXbivHHYvBaXTDuY6VmP2zqwuuxHjI2GGnS6eSQ0QCI676j/HMa3v/DF42fe8qZxujmdPaNX26tx/WQznvq5Txgf/WEfMXY7jfzsc+OArPGKwhckSwEM5mfpPe/n7A1V+mwegGBIsdzg5G7KMGKuVGslAiULDYv4+3eGT6Bpai7CpwtJPkd7MnVTtLH248wJu+YNR9CYw9rcRa8gRvVix8QT5lWhsaocXyODnOOm/FDkERzL2QkJY3bSeQ7ndea8R0MGl4jLEySDkYH8qlfJP+ykLwaSg6zF4OqxpfEe9W6HN6fmEOxHWE8USW3EeYc0XfFOkz8Ip73kGfkcoXxpsSxciOLbwr/jGa/NykLLRfW7zNEigtBe2ansFEHldTXx/dr6alyPsYjjNxTRATc9qTMX2sG9DrSb9uCx6PKG63EnHXmnA5aqY3hgwNJnk1E2jihX5+Mp9947/t1v/9642l25qOnJLKvVuHl2Ov7PT/qH41Mf//fH5ZXSZLA/jFqGtQUSAPTw3OQQyzXMSzNVb91Yim9irBRN9PMumRzdBtVMN3bJQD53ia7TaFRiBW1EJfGlXAj8kX8EBTjXlQPxvTKZy3uE+Z3TRXZC2wJSxyq/OdgRICoSz3Xo3ehQ2YST6vNAIoKWxWUWUVpxkdFRVoMsY6mmF9a/v/WnXp9AS4jicWEISNqBBLbkfN3FwiTW7XWeHzYFtl5C0+sKXPWNrN5RxUWlBrvEggwR8N/CoEHdBWbl4c2kTRQKPKM7bKI1f3pDjlCYELSFV6VfEfFdX23H9cPW9Qm3+uaGLAvrXGBUNV6fmuGUhVYoijmw293GWiV5xzPVng0r4FY4sMLVBYYyuv14133vGV/wrH873vGed/s1VOSk0KZJjJfjcz/mY8fXftbnMCQ6++EDYgfURmWKp8Lu9P3Dvun7L3eosiElFqM27eu6xG6cbRjrkwoXCTqN69GkpXVg3kEPiC7qTwoIu2lUzl4IhlXHRgYQgsFbThQt08QZSr1jTtnvEA1gclBREAVrUKjKWQjnFyWDWypcWGb/Zr8P3njCEEtY8gbc2Azc4oyNsXrrS14/uQkn6i6oAKW88fO+PsGvXmxf7pmD2g41L1zerOQoDUWLiNGPEYzqZp9kOvq985q6IJWdBNXwvXm+XiJjGzgyqLmYWVMoSER0UJncX+eEXdEiPP0NGYgglSNIZBMO0Xgley/lCEctpimGUMmOJi2VC8Os1m/keT2nNvmV24r36/G6t/7O+OaXvHTcd3GR0xXCIhMlP+rRjx1P/px/Mu65+0HAn/RsmBzIRS8+jKZ4t05ySeSRkAgNCA67dyWHRd7U5IEvE0qbcnD9yUl6PLaJMqjI2wEQmFdEjqFs9ZYqRlq3BYNmBJG73nEh9BnhRNl/DnzxM7lmhY+t+2CinLHK2zliSKJK7Vbr16TAjj0FTu2bnncqI9IXxY4mqieSmIqekD429Fs//QZ/VR6SyQVJIAMdZBSM3cSi6AFRIo/CtDdSucU2bzBnr051ZVIjJ+0tpMF29Q4I8CXvjT/jtTkMQCQtXG/InVZh4yi3g7GYwgxzpi+4quvmf7h6z9hKko7cXarX3bhrLzoW1qncfidquLDlgmkPIbBJjUuFI8jxK4nAa3PTUWQw4a91qK62q/HTb/zN8YyXvwLIFs/mZ8/kyYc94AHjqZ//hPGohz18igwrVLRTiFfWIjEPl8/OlHkl2FE4pB/FNK5ZLBEHKOa0ay6IZg4CJYEQAh60AG2uAW0QMeGPtDeKUJ0hIEWEPbUIBeUXIWDq/XOnC69SIGaAGvlQ9j1Kia6H2Tp7hzjHRI426rWj0pquNEe5nVaTTkz1Eynl9GjU4jyBgtjlxUn3/DfX3Y/Vb/8MEaQVY6i75ZBWPrw0sfDilshHnoY+izdmJhHOU4JGqFC2tbfOOjolP8HDVGHJn9+HKo6GaybnE4Yt+UqjVvH25CmWvUR64D4OSR84JErOZRg3JNLbXzqCXJskdwYVBHb5KXyQlZTrEDLnl6Q8vJGeaUeSTu9BhdhEKuZHCMKsxuV2M37uP/3m+KYXvXBsd9txuRVTZDCGyni9Hh/w4IeM7//iLx2PfcQjApFoQivg6kFrNdw9H+ERWUmbKFg7VzeLlLCoEA4Up6PiaaLFRJCZM2UKu3KUtQ7+gneqGujkGx+3XH5jxquzumYrdnyJPTY7Wnhjjx7DDKu+/Ju/Hmo3VD/PTFSuMfVqNlPoPutHg7Qz9sioqPeahN6uBApYnymScbyr333p671KRIgkTzPOhAIMrqnX0lu72Bf4ZdFY79gOuzCjwLTQtuNyjRqSgqPL56cdL7lEeIcjcTJeBEIhbFch3eyyY2OWJcVKGDoAPlcEsfxB8OogA9laxSqJ+Nnh0kYjr+4B2maEEsy9I1TEPXXkQB6ASJBuOFOMOYTw7qrPaOofamV55K17MTbjlb/51vGt9/6E6d2r3XZs1ic2ltONeubX46F33RzP/rKvGI98yINDZXYSZSMlKSuUZNL4GILnCzhvYjCbopIjh+EevSE+HyIuGPmVnADIJCNurYGb3jjQbbdua6/zh3hlH9QoA0hRK5Np7w/vsRQp39dIiBIhZfKappMzlNtGkpqMWbwKYE3tozAwe+kcHbjoqZ2BmOTSMfLMYLAD8HC+iD7jsBk8Msbq91/6Ot9RCDyqunEJOsCV+iosvoUeY1Av23pcashZ+hJmmSidhSxWpp1YQbsZ516pmKVp4LzHbLllg7DpJn9BpP1M/mgoQNuh2LqJLMH+1Adn8bp6G7fhSpjnPhAaptxcZMO5Gmu16FqAmLklR3mHq+i6uNJVZg6AEnMVIH0Q45WUvfnnI59uhVsSFiX0ojB//ff/aDzxBT82zq8ux9X20hL87dVunJ5tXNh86F13jR/9p/9s3HPzepqhlsSWKJ9DYHhGCR9O/6h+ZLgVufzRNXCO2r0tKxXvjXrHV4dxuT0Zd7YnEz5rbRlcftzEBi5QNEJEuRCt/tNkKOekwamjWvLEmKAPcrVUIJGZZ/ibUTzoM1iXZdhBb06N14ffaUJYVBnNvCwJ6KsIYzV25ih4BQPB9bOq00hmpU2lKeswVr//795AYIlnZhgZWS9cMl1qhLLlDr98E5+9F3z6nmsQt0Pg++QU9Fib6s0sLfPbmcbuw2UPwp1x9hTBVU3aOszBYrK6vxgRFfWE/5IAnVSfQ+uQm4srBUeAV4y3tNH4dyXqGpZ9yUU2h8sMZy7bg9flxizYPF9Ukw9gciKScCXN9uLxgiTuGpuDclre/d7XvH484xdfBiCy11eNYDM+5OEPG1/7GZ85/vYHftDY7q5czJxXzeW+j8Q39iY3yF5faQfScWcvjB8y3s5hsDxmTpnByPXakoRoCW9tT8flHgOxc8nwcYZ8k4eIqmUEU6bQl8N3uSw1mZlrJGH6qwzKJJMqE1qIDIyfwiuX6yBVWeBRL+cJ85reFjvn3O1IPpozERQgI1GBtUMO6dWB4VR3JXdHYqyWMP3uz77xYF1Tqpi1Ko59UphUjAE3LIABWZHH0VR3LgPl/r9KTIo1O6LUBpLxQs13lk7EYtzQ1iHGQgAVxE6oFVtOX3UzlVDWU1RTS8s93qZ7lW8cxl2HK65m1n/7Mll80o0GoR3cIeMKvavUiRpdHRlK4LwPjenwnTRfMjTmRLVS7CqwxvBvgZjr1Wa87U//Ynzu939fGC4S/munZ+P97757vODrviF3zjOYuVXqVo6pW4UZCp0p3ZdrJfW89mDtT2EoeQMiDoiJNjRJRdUtAkYRP6N5fF1Zkm9T15mc6RpR9t51GDsgEAdxK9C2Kgif3d7tQfQoGK5qHGiuxLyOlvOgq98YW0sdplKlNJcyB8FG0sEfnQuQMxxZkuCU5ECloH1XY/gwruOmCN762+ptP/tG5/LypnzgYHuHn6UsX8MhJWp4P74VFgZKC8tF73nQWKONxAVD+k0srxdtrOHFyYBmM1ZYKH0eDIhQ6GAbpoL5WGFDTIOzEEjrj3rnfQi4+MYV1SheFS1kGKJ3zw5XbnY61e+RmPD6yh9K7cpYwLpAKaoOLr+li81y7nSiMTZTWL8KWkm6wd+UGbiN90/+/L+Oz37mD46tItbp6VAVXbfCftDDHjqe9eVf7cOIn9aYIksFrDlTQ1RH1WALMHTKkVRW1Oc0MSANlPo/Qrta65QOUhmzjI5KOGTK4tiAMC2uom5YUITurSyl2/0TKeEzk/ywV3vPyTHOPQX3IG/687B9qcJ5bVtU5UR6mEcihA4wTCdMFbGQ+cUwYtJwJS8KxOI+Rc4Rc72a4PPJFQlt6HZu5CS9E3L1ez/3JgqFxnhV6pKwx4YzKGDhiOGsQ90m2yec8bX2MLibMCyWeXj3dGsq4aLl10CCdoUxEKLv2kR0Cc9d0KCqmCoYFQZ1oakrvmyy3mio363DUg5yuBp3OffYjtM90MrDz7LRKH11IE32zzGbeDDSVCtzRfcGaoZrAcrpvz1Sdw4OsADaGviinONTnvavxn9577vGtdNr487lHVelv/DjHze+6lM/bYr8nEXHY7t7UZfjNGd0cQ56yQaYhi5T54km7bNQ7qVVujhwly5FtOaCCGDsyPI8fsJJ4uSyGc/ObRWiRCmoYibh6TKc4tM6B61GoB91sNDMuSKb2IOnA/DFQHSjrelboi8dm8zY8thbpykQFh0K1wKimUO341K87PsifsRp6n/cNEwrQ53O6vdf9utW8zZBR+HCwnpx3EAk3pw+gjDXeOkyBklsHDVSwGpRyGY29VnpG+6FoVa0airKJlPxViNzAY4S7BhKg3H2obTg5OxzXMtidLK7sWw6F+0twyqpam4FrwqE6lc/ihaOGoEm1p/KA2WivHn1SAc5SLrkMjlXMK+Ww1BDh3afi9xCVRKBiMI6HjevXRsf843fMk43h3G+3Y3zy/Nx7eR0fMknfML4kk/+JLNa8rhcWQ2ZUu0TY0MxDDNJnCxPf7QDi+LAe5b6gqCSPtH2cOorsD3Y2iQJF7iC/Sns0qXJRTat0AMX/V1hucp1Rf5jLVjqZksOnjwIL40GK0OsO4xC5yxtC72+ji7WFAJMjnDmPGqpHbA7Em8jh0xnJD/EWXgMLNK+2d9ElAd2a58cDdNO3cF5LXas/vDn6AfZa8xHZArAAha/ExFbZDLsCPBByJcEMBoaVMDLodaRxBsakLGLAAAgAElEQVRRJ9cBsTbL9ZKMwReH5Gp775AIjDvqLvO2OETrxUjky6EbecSYqwamYt+KAX7MB8tXwiFIZJZu8g7fg6gkWpEEeKVFcH6W/MNyfI/X3LK+ufvucodbMVNiok1CHwauqfoOUEz+EiNCPTrG2enJ+MQn/4vxwLtOx32X23Hn4nzcPDsbn/ZRHzme+JmfMS6228A69EJ6Do1mFoXcS2X0/GbWdrBNGZNhw1KbgqvcocEhXBhop1u4BPNckPUwbo4+s3URp/ooN2FlHEKo79QyInkPAE4OwplgVlX7jATzQA69K5Jrzpb6twffmQYH7OGrO+Ct9TGisJN1XSi0IyLKiGEsBeE05CHTK6PAXjp82Cf2q5cOURA1E2bjgq3zOf+zl/0qAzx96Ur0PWVdLC9uzyDXBLfHeMGbKfu3OmnN/8J/l42glAZdWwzaQQ+6nOZCG5Rhn6b80ouCTyTXmWNfsk0UiNgabW2NmVAfdkOHwZ1XmfoReYXzjz21DzFXbihyvsF9F0wICS7WQY8ylAgE5OLZOFidSFuWxWAl0WNqt2ZOxSfWp5JBfeZ3Pm28+84trv66uhgf+n7vPx734f/d+JpP+5RxdaWuif5Kb6MvIqUsXHcELUl8p82Xu15EJ3d9JtHhL2T0agyd9lVugqVuUHl72p5LtXrBGU4xXeHxrIIki6hwPWjJPAWX5rCi+qUZCKJVC+WAs7CmON20U/SKvvxd0SIfLsxW1datWQW/eVQTnaFEeoz/SIY181rnHEE5jip+vih/3/7zr7Vpzstm0jsO7cvkDzwSB4YL4jlIMp5iTJfEUqHk6oBW1zngTL9goy2D8HMizkPvJSPBo5QqMENRyjhRyREo9HE33v1W/rz0q/mYOBoxH9dHLAtQI3Kx0AJF6h8eOmDKj8PfA2BpiSFnMo6ofM0U5VD2+WT4SDHIV4jEWl7oB8AJBAalgtW4fXk1PvFbv3U87AE3x3vOL8bF9nI84Oz6+Ji/8ZjxQ1/2BNdIluY0wQtBI6r1PqqhkXEoND/Ybx/U866hDUyBcjRIjsY2SJmXqJ6Ku6bbcD86bVj4n2ZxqRn4eRAXao06xT90yeSlmCfWYh69H1yPAerQPjOQYmGrcDgtFHJxafNARfJWziFQKLpiLzHa5GGsvcFmGMRezVEnTa7NWaR+gsojzSO9LFZP82e/8NrYNVbGQWJeUaewwWBRtlfGD4V53C7PQlL+ZyPw7khMqHLKKDZcDWbPQbKG5gHL1oZWWq+Qbw1Q2C8nVkdNXc09JpOVCd09iPKQnsk1K/sAYqjIPIcLhVTRZSBlrUw9ZhNIdKF6HeMMw3wNjhu+EHdijG7siVaJduEMJet6xNUIpOmXoNw73vXu8ZU/9IPjL+67zxf8bLeXbpj6b9///cZP/B9fOs6vLjLTSlQnMhWt36xJ2NlDllLwBSJYTT0vQKIGYpdltfDiTT1LIA7F4sbEGzRkGIMznwj6PPppdhiC1Htlsl3pnBkWBxnhJAc/58HeHVhH4Q6So8M8yjiSgwCz6jYhS45rc/y7oDEQuAad7wuZMPVX6Xkx49UOwhZL5rO6Rm9p4uodv/Da8kwZwJDF7ECv1BLKiMjDurlIylFbaK5H88BiktVQAISpoAPu9+ZqN7f0Gn8y/iV0PDStrxWQ5+8MwUYYluh4ygfBunQvHt55UaZA0h2dw+BvZcaXv8+/p3vQz9TDn4arMEIwOB3tz8UQhWHcdZc6RDfdPYv1akszWYv/k38/qFYyxu+9/R3jf3/Ws8atyzv2hncuLsfD7n7A+OBHPHy86Ou+zJBLMpX2ccpAlORKDWyRaUWepjqhben+ixRoXtpTBmFpQrPXVGTJXeo7weNEZ8bmEBcmqZCkV3usglpYgVCxjA8VMnAtIo7PnjyKihIHsEgYl0b3VM7PjcnA2/7qn2orOOoesRRhrY9r5Me5lWQqqTQHQRy9oPPMo70iqjfys16rt7/89W5L6aw6wj9RoMk4u5MrEqL1sSd1AsdVACShhHlBrIKpJB4RIVL/8AF27SAovx1j1VD17uzUVKzdyvVdaVVYAn9mwtoj2ysrgQ4NaEUvnsxwLAxMDUkTFyteZMIJEhMKbWH3XQtI85T/Xf9lvqzjOzFr7245pP1EkfTMTPYt+UKwrV5fgsT/+w/+eHz+M585HvGAm+PW1dW4vLocf+3BD/EYoDc+5cnj1vm5bn6jWSmkjt714kqmqk+tYQcEfB0wU8u6/KijcnIguP4g4quwS/T6aKpIdsuKHUb2IKCuZCSMpT8ANKx6TUrIO9L7wp9o8kIzd5JNdVJ0qvJm0LMLF2Z5ugw+lkABMO+fWzSPOyWRFmFmDLIDFmNbkCyQKyyAd8qtAZHh+FAcNcLl/IbuS445ZCBvOFTCIEjQxvUGbrQ9lXTXO2GhCoHrFY1GaIE4MKUUFyqWzbG/tTiMQ8RjaZPoYmzK6TTJRkHCb+iVP8+CYfBjU0j3uqXfw/mCcw8gHesMNicaUOYj5+i4Hyo4DeeODsG23K6rZF6NUBlCF+rU3jV4GzgcCXXmxi75Rj8DcE1rJBXta976e+NHfvEV40/e/e5x//bSFeP3e8DN8Ze3zsevP+3J4/ziylhb3wsxQD3q8nI17hzOxqFUbQ6I0uytWo0DlzvMutHW0hgAIpS8aXkOYin6ktCtKxhiZaZVDzf3EwLBiAWsM3kouQSXulIUFCh1gTi1iFKxgEOgFM3CIWSCrlrLIK8KsQXbk/8lutqwRKDopYgoam8AKrecCE1eKQEQcpmu2PzHDJgd6mqs/vTlb4yB4Fa8vWGxnE6b06eWS60EfhmEygc4U/VZSWPeDGFbvE0q3kE4SztuNC8k6m1LakQhwbMwO3dpq1OjDAghGDdH7oKH6+c3m2+5fRJDM1iALat5RfPuQzDk2eg4Y/FsGDaQ/owijT4B0cM3XcWjI5brALa2VqX1y5iRCFagJ/aPvhIu83n5b/zWePpP/vR4x/33W3pyfnkxHnH3A8Y9dz1gvPSJX2EBY0jJRaK+24/Ly/24kIEwWsL748tItV7J9/RFD1BIHSh4Ir/1p+K8oltbEEe1dIm+gZzOMaako2etVf2k9EmcUcTiCD0+NRCaUamBfJlkg4oXaCZlLc41t+fOQiWkjpwn1Xpeg6CBilH3JHp9s7+wjoVtyS1nTIlhhoygXnJkNDo3f/aK/5SoxBtx0UlnG+VOiSY+xKmZYwBZzEmlkBgu+ojdsgVHi+MHSZWShpfAsdxMlWoG1OnU0mpRVEgkksB6ZKhAsCqegADG509FN0fLEaS1EstNaKDxczY8B1pW2oKGSpVwPR+5h1ppmeWnIWgtYKnwtRiJ/VkWHK9d2qCwFQPRa5+drsdLfvU3xpN+/IXjIXc9YNy+uhrvOb8zHnvPPWaTXvLELx8PvHkTg00PxX7H9ddquJIKwWRE2kOtjTIU1S25WgNYm6Ir3xScYRmVmNQg3PUZ0GJv7mdY2EhHi0zVVP1BtQrHDjN5mjii22erIubgUZHGOLxaGVNEgZlDW5QBtQrFW2KGx0ZbNVWHyZv0uav8aPFSWjoTKunL96cPLayvQToLCsYJJuqBFEp0RNZkmc4Yqz995ZuzFEFqvTgzPQ5QqJWdRAsVPO/qen39WpM3qsqM4KRVUH9/M4HaV5JbJ/bpWUjrKmUisV6ZxZEZV9RNNh5LJEoSeAZ0arIeEjVBPxlrD6xHgeJRoAOYlXRMf8KHR2Nm7yaG63KcHC6j02K0p20wRskon6XQVjqbjSsCDnntdeU1rp2sx7Nf8brxlt952/jdv3jnePt9d1xn+ujHPGq85c/eMe796i8aj3zoQ8d2q/6USHmkM7KnQ4zPwQM8qiCo32dFvJtuuj6y8wgGta+dhAJwQ2egg4tQEFUyKUFK0WG1fPOvDQb17ZT5xxg7RwD4yWt1bBFBuhIYiTt7owCuiYkqZOGpQgXqioCI44tamA5CKvBIYjJh0/sL6uEi1l4CK6YLrVUr7QFrY+vv6/zoJPlCn3/+6jcfmrwujUFJfsJuwBCnYBhun3fH55+sr8aJZj8FB5uwcyW60abGUVm94yTeQ4OMZ20gC2PhGX4e0bmu/SplwNyuCx+QVN5zDB1KUwgMiFyiSS6P6W25ftYksDAXRFAKXF1eEvTru8txbXXuCGIubnYK4nU8DUQjaiJhgPJejDZYYBbWWvU/O12N73npL4+3/8mfjl9+2x+MO9ut+0Ie+aAHjUc/6EHjiZ/9yePDHvPocXF5ZZLGjmQNS+aDK5o01Hop8KXzaenjnkxbBox3KEEXIO4ML5r+GQ5RInNk2zYGVa7TyTdhkVsViJylyPtnK7vTo0FMygSSrreNLbAdi8v852iy2nRlZQcGws25MpeMiHWTWqj4wGJD5SSArkOZwUz5IXQ0W9TWgFypbWeHOXst3vnqN5HydGpFVJH1fHgWMIottUK+OEZ5QtO+663pSPDy1Rg6RItAiL9PCljdTHg7PGPuGqnVCbcatggqMO5NSXpDvmooygguVwwWg1JkNi3kMLUOPna4/xYTTQE2/2iSCSNDFTcXb4bb02GW2vfm4XycrnTPYcQRoV5BjaFdS/kGkvauddY3tGFAl57uxunJeMqLf368/M1vGe+8/5YVqXfOb48PfPjDxgc99J7xBZ/08eNjP+SDxtWForMS35OhO8CVRApaEWnRTqGnQ16DRKTD9yBHqgie1eQoWlv3qF4Cv0c27Fzz6LA4cvlWLXbZuWAq1UiAgHMuLueeQ20zREvo+NYxUiOqsZU9OvgOSDlYHZH2wAOxaB1K/uEIeNSCHCgvaY8lPiFf6DYgFDYvxsMcXdWdmWCqvDNzuKOFZCCvUpKuzzNr0ECHXH1YQWJnroIVS5+B6wyEdN+FjUyRIwYyJRkwEPMD7jdU0dus6IOVFs1KnVUn2UkI6NnoZA1H2iqZge7LUyQ5t9iRpE1P4at/nVsA+Wo0TZfLl/LvEA39r7Ibxh5hONJsnR0uxqlQv2leOYNO9KvUpgMAOJyE9tCjGSABROhQ2/24cbYe3/T8nx5vftvbxnvuXIx3n1+Mq93l+GsPetC4eXoyvvwffML45I/8sHF1Jepa6xXNF9vvdWHq7+I8MA4DrvBDzckSsQOxDDXM8NHFzk9USAkM8o7NPCBJdPKTymfwwB1iTkIPsgjcTvrQ5ivnMTaeECEWKAa6O38o68TrHANz3/0STNRry/lrbuNN1cuNTjES4VGGaSx0Lxw2n4M+EozC5IEd825c7tVYdRird736jZMj6EWIs/E/SRSFHS6gMdBpFT3hTPBqI/mJosuaCw48P9xQJIl7RTC1rTAdHKbgNSe4oQicwGs2LN1tzD1M3hGRIN5e+QjFRz4/m1PgpoIgtG4476NmIkSJKQyVR3fi2YJk8obkWTIODYXTbVXuN/dkPti05i7ObI4SXD1mC2N0pVQzpAiyGV/1fz1/vN/pyfipt/wmd3HstuOB187G3Wen40s/+fHjH33c/zAurpB+AFBIbOm9ORlXni6TiVjVExmJRCTos1+6YJ6vqB34+lQYZ494fQwErE6V27nJlOyHUp30bJ7To6N4H4STPZwtARB1nDynuMfAkKVmMQuF0+sv9LyjiKck5sx4kn+lPaAHCptEuBp4wHDuvedny7LJQC53TIOxcZmpUzTZj9V7Xv1rHPNgvU6baPIyNySmi4ae+gFXRyIpdvLrtrCrJLEWDiQPoSW0dy4AfShOGpfOdADf5+iilk8l6fuTcbE/HRfKAPR366tSH/GYVNgwqucyEuoheg8PU3CfOZMSYZdwcU2k2wNisJIbovqNS/IZHVIUBOo0lJbrIFiZwuDSoR01wWwEi4+bYscUYA+7cdfZ6fjiZ/zQuHuzH7/8W7/nTTq/vBwf+PCHjw966EPGx33EB48vfPzfHeeeHJ7CWZw0A8cRBF6tT9y0pfZlOxs7gUWaY7VCqSw/fqaaTLV0GZxGgKzSHM4WhUMMv0pZ9FgL1epzFJaxRxjyJDRrFbem0WUkTC+YNz4lbyvzFnLJ+0UBMQMw7Jz4OTup1ODMVGUeGUa+KM1xMCEUEvHMiCpi6BaysfdkmStNl0mheKc/3/fq1x1ojY2QywuIhS2MGg8u5O7D1ao1pTh0WZLGK1F3sr4dh1UjSIpv6UdIdsnC9sLHKifDxjC+9MRGouEIlzuBm2tO2DWPy5JC95GEKq6oMck+zBpYWJ/N1QJvBj3hYMpAKI/1yQQT07oUBH1jnp0fULAeEYUBchNWjEswJ0Vt4yXScUhghpoXUQOBSbvr7GR8ztOfOf74z/98nK5Pxn+9//a4dX7/+OsPe+j42L/+mPGIhz10fPWn/8NxrtGjYX8MZ7x2qHER30c16wFtgVbwtCksJlJ0b/3XGgE6Cjxua1zAozI9NLEtzUZExc59K7Wb2Dh7f8okpMKtusSkVxmhxFr2QgRgkt2JhYgxVh9H+uJL07iO5f4k7QOv5ajU8ah5jqoZGCpB1J1Rw0LLMbbbikmhfy+2IiLYI9vArX//2inAgO0owGKh7SFjLHpDMUjLrEHdTou6V4H+bHU5Tk4UNbShOZBcrZhQm1C6jEnN11MhtjfSaVeOIq94YlHj1VbA5nTAI51RVZfy17ScjmsLl+HyU9AszHIlXBuUG1yZ1NKcIY1hTd4jK9GdIrrGU+2pTvA6jtKnqJsLa5Yyj1klS01WLWr28lIiZY3KBnzYjhsnq/F5T/834+Mf+8jxk2/+z+Mvb59b+ft3Hv2ocd+di/F3/uYHjq//R5/h+ogjg4uXBWkL3JxK7OQReO3g/OQRHJbUyG1ETYCjx673njJznVDmC5dupe6BQtraZBuO323+bphiFNC8ThS1EAT3tLR21jlsVTJUeEREiHG4iZJz2LyKupvywjnzc8qdDB1Un6nDlUm5d4Q2W4Y+aMSPRJ8yECaybNWzYyZyR33HeVEi/Z1//9qDpedk6uFY+OfQW/aC9kVeGNUhEBSqYqtDKEXsXavLcX19Pk43V2OsYRIowGzH2Fz6a1BvglSW2aaCpd/LfrVKJJbr1BFktz8b57uzcTGuj6vD2bijw7c6RSYf9SnFw7SzNpHvBTruy1CTFJNB2lE4i4uTnoQGpAp/hZbHWaKeI+xQcwBDxLYA5Hg46JZFqtqrE5OW3hLuVoGnFz/3+d/1b8Yjr5+On3vr74yT9em4uLr0Ov3tRz1qfPSHfPD4un/8WeP25X5cts+a8hXNWobFglaecZSJ+4l2kccUBXWKZZWMqCE43MbzLgLG2NsEFSjkiJF+cprWCiNbUMyA6ZAHEFqVosg4GLbn0a3urSl6UF6r6ECXplfNEJkLbiqWtHHEqCk5FNYHvvkFOVsmH9QwFcSipVZtxUrrNFjJCBQtrI520TM97P49uZCnyxzG6s5/+BWY71Q38TTg29KqFUpInozArBopKEV9pxKlG+Ni3Dw5H5s1m0zipXChYa+atnGk2Qot6O9xYh/pgzdFG74eq93p2O1Px9X+bFzsr43zQwxlJe0th4QchNDpTUxrJhCRPkYxW2bbpKfyldCpktIxkEPCJugzctc5Y0ahMqtVChPUuosT+yxk++JnNMudFqlPEzWy+KVHt9vxJd/3rHH/rfvHH77zneNitx/3nd8Zj7rnweMjHv3I8dB7Hjr+5RM+b9y+2EYIWFankbL7dAyPl8Iuhoj0nToJdSM7rybPTWgzsb7OG5Ip8EhnwsLR+NX8GdeQ6JH5A4C34v8snamhK99XbwNx1OWdQsmQw4YI4lJVVByFVYDVROJeKzIHygFJ9ts941DTq2PjUPIt56KkfKvEm45FGQbRhd9tUE5Me/1enNrVr/wHermWfIuE0Dhz0fnwNK1wuzw4Z2fRe8EwBF08c2Ota+dlEBFu6LDJCET/tog4hXeLp5lYJbWR1f7EcEts1jSS5CJmcNLPDphr/0NqTVKAehCDvJOmn4NhzWplW7nGbUF/+F62Hbk0TVT2hzaaRCpHnQZ/Ntuv6RblBMaJ8isLX3RuUfyMy/PL8b88/XvHPWdn47137oz/793vHbfOb4+/+X4fMD7lwz90vO2d7xn/+p9+sQuFhgCtAoejE9RBhtNJ7y30KUq7T27ZV6cEZX7ivHxI5XnLIlIcDAObn42BmcgJ41Xn6bZazkqLpJWJNKqbT7PTuwTmHnVnFq/o3xlsoXMimh7OUi0VSzaXulbwFzUQsid0WQdLcHTQL69kBIociiT7sdMtx8rddodxsd3N8UC05na+FvAMKX0KmtrT3WtezfYeUXwcCDBvqV+cKM39Vt+mUOVtd0Fn7YdzYW1cjWurS1O/cH6ycBkIJaOYH5HFMoYj7heQ7UIi/Yw6jCfjansyLnbXxsVKUUQIVH3sGxcLjS8jh+/UPGj8tAnLO0nars+Xe9EXI1nUnDJQg8mKLv3uHd3TQlMPBYeSyz77PvJ66JLN5niNWkALHIjmSA95361b418858fH3/vw/2Y8+1WvHe+6c+5w/7gP/eDxR//lneOxH/Do8a1f9AXJhmW0UCSO8JK0ez8oj1KBIrcg0UXubY1UMLlzqWrjks8AhTgUhkJRWds6bF+hBENR67UhIbjvjan2+q4yiZA5+H5MgEYmkuoaSTV/TcoNq/yfRr9qUn3Y0rR8q3qegkmKfkR8bgHjMxo9CDJdjXF+eRgXu60jCOJT01WM9VEyrjZg0fn6WhDUArv5zCaptr/yyv+fqzeBt7OszsXXPns6U04SEggzQSIEJ1SUqojzWK1WKtfbwdbev7b2/rxqba3/jgK1trbqbWsntXbCoU51qFTrrCgIAoKCILNJgAwkOckZ93x/z7De74vYNMnJOXt/+/veNT3rWc+aBAQboF5s7ozKEaUWZfqMhVc17irpA0WU7E+kkAA9qjvs0JliUsaeiDRv5aVHRLrwdPAwSyno7q0gdHlqjmQ51ULjEHDvGtt2KN4hcqaiHXRqKnaUZqPeK3eog8wGeR9sshVdQZ4iB3+S/OaKi/c9OT45PqvoqilCDH8JVc3XskyQk9OsBrRzPnEtz7dPJvHQ4pH4rb99b1y0Y3t85NrrY6k/oIrJiZs2xZknnhzR7MSlr351tFrtwpSSfJAgJAkjYObezOckHMIIigiFiuTqc2pSTqlEdpl9yIwGaWLQaZsjJ83CYEV23eW85DiEcuV1ZA2bSKHeh7AsG3hKY8vKOFKqZGJIg8EOJ3sa4E+t31TSMqeofNexiKeAngdDRAn0NPDncfQG+LsUaRChKNfkzGUN/+Y120S23KjOGRgdf2xJvvqrEx5Eh1ANz9gPmWMEqBU3QJ7Rs9Vmizpz9HIdaTepGyq9WiBcWbVgpoLH1x33bCZStSjlREvr1J1W1nNCtkaU2EE/BIiW+iMIxtTZcld5MOW+CPfa5cGV91b9Ia2qNm4sLncqJyi1AUtwofOjrFWS3GgiJ5Am1mplXkWZsjq66c8LN7b0tHMOAYcEqN/9+w/EOz/yEebGN953b6z1+/y1bfPm+JknPDkOrK7H617xP2Nmds6AsbBYdakViwnzcgKzGkBj5AQwQY+tmXbCtuw56V5oVCHTyzQQRZHJSIoi2SwUbcWUHY5jy8Xhxw1lKAWkwYppzayELliTj0UMyLwo1COIEkIEdSEahcYvGAdwS7M0cGYsO6VoLTE/9mPg6REluNJNEQLkzv5Qf+4PEHGValJJBuik1yPIMDRcplFw70VxGkcRycm1X9PlIUUyypoTZnJ8AtjorXLTUR7iIqqgEgtvxkF6/wwBSU3P0+Rw2+AdQEHEDWAK1ui7NknUyDPX6Z0MP2IWFI3DwchU+AkoJogi3Odk0A/0EwgQe1CKyoE6UCzMjSBxP4hRFcxkQCg6AYlMUkpzn2dSKUIqxLPrgAEiw+J8f3tv3GcNYuFmJglEUSdfhzSY8Sj27NsXr/6Ld8dx87MxGPRj/9GjcXh1KbZs2BQXPvK8ONobxm+98pdjYeG4whLQiGxWSp6czPSGg1JGznBMR1gSpNwfn59IFUsipWsyWNcpRqyygQcjUSfaXWo7DdX7WS67OUsSpQel6GiVYikhBMqW8LeZDrz/A6VbmcQZSeUKPKrNQBK2Fx3ULq5FRETVv4sTouhAp801DZIBwi84HU4t4s+GfrPepIg1vu7pRroy3ArvsuR5Z6RDVfCdr0xyDXN+eBlLDYbFx+C9dAj1uKMIdHhIop9TmMGoRnotDih5cSTCJccorXeB1l+r2Y9GYxCT6LmRZxxlggJdDTgxf/E85amhHsIOO2+jeiXeekFDAYERMEHfdVI2DImYkPLuVQA8NBCY1qARuD6EEd3a53y2y24iKgXIMO3GPC4Wep6lV6QVNQITbYKVKyNTc0ue8fb7dsVHv/yVePSpJ8e/fePbcWhthYfygnPOjQcOL8bO7TviZ5/3oti6bZvcS/Hcvh8eLdasjAtoGqb6EMzpS9RMiDUjhxp3BW1kWuYegD2zRo0thIBDmTWFq0itIBDRlCgX007UR95E74Ys8UkACvS84repM54NMfV38r1gFN3JesxO1mM6elLPSWG/cZ8RBKRGRDsxjM0HQ13BHseExM/shwC5Sv4XfbvZyMmmUE9I902jySZWItMZXfffPu7J2tUmFTVnFD1KgQ7vDcEAhtlcX6Xow7A1gd5Ru2zBxQwCji5XfnlISUcup9Fzh7hpKWzMkTbmsCucn4rvhio1q6EGHBqF/VEn1idtIlpQC6TEJB9ckzJCjGqsBAFvCvqFkWT45ifFByQGjtHWKe4bzzydRH+8ds5/WG8rAYCk2EvBBf/pd2Xf0Ps1GIrX5kAPuFx64Lfcc1/805WfizOO2xqfu/n7sdLrMT1otabi9BNPi7PPOCte9Oznxyknn+YmpLIi2YB7D56clOiePmfOgitHH0dnCHgbvSnN3LMmguBnqZUAACAASURBVHGQOat6hUWsUS04MTJyAcvyerV+zqlAaQzyoJU9MTDgVgybuF/tmuiGZzjoLDzEVakumF5fiSywBhlDEnY95iZrMdNAMp0rKYYRjGyqZbO+wOVTHYWFtxqBMBRqqbl7X4CI0nRMmr2djbjxfm6u2ZjefxdFemKTzhnLUzAAlYP85EghYoATZVECejGok8CTKEFhX4I6SC5gcSjdi+B6BVPmSbNrCLEQHV65sLSoAM2JqyODwANQm0jKTbJ4ComNobLRceHeiRGaifZu2DyrKQ4dXjzStsUNqNFrXD5PXq5cRlqAAaQc37XjUa5LnpVEAESENCM1aR6sVXyQfTBQd4juIsV4pHk33HFXvP8zn4sNs9Nx0493x6HlpVhZX42Tj9sWTzjviXF0aSl+8WWXxPbTt1fNyhoFI0sleu7SkzCNJvu+Rp+mIIqNAz9CP2LomXQp1zGq0RiEfGnwSEajtFQpTY4QsNBlo5hVl5FN96RgJI1WjJptjkuzHuHNkNpk8peS7qP3FNQDAAWKl5CCRfSYn6xGt9mL6QmiRl8qlaiRkFoxglgohA1AqS3iPODPmValgfBcZWpqpnKaQxIl1ZAURamggeMbv+7EARefcKtTmzwVIvX7oHr+AOmLSYL6XTWKjEQhP/cW0ts6yy9jT1ygiVRDaMUUuu8uhjXemTh+LsN0HguOlkdJ2eG2yDF1qYBusZmoGRJED6R+KOJ7KOLNFMiaRKkXhKyBniQTFOdiJHiQ6RbCLoTaREAi9o7CnpFFUZe8IuPxMhWJHCRXW7WH7goOZ5I9r731h/GeT3yC0XdpvReHlo/E0dUVbpr66ac9N+YXjosnPvbxcc7DzzGAIC1ZdHjR28HrslFXxgBY9SnN5XPwhmL3b3jgYSisv1KYDa8DA4EBSaOYLAGvbUinxbSDUUZzPjkKi3uAe8wnSePQn4GscYENBrwkEsasQ+m8Zou4shqOY9QjoNAdD6I76cdMY8BNX1jPDfoS5nEA/9It2kCow+vUif0hp1ZqBEqfK4U3iDp6KJJnlGhcVXXysxUmuFJsOWaYxM3fMDNM3Bt1hxQ4xZs3BZ2pTjPGIyhTABJ2zkGfnEIBSokyF9XopBGKLHZdaDHn9Gan7hSKdm09JC7iHka9815aWaxLNHqrvNwbhTy0hDltALkYtCoQsA14HUonlskTaNDgYWGD04hJzofwpju/RSifajWi3ZiyYB5m0hXNrH/Ba4IXpGel8VRMUkq2pgESX5dhfvt7N8U3b7ghzj7l1Pjkt74ZDx09xEbWacefEgubNsWOM3fEU550UZx+2uk87Pg5pGxMWZ26sS5y5E4RC2pTETiweqEF5HitWaDDAViYguvm4L2HvWiheM6p0cLC9XQh9XKtjsh6RXk+FRIbTnNpHBDbqAa3KPwBgqGH2qRvbKeJ+z9aj86ox7qDK/CMfJKUyAyDWKVHLTTViFOH32EYyhix9QsUEgnsZf2hbCa5ejpFFUNEaR+7OExPhfZplEEaxY3x9z4/QSccvRAYQK6A1jij804qkbXUl6CaoEiCuYJYCJb6IuBnAdXBTUsKCy5KBDMh5QVAcb8EXmN6CmhFz5QUUFVqNPike9B2cS2JouB69Uv7ru29mVa1VJuw2qiaV9pL4pUFzNFx8HVtUFisH47sE1DCBjMZU6DUCO4m+pXQ91TOgUMMWp1ZRC2ABJzkKNpdJuJ5Audr114TRxcPxvzsQvzLlZ+Oo0cXef9n5zbEScefFNtOODkuOP8Jcd5jzncdJQgdi3+4azAF0pxOqaPNmOYkQePD6A1RC7K2E5zyoRbbJlJF+HcU7SF6EENGk1SCmTCamkVgeBmHjqPJOHyAV53SEtnT0IYgf/ehpqdCOsgEDQaEZpF2suWI7cIwjrHSKSp3cmeJKEwwDmkJJPER6ZUYzjkxiEIdkZPpFakjpsF4JiTp7vQRGR7owE2ZT46Xlrjo/DFqIsVKsqCqPEcN7wXO5JyFrGX0Abk680EvQJMhKM4VPZiDGnpUfyDxD1uoMXgZoeBGwJHovmOFWGuK0sYmCqb6XRLpcPEappKsqCfq+Gf3Mgy7ajSXTLEiQkCZf3wd++g8soqrA5ExFd+h1SvqdbJiVRtRZhS5L1TRuRZW14T/6BSm2ppsTMat081SIPogp8jCV779zbj2hu/Ew04/Kz795StjfX2V2rytZjueeeGzo9XsxlOffGHsPGdnWSHBazWiljwmKbRoXFhtWWVk+EwCWXx4sGIMf4fquyVhE8kpU3dQv2e9JO6U0t6fpL6LKaCKykaSax3MscqcH76105hwzcQMDIHwrtI5Qb099aUmSLMU/1seiALoxWQZEcX8OHX7rSHg6cZcrgMOFhFO4y4CEfIv2fPR33NLVym/XaCnpG0p2Ec3f5vpskp4yzc635a5iFLA/2CVSOSdNgH27Y3Ak2rHOmsALYxPNhIKXQVDqPcpOvGCG02xN0tRbk6+u63ovmOZZpfDtIB/17krEBjZhExb6eLGBKNQM9En05djUdas1XVz4YqNlXPb/CSSyYEBg7q/ml7egztIhfAwsVxHcy6eq7BXkdcaUfgZnyOHdpT7mznkFdeqlTwu4CExiLolD/jL3/pafODf/zVGg2EcXV2KdqvJwhMYfXd6Js46bUe85Pkviic96UIPQClF0LoydRkgFEdNLzb/VHNkGw9bs0TzAa4/FesmURP9o0yoNmKxIM0ZGX9OFeneruWZlkpZXY+YjUKLLgg71TXhJQjGcIApuEkY97M77kV7uB5To77u7ajHPwOZYn1k0IapVXMS01yO6oZrocGbjWEgjilVOqRELA1DJ82lfm2puCJGcVLyibgYnpcYRK4ZbIy/f7XZaTn44wLGh1dxzEU6mym42VbTAA9o0qCRrGLvHqsjIA3qKyT2TYwcd9SHCtGXvehUPDxGtiULXqQQo8DOPZXd8PcwlPUI/NK4n9CtcSf6k+noNTCd0tE+DGv7csoQEcXawAWWpFSnGowsLH2T0/OKMIdOtLlW9iEZfoco5EGCaTW5+kwsA3DXZCSEmc1FxXuycuIiItPLYxL/+fWvxbv/+b2B7bKQC8X9wGwCNgLPdGfi6PJSvOk1r4tnPu25xdFkN7fi76aipKII34s9EMR0C1EEVBhlFPz8SDGJ/KEms/qAAYyqw+42u+kZqksrEesibWRTlcma5MnxgmFMo+ge92N6hIZfLzpIo4Zrlm8dBFI3QMkaZFNKwx0uNPwx9ybyyBjtQHptHocieiEaiofGYOEOv9ptWU8r1VMPRJ8hibTGGvnZijyr4SyWCL3v3TihB+Kie+3AS26SAXeTB+0h2Jr3gTIHDO+Hw7Y6noo1Mm+rzjlD9FBeH1GEmsc5+UZ2Y2ra6hCJqoGUS0ka16PRs6hBZD0TskPp4YDIgD4w0t5yIFkUMkBNNNWJyVRbpDZiDWzfMQXMzVYc2ne0SZ0pNvJQDJsbpEinDjYPplEpbX+axKSJ1MrIH2FCUTBYrCfjy/MN3pbIr376i1+Iu+65M+7cdW/ces+dMTc9S+8PcOD8nY+O47eeEOee88h4+lOf4f6GgnmurBOFx41Jpzb6GmgmyfkKzu+sYdiNUUO5ea7QY4rkxplbATpM7iEkU5acK5MaM0PQscOtcc6O9AypKkCP8SBmxusxPVyLmdGa0qfxuqgvVLyB60dvJtHLkndodoSplXSHaST2+ALEqmU3VG4sG6W8INQwLtFFRx4xf/WzdYJmSf6d+cg9ZySmgXxvkjvMcRFNFEitwlcoqIUjtTeMqi+RaAEcgcSIpdgOY1nhllQTIAmzCQ7lDnIXMKKJJ9FNnVZarUXNWGFwZBb6vyhMYSjiMQG/1+ozfGjktj0iMSyQkfphhsSEPvZgOD8u2JZMWNLlp0lXwfKeoWdMRDCwsbrj3gZvyDIySYXmd9GF9aM/iliJDot/SIUirdB8ttIQboIi+qT5ePyHyPXvV/5XrC8fjdt33xcPHNwfK2vYD6L5yJ2nb49HnHlOdBY2xvOf8wKmc8UPulDG66QKu6D0jMoSeWDNlH0pKhwaAvYsOo2XlO9cmSB2sjuOFdeJ/QFB2ix2a41kDV4lf0DHqzsexdykF/PDtdgwWorp8Uq0x+tWPVRfhQ6TCieImGIDw9DUd7HDdteL6JJ7FGmoUoRP4zaSmcl9bU8IV8wR81TxLWNWya5i3fMsRmPr3DI68tXv3jCZaqq3werBS+VhvbowMVf1ooJ22X9A1BjJg1QCzpKyZ/hmRPHqglqdlOJ0AtdEqmN3d6jxR9NiCkWanXhsTEK61QTTU5qCSbKG8Bx7HeB0OqziARBZIbKBfo1uMCOCd/oJSICuFqgpwu+J9ODGA8Mn41cgoKJaaNEOm5raDEUynj0tqA0rw0ZMmlpt1vLEn4xNjGL8gtA3+i7woB/47H/G4Yceiq2bNsdXb7w+Dhw+GH3sRG93YucZ22PLpuPj7LMeHhdd+CymrFkqUi+qKOhn/SiYGf0R4ine4sS2hWuPIgRnaFOeOCNDAv/+HQeIoIwYsPg+3g2ubat1K3VolCJ5kAlObW7cj42jldg0Wozp0QrutDZ4sS5y03SChqXQTj4hY0TOlVz7JlycOa78UlGR8cCXWN/JLcsRhmRQp/STQV4TE1UP67OoS1Ux03OitnHg6pu475Sib+6G00imsL8CCw61C1iNFMO7DlV6ZflUDqow9VJHld5qhP0PyH2VckhHoDZ/4UeuWQQ9/rz1jCV0ZkppUBNgtBfdVnRVc3Uabi3fm/UEt3yU9+froTGXqwzSE9VyUFFkmrFuGR2gPGqyGTJO5Q9jYaTMC7Go1l27xuoNJDzGZ0Wky01GPgeFeKI6TN3G8f6PfijW1vqxPhrEnffdHUeXj8TS+mpMt6bjtBO2xQsufGYcXD4aL3veTyuNM0NWe7x1oIjAe/0ATGiWNxC9Ca040yCZ7qOxFR8Io3KlchFsrWdhvpbrKtbfOVOSjoMwriJKQgb82A1Nb85OhjE3Xo+FwdGYHS/RQNrgUbE7L8pNNiFFhvAmLBUSvsbqRLD9QC6XF6aah5Zpn2ZfVMtIKtXnyaBD7ttkn9KETzUtdeIk9aQhQTY3qJ4zFY1919wsMoS/t1CPmRpoyTo0eFutcTSbKjeZ9IyheijqBqIAHg4jB/fBqYjnxlBul1LKqfW8+tBalOgIldx7d6rTV8i7KI1g0eYNs+ypTAYxM1lnBxaoD9ItGKQMU7I3PVwPUwMp8Gnu2UaYxTfZxyOmZZxTZicWQzRTMW6iZmq5KYgUT/KXOeWGiyP3JyOqB3JIjrMx4LG3UITb6DSeLF7WRz/3GfK+4Pdv/tGtse+hvezgr/Z68Se/9r/j3v2HottpxTMedz57Pb0p6QHksBKfmQ0adQveA7UTUjoYOe4J269lTXWyLW0IdBxGFpOIUwQP7KpI/1d2UZ9Zn3Kk1NyQD50zEDgkIFdzk34sjFZidrwcnckqp3c6IxhHz7QRHWYaJLl9jlI5UpHMYSN0HoJ1XafNyEL17O89/SmttTw9MlppumUMrtU75q7hOnL7biKvTMz2XXfLBCQzbvZyrmkGDZszsERNew2i3cQMxTCQkiHEDyGiwCk/XCiyvFyiY0yeRqLLEnHMFACjIakWLsGACgXJv2vqQh8QXlsD/Sjcqgk+wMG48UjduPsOnhNiD0SEFL3KwnlDoCofhNIApULqJI6PUCTUVIQP8RntuXTTlaFSaMDum81RpgdaIsOVxGUm2iWf05LsT6AOwf38109+NH7qrDPivr0Pxdd+cBOh3taUJrKfcf7j49TjT4rFpaV40VOfHo0WqyCtB/CBF9xhh5Oxt0xFai9fcVSpNeDopyYu46D0ylxsc0AgoW3XNOmwBC27NGdKJeoIzoP6Z3od3Btc7eykHxvHazE7Xo3pcU/6xi7UUYsyqpmRy9LHwgtuuak5ScaGwYDy6snxUwaD48cKzZpoqmHVVE1QSEmUMxibu0afTNdh0LFgnjMCuo8937l10gADsxbWIPUDRAuejrPZnogDuoDDBESpPaVBHMiDYk/FWgOG0o6xZyuKFA4/pJiWityCQxOJ0DgkiwcTFf1BXGAKCtaTYkFq3kzVS0fKIgFOGqHRI0QxGaQiFxAc+iuPXEpfFg9yEl0rLzI8e56Ah8vD/IqbvnmIPCNNviFScGwz+x6gWDha4ZK1S0NlP6kLfo12o0Ep0yv+46PxrB2nxZdvvzN+vH8/jWF9MCD9/pQTTowLd54bD62sxC+88KUxaYKE6ULT+sHs6JcHr7qwTn3hQJUjudZuZwrl1EUhSNwq3GKemFp9YQa0iNT+3rQWR32CA3AALY8gGw3C15GBoDm4abgWC7ES05M19rbg1Nj/8P55iiqYK8WuvaOYRUq8FUrokpI6KNnrnND9plggz0bOw8iUk8TpCqViE5gRwe4DnYTOZH5W1SSNaNx97Q8nItKZluxYgL+KoIf/01qvLFrJCiVtoBetEQwllM5wmAkNqVYMmu2YohK52yzcY2HZfL6uPDL+Ocl+smhfKG2iktnX7dGgEQpWoVeSidEGKBiuC0ouqkexbfWVCVuNjAg8RObykALCAlzcING8RaMWXUGEPoEOMi7ckzHqGqRiGMoxMq/ohQS8xc+NXoyKW0VP5ciwmkG02i12kf/min/klt1fuOjJ8fZPfo6KJuAULa4ux1/82mvju7fdEYeXjsZrL74kxs1ponKqPXBARKoTNC7PzrkMgjQqTlLthQJ7nqmhR7UKjA6Hagnez9S+VVJaGoiIEmJPOz7YVlzu8JDgvraQL1rLKqsIzgNNxrF1dDQ2j4/GHGmjqCEBz2MHPGgq2vEuhZE8Mkq9UteKnCtSmXC5ZnmYL4W9KGr0iVtFEUP2VEzHJyrmBjHrMlGT8B+f/xR+WXCDTkSFJCP+7d+9k+sPyA7NAXh7db4BRxT1cQveQDqFim0yYQHd5l6JlLYCmmUFRDI7iQE0Y9yUGANDHqODH3Ku9OI1ZKomzj4OpqgGFiGwmAS8B8Z6swDlWK1p2Vlmi+kq3EtTJ+An6UTJc4i2DmPVA/H8OKLjcBx9pmp+3G5sylOrONb8RTatRJ5DMakETgIPEoHADwyjMRhEo9mI9ngQl7/vPfGkM0+N7/14TxxeXor1/iAGI9RDg+h2puNVT39afH/37njTz10c0Zxls49NSD88DaMldUK0c0Q1PSw5CXyvakVzkAyNKs3M1EWVnq7Z/w8ypnaaSg1TGwxpVcYpJS10rj4P+GzZCq1kbNUfOW60HJvHSzE7WaP2GHdbejgLPWZEeew+pLibBRXEacqVC05jPe+Tg2I4zFpPDoRwIgCnqeygxY0DloViaor7VKiSijhmmin6qH4V92wSjTuuvytLZb5QPlp1qTWiCTSJhyl1iJwq4fbA07IrCcarBcJYQ3DOQmgO0h2QF5mRy/WZQq4brA6mTDBxcFxH8eKGGYWtJjDo7jQjVHVA+cgdhZSZSfaHB8YDVL1amoAowcLdKuA5DYiP1UOj1/mqIrlSEXlgR7faBCUPnWHRgYIjewYMWPgzZjHAXm01oznsxV/9y/viEaecEC9+0hPivV/4atzy413RGwxibTCMN19ycbSb3bhjz+549fOeFlNNzOIDeFCUTmAg7x3BU4oQVIUovCRAk6wDywSdiwlOg7r7bkIHfzp1fem+as+GP8a6owBNTsgkwSOYjDdBzxd8NUcUHjk2XzHrMYz58Vp0h6vKCCZo9GpEljWjN9+ynmOeZZJiLthhKo3DLiaxVkAopUI2MdOA/NSIvzooFXgdCJfKPHj/jKxmnaO1EYqi+prQ2caPvnvnBD/I/JzhOXu9VqrjIdMhqlAg3Qh1YAX0adZZ7mcy1IBNa4hcE8UYPrxYvhQhHaWCoYdyOLfsc91sGWd3Ec2XrNIuGYgONH6p7qg6uQn1Ib0Aiws/S9YrG1J4kLoBlN3m4ZWBg6XLx25pflKpTa9gRCDFRveEqAj0603VEK1fKZVqORxgedk8hPwyHA39wyQG62vxrn98b7zl5y+O+++/Lz533ffi1j0PxPELC7H74EPx5otfFt3p2bjp7vviVc9+Smydn+PhgZJ9Nrp0a0QjgYwNEUPTMTJ6SFBPqRejntMxsX7xAu4olXujQ0msrvCfcNF65hohS+1cbz72vyiddscaXiE3QaGfZIgd9W0W06hnp8drrEca3KLVL3MbSKXUbNdsDmo59T+SHDnhHHyWsCzsE54GORL1z1QjOiRr4DrbMWk2Y4i0m6LnoB+JMq9UU0ADUuOEuxkJ77r2tkkqYggtqFADlgq0cG1Z5YCLawqxHsXutdCFQ7QOJQG47Dewi64uN2UeqfdqBMLTa/Cs+vCS0BQu5vBnPX3JT8qlUQ6GxiERAnzVnF0T/qoF9YoKvl7zKRKUkJSREJ1K9lLGQITGiBdhVEcThHGY2fq4EatDaYTh4FM4wF60tKismq/oKRvEEVteWY7f+8t3xRPO3hH37t0Xu/fdTyj3xM2b4759D8TWhY3x2O1nxm17Hoi3/MLLY+fJp6r34uvRclUd+hUAJeA/j5BO2QN7YI3Fb0bYjBbmI5U00YgUH0kux6xFomMRKn0P72g6Xf687nDW+PwzmM9Zg3r+hlOaMJjCSVN2Ati7OerTqSIVzf0qMI4xxN5GA44jc0VbLXqzUUBj17lQCYODDo0BtSqEcMFQWtFowlAgXythD45LZIPIzl6KnHYId1x7OzttKmqde9FGcrbakadEEEvRO2TKH+fQmEJeAabspXzrXK/DCkQV4cyz3tmQY0pAOpXyOucMz2yKOZ8HR4e1l3NIIG2SyjRxkA1FeUzl7EbqKCvj9/WBZW/BzNOEuPlPjKipVijQAr0geG3kymsAJegglDKqaJU6uCJOg72UPDUiROJgN+LHDzwYb/m7v4pTT9wWjz7jjPjubbfGgcWl6LSacXjlaGyYno3H7zgnHjh0MF75vOfGBefuLGkgjh15St4KuwwDAaMAA1KE3wFvKyMgWmdUqEDtPmQyBhXjdAX+DMmtyvMum3eulQfbEbcMMySVv17gK+uRW8k6jFlMbolyM5VO2f10qy8CKWSaDsdKpzqMUX8QI6B8KO7hUB25nFMIXoKnAvEOfRpONAqKTsIjJhwp9WQeoMTGDXwYgcuBAbqBH1z7I/07wr9JeVJNcg5mqrNU7NQk4wQG9nwbg1Vuqw8IVETqi7m8BDdHH4FjmhyYQURRkg4EgbpGZSVWVXTjdZGOADFinZOqKEQ07BX0yi72K7qD7p0iHg6q9nInCqTCTx126bbCmFjQsVk5jummkKce3tvozgDcMopGgAErtrJEJpQPMPVAk7IPThVuUJcdcPwMPidgQ6Jhk0bceMd98a4P/XNcsPORhHfvfnAPJUaH41Esra3GY7Y/LB4Flff+KB7xsDPieRc8JSZjCMv5uTQmNIKc4Fy3UiBhbjZnVSehaHc56evM/eU+uCVSZGGhnpSiZfY97KFLq0MRRGYj95fi0v6x9L/lVZRNOOSU+XD9HCKKlBPFaNZZ0X1tUHxBu0Qk1DCI0XAY416fRpNXwTeaQiSHJK6dGoyEzV68tuVZcfZI0KocQmmUpzXX7knj1qt+wLlBihS4m4o/UDFC59JXrEYMta1yb7qbd3g9zlrYoycpsPwgU1OzhF0U84bwZ3xIzcdi84nRCRCubr4gXSFewKNYe5SR0co48onihjBdomfPmYf0IQkRy6ARTbIHk5LcQD+k70WeAF9Wc85K1tSE8sIgRC4JvPKzUIJmMFTPodWVNCgVTZBCouMvI/vSTbfEF6+9Ji6+8Mmxd3Exrr3j7rj7gQfihE0b4569++L/vPh5cc4Z2+P+g0di10OL8XPPfS6JjLgPvL4Ipnj4HxdMeH85jpUKUF0vaiEJM7sRl5BwLrpJL+80ttr2VdWWYtJmpNF5IJzjCJzVyTEml9SWYiI+SKX2SdQ4MTLVhylBdYyhOW2VSIPvM4wEcHuzCfdTGxMzTSYbIqZP5evp96qnU9gcNnYBEAWZiMYP/vtayQnwwFYLEpVnZlxQAYhDB38IwmDmgfC8qZCngtTphvN6SVbK8pJvL/lH274lJxFRMqWRsoaIBczrffGkvvDFxlTyJtAKVIhLcICpu8loMEVOKTk8EuhGvYBCtoRV0+opDEe+lMZPGUVdqCjlxs5EHbpUMUk4mjQ3F7HMqD0DLXqJIqdqL9BhJC30sa9fE3seejB+/hkXxm333h8f/Oa1sX9xMU7ZujUeOHwojluYi1c974XR7nTiqpt/GL/4kpdGD0IHrZwfhLPItcVOBcmH82oxozriwIl6kWIL6i4brfK9Uu2kw5XO3mVbDft1TMnGoesLfTWzdiuX8IumnxvF4aBZ4T5VJqAawIfSbFv03HLvZELJ2WAWHD9kAY/n20Jt4aghYqp7b1knE0TJYjk1smQk1SLQFOSrLJivdf2V35rAU8tbKy0CPDcha7UZLWL68NjuV3D3oBtS7KegF4H0RJAgBpV0fbogfFClR86FWTRluWsTtLAwYwe9hDwlJWnw/UILbPuaUtNwjt/HzT7ouZJKnfVDzgV7aAqNw2Dzskkp4nxFCuB5aYpqGKVmSgkVyURlSa+qrbY0Rxho0yU5DMFwNr6TiJXdDI3G/Qtsk/rLT30p7t21Kx556qlx/a7d8cCRpdh/6AibbWvDfjzqjNOj056Oubl5yv+86Zd+NdbWe2oCNlsohphj8wErpPF5KZUkfOLNuD4svGXmPSHgIfUoHQB/j1FIoFdCXvx5PUMh40nSo9JZfs20CT7jun2U4tmGYgG9lGySWYhgmHsw5aTTeOr0lUIaVvqFSI1aFlmNYVy+t6OrH65gDTuByoHqwuk0nB4yQ/PW3Kq4iGhc/fEvTlC0gJ6Nwg+vRYNhce4pHAAAIABJREFUi1aTbhLWxqxDFXzwYoWe4hsn1MDFgVmm1V1UvilqnoNxskx8GP043CEnPKWGpJUOM/WCgYgzbFYr3pIFPYq6QTQHmGf3Ep/SEHMx5tSA4byJkJ6SRfI86teK1iLZTXvNxOgMYyrtSwsQwpVar/ZhRlFqntno3HSnE6//u4/FA/sfisedeWqMW9Px2etujMOrKzHXnYnV/no86dxHxPaTT4s79uyJ5bW1eOtrfiNW0GmnHpSTGpMn2Z9hSiHIljl1FuY2Ah1k/WxeH/tCKFKhhGiYV41N1xYuWtO/6ycFLetJGr3iN/gU+jcmxAVEMdJk2FhRNQscweFSWJFh2+5qkUtXUOguzGhVxGeVxOK8vG61yFNfy6igb8j/ObxnZmhSamY6Tsau/+BnKNHBS2AdIkNpw9mqmNClOW0jtYMrkHMbqIQCSDMfIf2CITgVyqaL+xzs2Hs8TBHFZDQfHHkOz1wb1RBfUx9QNYhTKhizURj6ATanhH4BAcEgkwZyRsLSuZ7BHfxSYyqlFKCgcpOSmHzYFnzO3g4hQbk2sJf5H+4bD4EgNXGHco9Gamrpe3WG9Lqz3U68/E/+MVZXjsZZJ54Yq8NxXHPHXbHa78cJm7bE7v1745zTTouTtm6Lc87cER/90n/HB//4bbHaF1TOaOTPJq0pZUdMXfl2NiKnS0if6l1txjtttygQKeY8xvg8YC8bToc6iWzE0cSeXeRbIZ4J71bNwwrOLg6PD6+i57utxUOvO1IKI9E7bCh5mPU47AQKN09p09ADZqhFZES62xU9X++bohQ0jlw9bRaA0k2LgjAYp4kixfrwZ/hX4s3O09DzQE5NqjaiC45/6Z4qBeGuDUuITreQE4LqDrhRpBVwW/AnGA8OVhNLJ21w7LJySAufW6IByZAtDFMfUB7aWjeWTbop7fiTx8/IoJtMiX7rOknFvBINE/6cHlh8puJ1Ss2k5qPcX/Y+7OGMs+ONGCmTtuK+gOacdaO4xw9Alr7RV6o/T3e68bQ3vyte9LidsfP0U+LE4zbFP3z+qrjuR/fEI888Lb57113x6DMfFq98/gtjbTCI795+d/zsM58Wc/MbjGK5t0GVFXOeDf9MOMQmdCUL89SA46XZGQDhy50wld+2E7DYdPHkVHDxxiynyjzIhlGVjaWijL2Bf2Mdls3DrEUSJzM5UO5DrrBK69KtyOA50ZrAQkZ6EDH7Ax5+8NuoNMPEsTQW5MDS/kylKnpgfBp6Jpl+yVa91An/euuHPkq+MDWTPHwkb6ObjA/YnZpEFzMhFFtwkWNvQj4U/w1oiREe10Q8aBy9VfgUdwnQmwfkeV8Ev+Gw1qcaJeBljIad69r2JI/kSpssE1ZL9DjU8xZlbeZcWPYhj57UBGcR9rzZ7NItVvek1oJiOuuhfz8IUjuse6U0T7dc/Qc/gNKRTmcxFU9607vjj3/xp+PsU06I23btjQ987fq4+8G90W43Y3F5NX7txS+Ox517bqyu9+KaH94R5597dmw/5bTSEc80ib0N6wrjcAHm1ECVokM2ZOlRFeLMPFC0USpW3HYhLSaalGmSPtUUe2WkY7B1IOSlnq6Wvodrkcyk5IqMhjl00ZBLwa8bx4hkNUuZTRoY45Ug69qHgyo+XwaOvA0AQ99X58MUtC3VJJ3So4bzD5v/l2dJBski/a4Pf2iSqt7I7blrW+U9WazUnzU7EqLKLShJOudPaDcvRsNAiDYugoxsMEKRHVuNeLKIzZSKNU+iCDmgn7VVBR7k5eN9RHM2dGvqsr6OS/dksYtzJ0ylSIbnxAFOWJqhmSiUehsq4KoGKKBipl74OujyhXbvCGMSZaadTB3MF8rowejJVKcZh5bW4wWX/kP8+jMeH7fc/1Dctf9w7F9aiyMrR2N+bj56/WGc//AdceDI0Thp63GxvLwaL7jwqfGERzySZEZRgnSQyMFSuUaggaxXFq2plSwKDNMMhRDVrOV3o1uuuXiN+oZj4NCse5RK+jlyLELdL95DUN6NPk1xuajq2JQAFYQ/pswRoyyoSKhz2eFuqiZkWqeIpVZA1aVXAFJ+rN5TRJ/r6RQtp1r1xmCmVX4CuGcpmJUZiesGFvz0ZnYajHq6Z43dH/lXz7YKCWGfgykMWFPoyArUHAwhetCgAXSaQq0otelCmTRkOwl8H/5Fh7DaM47ahTWGH1R6cTYEUV8kH8tlGtNWPqzUtKrPhOkhk1tldTylaUXUzwdBX0gjYd1DdrEcAa6RNZbBiGoSTdEkIwKv24M4ebjwXqIOqj6iVKpTunIAS/1mf9icih/uOhCX/NkH4kk7Tout89OxPprEdffcH4urvXjWYx4R37jldj6Ln7ngiXHX/fvi4Npy/PSTL4wXXXQR4WKKthExk8yQYp3ntEnnEWWxdIxdwFeG4QPAW5iHoVYkO0WVZlwalBAf7uRwocs4a0wYbiMNwVW+Id0pMguyoSYuXA0AQS0Lqg6uEQYC0QvK62sEN42u0mN2PcooJigeFJSCEqNZCGNzZCJwz2SoQqzoBDmLIvV31Sgg1/pJgvfFa55E48Er/k7AJklt+kzt5pQ0iTw7QNyZnCkpfCdXBZ5VhygTEeV/DWwDKgfDG0+L+VgVvuYFkmMkz1X3ckJK2F/xbpBM1fTOYh9LaEKRJ3fZVXibi0YnTS7FLSJnOkgW2l7LVr8GEd3ktVT/KEXjV2zBXOxiFpD2XhhCTBSHv+tgI0++6tZ74zV/++G46OwzYr4zA4GYuPru3RSuxqHsjUdxzqmnxJnbTlFzsDkVWxY2xq9e/PLoDeExpf0r3VndI33epPlUewmVIpEjI2fiOiAznqwP5IiE7yhFceJu5nYWzGkk1Vq3ZD7kRJwxIqd0YjLgpa257IEPvUeilDmX4r5VNiEpK1ut1lbkyGtLMMCgBZwFnh/AGECwBRTIn0/3rc4zo46QovK89McEOOxSd73v/04kw6jOM6ySOzJYqAvyxetQyNdNHFG68YHVB8AjIizsgpnMzWQF6yS5YMwPZXoCD7fyA/JmiMKIns1JvaJ3ZK3Vgi7oobMTnoda51akQT/9giplDZIYh9MNKs6a++8jr1SBjiSbponWSGsW96jVzv5AFuUaC+CwTpmF1j0VM9b9kMYkuq1m/Ps3vhfv/8JV8ZsvfQabj0/YeVb81j9+Mu58YH884/GPis98+7p4/ct/LrZsPV7121Qrvn/nnfErL31p9IbqMHEeuzTH3GPKw10vUtnBlxflPWPBzTEp7Seq9zbsdFQ7Onp4HFdZd+rtVk01MaRlmPx/zgL4CIzoZcpGb23EgHpYyEowoz6E0qLY2XSWSW/3odf8hqICezd8G2QCBmlojIoQY4wsZ8TMFIDP35Eru/Hs7TG+KPKRj2jJo5INTaJxz9+9Y0LhEj5FwLBqcCnFFysHEQ8DKEqdEgcXjQOjuSolJLNDUWtliDYYh3EX6OydmJNDM+GTS3RF30utveROuX5UV9pwZUrMZCPLL6l6uWo00ZDpSdxNNm2FFP00mmQdFKRDTABGTxu3M+yiYOZzoiZgYUBnyucarUbNcDbP+9Rpt+KvPv2VuOFH98ZvXvKi2DC/EB/80lVx9wMPxoOLi/H08x4V377l9th+0snx/KdeFPPzC1yL8IM77otLXvj8orhCz59kQ9dy2vjFY1JWDfDpWJqI1H5H/CyuWWyXfkVV1FedaXmbhHHpUKr+XalTJAWU7YAacuWzke9R2MI+hHKVWBenFFU76nW2uB8GBxo1C/tanvK0llGmT6xtM41L2J7ZoM6i4O+8N4qTOno6pwIpEvBR3cPPg2u8/z1vJYqVqAX+mX6RhaChtaQya+luSauocE4jYewosCnz/MInV/SgZzEuRJ6S4TTVQpmX6sU1pKMTqo2r8uKyK9UwSln1N3KRHbEyH2ffn5FCRs40pNREacKaTdAJEQnRx0HFPj2Um2IcidB4Kg2G4VxCUI4xzpt9o52iKgLLCvFazVYnLvu3T8TB5ZV4ydOeGtf/8I7YNL8h/vs718XiKli8M1w8edppJ8cjznpELC0fjTNOOz2+d+ut8apXvCI6na7z7drJNu6vno7RK5InM9K6oWkULz8lpYkISsk7p1vT3ddBYSSlUehQFUTIp8pHrIYmiq1cMmrfwRTJyEhTRSNfIx+3AAL0mQjVc7mP2d4eP9CV2ZvlMTFIgVqE/SEedqX9iBC5pgFnbcQoYQDDQ1GZLSRhUufezvaH7/gj12J6kF1HC+0erGaRK4/uPNZIV1qa1gEklVnRwzOEDtcyJhzGRD7UeTYnyHCtIoDoLRKm83LIwr60eAMjXirQy55SGAFNo3xGqq2kJ5yQbAoT07vQq3pKDneCrE+P+lJuVHqxiLIsipOwCNOEwLJqS9dK6szj0KFPxP4hm6hYW6ohHXzvW/72fdFsteLMk0/nR7j9x7vi0OLhOLy8HKu9tZjtzMb200+PDbNzMbdhPnq9XiytrsSrLnlFbNm0uWSDWlGq6JuUP8EF6SGVdhCRsxOkETFNca6dwAZZBaKtZLsta6zSJU5YlAcLDsVjk3oXHV2jffY0pU4saS8zAltxqeWyHazoXYp8V0U5SZopmgiGcsplboMRYyTKEOdNFPeVhupqMloUQMNOUzsq00FW4ZGB4uuX/fGE65CNBrHewP9EqbIXrhXWTr3Si5cUA29m5Q6YX/HFDkVEfNAvoYSoTDSpAwoYoqIzC82owTRCh07FmR6d5jLsS/zQ8H0gIZbOMtOkNCCLG/v61CNJrSqjXvaOeQ0yG/VB0PBMZRbSyJ22AMhAf0j4vLomvH/Qr6K30itQjcSfYbk3iMv+/h+47vmcM88UCbQ5Fd++8QZKDk13ZmNtbS3O2bEjTtxyQqwP+rGyuhqD4SB+6Wd/Nk49+ZQifJYpDWNaqUGF7hggddT0ugB3vhuAQ1Prqmh42TiSel6efdXZzoikx6Xi236tHEIZSvaAFBGUwTiqOHNgoeyJ0Dy+NGSyOTzCm5mGaTNp7OyE08i0Ajo3GFOekCwKZRnqk+nVlTJXfa5MuSQWZydanqPLApy3z1/+zqqEdVRlFstPhsLZepIOqfTp5lwJQUqHhmJS3l05b2UASFUo/gYuV7lP6jRnRFGAr6y9oEYeJ5b1C22DtdNA+Ok1mywVCi8AMjM5+yRTnPir7lYWlpxDcIqYKSVgX/gejmoC7jZcqHF4pZEsOv05YABrSJEnkkpq5mqFwjMwvmXH89CRo/GH731vPHbHw+P4zVvi3B0Pi72Hj8b7P/7RGAxHsXnjxjh0dDHm5+fjN/7Hz8dtd98TDx1dovjckx/3+HjEjh0yQtZdSoULjG18nwJs1jnOAoLr2jLZziEieZnC7dLBl6E02ZtQGMz6o3g9vqjSWjlRd6/tUTN99lFwFKv3GGQ4vB7P8AtQSmtS/q9aQWlSiQIlDdb54nlkf6Map+Ced2skQIEHaBlJVBYwV4/IKie5oTcRslpEph/97GXvnqQCdgmL1t/N4tnFiC3RauL2UuBm4TLRZKSOFqME7rSCfsKHDIeGSGmxELym9wJihuiiMMuD6AIOhwLRgvVbGigfINR15DVpOEjF2KMxR8j5vjyrOvfcDEUKhU43k48yi5x/FiqGV+WoZhbaTjtgZDozKkhxXdy1MbSx+7AwreI6ZKn/KRdWlLnvwf1x6fv+KS55zjPjvLN3xP7FpbjxR1B43xUPHjoUWzbMx8EjS/HKl7yU6iZ4kP/1raviSY96dJxx8knx2HPPNYInXy2QqeKUKZ+u6sTERCo3ZtTDERnrG1Q81vIQ7DBBg7jVjFabkn3HRnxTRJLtUNIX/kEHWs8+MwnVgeqZWRfN6Y3BsmOmHus9JJqika9s3srQy5h8gWmzp8OmplM9ooreLpAUFNohjIQiff74Nre0AYn/jaPxsT965yRRG0GueaOqQjZvnkKfaO85zJTVP4+6KRdoCMJwOLuts1SabMyXDR3yVhY1u4ROdVPx9fTwJbJkvmwYUsWvwqlqFw/d831N4nMqpWxLsyH6nCryU0xAD1swrmDt6roztROHTK9T1UY4CNmI1GEtOT4dW65BUw3yg7t/HG/714/H377pNXHXAwdi9/6D8alvfCu2n3hc/Hj/QS0Iik7s3P6wWFiYj32HD8Xc3ExsXTgutm7aGM968pO8TtkGgs9eImZxcUppRFWQEeX32GkJJlc0Zt2BGsTfy8BO5XyFU2y8gtRolu61bKlSuuHrpSqj2Q9Z6Lvq1XsmObRuLL7ORJW8JLT6NNVCThmduujJEFDfST2MqtDIXpR7O04lRb6taDc6v2pKkkZf6iMZeuODf/AXqeuuY1ZyWUUGRQh5XaZPRm00f6gagQfUBXjVIFRXXv0RN/Ls3eRl8HCUeuGQwvvTOzt1oKKFxc5yZj2rfT1YZ7Z+0DoIilhCdrMe8ACXchIZkSMTghDf11gYr5O9H9VEmYqxy54z8Nk78EGjMftwZGSBADLuB723d4QAqYRW7tdvui3+9j++EK949lPiSzfcFPuOLAdSwCSLCnEbx1x3Oo6sLEcfW2mbzeh2uvHMJ5wfv/KylxJIIDxrx8D3yvnr6hjX6NtG0QhqpACgjl9GGHzWJgQNHH1o6KnMAl2yqalot7GnMkmeBd/Ts8QBTMQum8AFeMkSSahhkqFVq7heIsLm0WyjTwoCFRdLVH0bVllAWo1oM0m3wF+1xsHPMpEvQr5JlHNq7nqG0kOYVBxguY/g4cYVf/BOx0EdOMWPLLHzERhuyI6zm3Ty2jpQsivrajlvV6DVq9LZ+5coOn4SbkJiHgWkR4h/KbVSRGJk4osYXvUNxbtRlcKokt7Im0kd3tFsZN2AvR2cPNNMC5eyZLFvnd/83Pg+FN/KPIygEQXCsL+MWMwDh3miQiBkKmyLbIcFp7oeXBf/nVKmjfjwV66NK758dQyGWNowianudMzPzEZvbU0Das1WrA96MdvpxsHlwxx95mBUcyoeedaOeNNrXqMhtCzMMyI6UuYMjw5r1g9urqlxY3DHFHZ7FBXIiWQ5qjj1SkoGvgcTjiXCugGakQfeCZ+RKGEW2GwS53mqTlamO0rvde7qKZnql6T21/7NTcHy/Rae06iwv498NYMFhod5jTawcsQLlSmRv8p4eadwD//19/+iuvpCOfbJ5rmsjSJmzMvwnIVijvg7+vislghZOrO2YqfNeu2MLqTXVyLEXvKsi2T6I/i0opYYMjZy1AQyU49w7pmoUDGw4OjQhrIhDU78Lzo6Gxs1iaciui3xqvCqFKimbKnEx/jgSgfZC2WIAiqhxU+lJm6H+jw6rCgV3/nxL8SXbrot1tdWafQra6uxddOWuP+h/TE/PR3NqXYsrizFSVuOj/1HDsaG7kx0OtMclkLz8E/e8pZodSxMkI05RoWEvaWQSAdUCH8JUKhmMVGgkNZoNy6EuROEEDaciXL0kvtzWGscrTb4Tl5XkEaXEkwKm0qr+Ua6X86KnfJVDRWlNFVmpL84IzGvrdQtZVBKjlMRxtywWlpWXhPkTfK0ki7k9CIrCafa+RmT6V075pWBKK+u9oCoW1z1JFjRU6jLzSOZq+JGjut6Hj3fQFatD1AfgtG/++qqnE4H3GmYqO5Oo4yx68EawsNMCikt1sXiLhOS4p0yKXKh2OaRZXGOPSgyNBxcSOxgWSSRrLwOswe0K9srD2SZ1gRW/YE5D8jrrA0TWs5uPQr0Ka6jQ0pFHeHmVPT747j29rvjv66+Nu55cC87v+C2Lfd6MTczSyUTjOJigQ6uCwxXKHjMtjucMwdLodvuxEtf+MJ41kVPidnZOQIVIuaJbInfxXZwA7QEDP07/0oULoVtdJiZa2d9QG/v50pWhT+fi2tqmyEFgQB3p2vnIs/EmfM8uOWU6SKU8mT7Ub0wERLTQJKD57PCFNVoluuCNJSk71DIz0Ni2eSV0bhOgUbYcBjDwTg63bacYDmciZIJrmaJwDZBZkPKWhr/9vvvLMPF9C4u7IxVGb2wl+V5rT5kQqO6Ba5J7NXSiyR0l+39dBeJ1KetCLI1VaEc1nrXVAVeyp8yhTB3R0ufqI/Kq0gP6UjPh9CGVisZyPpPvRTVPogoOD+QqUSDDxGE34O0zFQa8IHw2dst7fvIddIcWzXRVf0QCLjBQFAnaLp935HV+PGBxfjv73wnbrj1dkqP9of9mGm1Y3q6Eatr8nLnnLo1jq414sjq4VhdHXLlQULmuG8wEPz9Rc9/YZyx/fR4/HmP8gHN2iK79lX3Xvc1Mys/I58S3V0LNSeJUIWBfJ+78TDCsuKATnscvX6f4t3tdpvK7kT/iuevHbSCWkl7rMyBl2a46fWJvqXIN8Ec1SS0oTSS4perNI51h0xTp9CNC3cRYmVlLaZnpqVA77SdvCujozzWduYMBEwL7divuPTdJnzb0qkllfKjNWv6iQpFOrVZqPnUCVTif0o7Xaj6z+mZcqa5MBLyGXLlWZqw0QZXN4rROatQwZL6cPnERWOuzoQNLKNSZo7ZdbfHRV0BDhr5ZqxPko8l4qbArwajDmn+zHBkMIJx9TMYU8ZHkUB2zko04tPfviH+4RNX8rWMiMjzuZOfKeh0pxn9voigvIcYQCv9G99taAEMh/HoRz4q/vj33yKPWHMu6cAcjtNf8veKSuMvk4Pn3N3Pt3hgH8rsTtMr415Y/4t9Jw4gSY2G8juIaNSmUvMq++OZQvFSy1moUrd8T12VJJ90vdYEcBHNdXCUe0oEy+gWjKrVMk1egYDoKOftEb2hpTWKznSXAI0MLsUmEpVI48ro4+zl3y5NNm916HRIdePoGPL8J5RWjxguyBUhHJodafJKqkSpel46FBogEkVOhiHqfDq9DIkmc2XoN4vV97N62pUPUZMzrZWphTrrSSlQ2eGIhWk0nHovIBdgKaAdihkSYha0Pd2MmOZUMWRp5LlbLRiP3g9AgIQgZEyIRtfccnu8+a//2RJGNAs3yGxa2SSzq891bZp4s2d0sxMpIgr3hz98R7zr8j/SLL37VnpkPzGBV2B7I0bFmTjqV2m558z9tPw4mcZwJ2L2L9ykzGIZurkD/JKwm4r9RjQ7rZhqtaLZBrihYShFdntDWYCfmD8n9dYkYM5sh2iTHZ4L73K6QUS0Gg7QJ1GC9NqgvY+Ix7e8GDai1xsoA8DUoSFtziH5ckqNVNmLzscVb32XbLowOl2L1JKxhG7Lsc3PWDOObATpEYk9mf+pRimMxRpKVh5/UiQrhMWHOq1FQ/Xqc9SNUfsyZGxZDGpLkj6UzoyKWObp+ZCyZ2JtHmx24sCOPxMNypuTUlqHUCj7OzIYHNYmELIWoofqEkUJNQgz6hxdWYk3/Nl7Ys+DD7mppYMB7wuIVzKlSrPSALg73QUuPLIaqWIDH1ldicee95h462+/wemEfW+S75yHJ4qYNpEeOh1L5YjySdVyghpSWeX3YtMKWPGhplcf0kBG/X6MISxBpUzUWBNGFkYTpIuEBhGBYTz4TJpAFKCZ3D0bkcKKU6ZKmVOVpaMMTjgHyERqxHJmNKpRiUKkeoDxY8/XoyndHwxpIK1OmxkOd73Y2SeClj2ycm8+hE56rXJxDCiFd82/2z4qMpmPn/fv6dzLQ+QL4tDiRtbU7rJGKZYqj5X772QyTu0y9SrqCvkPmfqV7ywFffkoRkMyQ1MEMfSJISh7ehqONaZSM1bLgvxgaSjWkIUndE8km5K4XjJ2rTdbj7ysh5zOXX/LbfHO914RDx05pGZkNKLX78Vx8xtjqbfKQSgcuuZUKwZQDJyaik2z81ymgyjbbrViOOzHwtyGeNQjdsavvOJl8bAzTi/0ETWP7emVafJGks2c3q+yg2MK8XoK5CDmjng+4cwoVDiwlkgOlzxiiYjj4TAGvX6MelhlN2BtQvnP7E8QBWvxa0QDEYFgUOy1wMnoHus5Ak1D6qaYXiJ+oqi5WQrzRHBW2F2JHe1TGJ5qRa/ZjVGrLWkjrLPo9WgYqEfqtbR4WaazFDKtUfqPXv5uFulJKkuqbwaQRKiMaZXaQtdf1SEMw65maPtENJS2JTplC6oQE8OvdY+me+154DrCZcPTl/y6aYtOLWohq3SbGdrLLyhfCH+E94Ln18yH0iIWmqSTCPVJ8mWqsbCzjwfGqCOjIemPxme34HupnoxOKt5j/4GD8b/f/FaOw/aGPe4BmenOxPz0TDx4+CEiWcurK9Fpd6LTarMInp+Z4cFaH2jcea7b5Yq2173qF+MVL3uRpwsdF7zvnLU1Rw08SkrLKbG8pJ1VPZJdbz1h9baU+im1kI/NpiEdgu+NOthaGGSMjJEcqpfQGeb8Pnamz88VqoqbblUwgyDfEL8gaeRDiq1ew777WrqxiXYRmLFemjhgaUo6j2BXY2Sc7HNEkDYMBCleK6a63RiOhowgbRaSFd7L1RWAhImcQYBkHMN+Pxofu+zPTc/LBpK8W7mrtUOalA9jIXaWSXFOV2IExB1PfTilN7w55fUqo0z8IfNBGmctqulnBAiovKkEy9SEzNtk7J+u24ceqUq7SUyfRSQRGRgK6hHVPIRAeeYlTZRQtuoQP3pfd9IyJDGj7C7HcmksJbOsEDmwdb/6ze/E33zgQ9Hrr8aWzZtj8ciRWO/3Y8vC5ji0tBTbT90Wi4tLsbiyykZht9WK+en5GEDnF1gYxqDbLUKST33i4+N3Xv/qgvq5lcDrhm0QvbOwQtYkFXp7TIy1k8vzyiflZ2/405wkl67Fi2t1W0XvEU3ez5mCDIJ8+70+IwbnWPL2lJZCdUBdlwvlsmB1RsQRahM0fHM/G+dEPDPuZmze+PyrMhkIlAvEGLCnI44ZrgkFO2Rc8Xd8L3eLWFykpJTkYr31Hb5jeqB5gPNI5uEs6VN2HzP9KTE5UyPXCCWcOw0qvSo9BF1ElSLRZyWDM+uEPHx+R/aOAAAgAElEQVQGDajC7jtQUrmkrRvHrwJMNeSjCKLQDQIe/24qvKKA+wieL9FrJK9LEYL5sufTGUFqD4bXkpSJIu3vwwYSZbMRf/+PH4qvffu70WXRqtkDRAkceqxbO2nLQqwsr8Xew0sxMzcdS0tHow1leBblqk9gaJ1Oh5yst7z+NeRqpaGWlMG3NUvAhNkFXeofeRTqhUkthWVdXEfYMMXHmqKynWTXKoXEDDjIo+1od7CXUuTQkrahF9GHyLRmxdW3ySPnM5dnKGsnr8Lj+j8sMvLaA0rRMh0bckkT1z83mwQCYIT5HFL5GfcZ4EkXgnitpiIKVkQM0BsZik9IpMt5Dp9pLghyPfofl/6ZEiM+Y3F6SiGUsxb1g1zMyRIsRf5dhz4vsjQdzfzES5QpsowiLpqLd+JDqGoWUSVMgchrpLOvxnozBVQhXXl7kuvo1ZwKeROrDpSCpryg6yauM86fUd5Mg0qj4b0TbZ4yNSlTxKkooVK5PKcWRHgv19bX48//8v1x5327ecApVRNjzqfjAKNoRYoFjSfUbPNzsyxikapgkApSP1D64Cox9G06zXj9//dLnA1RtiltLB1+MQ+UKtXgess58V94ublNtmL/aiao4uOliiPuMXo3QM/w2eBtOZMx1aRREJzIlQKGyfNRJiKa3W2maEC4MlLxLHiitdDaXQm7ZiyzQ64T2PNCSgnD6a3HeLUX4z7u3TianU40Aef6LATSU8z04DrxvjCWZouN1/X1fnRmppl+8T0skMflq6mL9Z+X/alSTbuIaiddNauVlOr8vuJ8nMNVQdtxpzbFlalaOTSFzlJrahmZks+tirGC7+Oh5qB8XmuGdxwEeHYYGxt+1WQcRNT4Yy7I6wAC8Xp4n1TAOOZUZ21l0mHmwFVpa+SsYgwnQqamSEYkpat79x+IP/3r91OLF54OTUJ48w2zs5wU7HQ7sWnjZtYxGLGdm9tAgwBxbvnoUiyvr9NIEH2mp6eJ3Lz2lf8jfupxjymUdyaZ4J7lw3AtkGvj0qMX2kYmrXkf2bm2XI5TWhmCoNZEexKcSAfYancckRFFlMbS6ThdzQlBvS9SGQEQJVMpIf+YvLo0rJm4swdpuSg4Mp1Y3gdGV6ERvE4Mlrkxo/6VILIi6qCIpzPS7w2jN+hTbI89HfDeWs3oTncET+N7v/K2t000863misTgsifphp+Zo3kd2R7M8igpAaXoccjWmXNOW+vA55ch0aIiuUrdGREKdwY3Jwv9rJHcv7BBVKp+VVMtu/KlncPQ6flrQ4psAHKyzuroyqCVGJZepQxOjyOLXVdgRj5UC7tp4DTPWHLad9xyx93xd1d8PI4sLfGAr/XWePi77W4srS3HOWftiLm5WR1ur4bAM0CR+ODe/XFk+SiZths3zDN/xp6R5z/tKfHq/3lxWTbJq8iOftLcTXlidDEfilHBu8g5rEQj0GcoHKZa45X8JK9S078LyBDqM9FBclqH1IaplFPZXLcmfoturIinuocikhp+9zx9Jhe5dAmvB0eWJ0lcBde1+KI3aeH18Xr9PtCzIX8G0Q2RQ5kEboHqEqJn2GDcG8Tayip/xz1otpsxPTsd3bkZ8c1wRr562aWTSq2uqiM016wokhraMqTEIWqFMe9bxZ3i9ySaU5U1UuAro7Z1plW9drdZ+VBn6qfNVTmRaHlKd5kJ4ZrbQ2iQDsoylJ5jyBxdzwp5p/SCVZxXnwXXLmE7z1E4vaR/5QvLUBLxqe6YvJyQPKWJCiZT8akvfSPuu//BuObmm+OE47bE/sVDMTczw1QHHKznXPhkC/GBRIknPVQzq9GOO+7bHbfeew8/00lbtsX6YD2mmu3YMDsT7/id/2PQQjMW2mOf4hY+UhR4xnz/KCYQNSiGYJ5d3TnZETBoDMbUvZWtmPNmxgAcYn8gT93tAlgdxbAnkXBqBQMRZK0FiSSlpawL0JDlHvmmhqDyEnNEwQwGpHMkqOJ39oPsxKhG46lOWxKuD0YBZ9Ib4DOCt4ZejOVuGxHTc92YnU/umoXGKffjUsxcQURMsqcN6/PMfPHSy/zE6wSTqngmxJeaqA7LQk1q32PHm5GvoGBV8LAXVo1RvLGLpBJp0onzhcyC5R9NQTEKppnrrB+c5tT7EIxArPCryFEoGy7KfZBKhHOvwBkS319zIpVYXOkE4wy7VpMh8af0UizAfQds0H9zxWfigYMHYtOG+di3/4Cm9BqNOHh4kSonH37H73FHOlQ82jHkDnV4OHSE/+ULV8fHv/pNGsj87Gwcv2VzrK33o7fWj99/3f+KrZs3F9QtcZHq4HmvCQ4L5rTd04GHXV/tRX/NxWpzKqbnp1lbEWxATYGOsz3toDcoECz+3F9di2F/RM/c6bboqfmMcPYwUzHQDpn2dCva3Y4KaDsqIm29gVAjN2VhvCnmJmq/oHhKPU3QJ/Enw3N1hKo+q52Wz0n19YoGhVHm5IDhdbmG2xsNdDBVO8vmRKHRvvuIxhfeepkzpIrpyKPvmkRvo3/Lc0toswb/Zn8j+5JEoyiTo7yyqj/gDZJnI9eV6R2/i7lmHmCFHv10lfowTBYmjLnbCTlqgLxsakWDjZ+FL+EDzJ918VqQqKrBWX1Wjfvm3D2Mg6t3uKsEVAhMCPrK1Aow7IooMIruZEDIdbk3jD/8p/+Iw0sr8bTzHx0333FX7F88QpJfYziJE7dtict//RejD+9XNHXktYGyfOnam+JT37gmDi0v84NsnJ+NjbOzsXhkKS5+3rPiORc+UdKbngzUB06Bcc3DIBL01rgUmyheZ6bL3+FkkGIM+8NYW14jZUQ4cURndjqmQKvHgXGej74GDv+I3XKdCM6+M1vQTcjJTS1dMsCS1+YowsNI+NhbxdzkJFMBowgz3ei60NYAV87YZ49HjxP9EyBkgMJ1SizEkQ47G9eGlfmEMn0vzrgGLhXABh/NvL4vXHY5a5CkamQTzjiCxRBKDKyf1TRr5ZHJBzIGposp7Sa2/zEFiOsC4wDz605FrSxvdQl3f9NDK1qAhend3PTYBhAM1Za6lBGpMgAp7NV+EdlxMyzp/DYqOY+EuiuNLN5HX5NkhfSFwlfjRKIWmuqVpYICZ9FuTcV1P7gr3vnJz7MgP+fUk+Ome3eRgo3apdNsxuMffU78xsUviD5WyrlOU/SUE7rxtnvjA5/6fDx0dDGmp7tx3MaN0euvx1xnJjYuLMTlb/hfsd4bSsnENZDo6ylxmLMVQQNAvo2eEOdnrMBCiaX+OI4cXIxhb0B6OI2Cq+qyThBdBB4eBsnpPzwLrpZzuuQ8QWipEDpOGjrKpqOUo3W/LUlQHlShkXDeRFOTWmcnBwQoudmZUlTqKMIN8Nm5MBmNPtQSljRyQzPJVnzuVMHXfVYfzBvQPPdOaVgbZNaxjS9efrlIxT5l9Asle6q8t/xFGkrCiE4jKxjLB8dLcDwElQUW+3HWt8UhUn/OFHPj82DBciGPVw0o/9V14LoEIkgIgXpXJUJkTXNss46XVma2Uz7IV3RMcEpDkicSdFILEY5wqn9rTUAqmWi0OBudZJJGRLfTif/7kf+MOx/YS8dw+oknxE0/uifm52bi4JHFmG6245IXPDNeeNEFnsUxIGAjR0p07wP74h3v+0gcWFyMk7ZujlNPOpGF/J337YpmtOId//9vxKaF+YpLl1OEJQPI4ams86rGbnaOsYf8yOGl6K0AKlWxLlUUGIBEqUvq4SU+/FoaZKbS+aB93xQQa7l+1j8u8KpUO38wp7lMnK2BNcosxH/jjA2vEVk0DN0jyxai1uMrSIt+hlC0IxzTKHP3RthzKIdYkFz3V9CjanzpbYggbpQ4ec1aIk9IplfZ48jUiEfSqVZ6h3rpLY+m5h6Gj6AsgrkMwW+qbmggjaBgHbwwPjgm+ChaR8pyonipxqjBJInaOfUrsHKqfDi4lUI7xe70IJTOoeh3we4HV5AORx1CEr7ZKZlZ4NwiRCHGLk2PXXivwW4EG1KXve/Dcd7Os+OL3/lubNqwEPsPH4yFubno9YYxHA7iN3/5kjjvnDNLekWH6qiG5uTK+npc9tdXxF0P7OE9O+mEbTE33YnhsBeHjqzEa17x0njyeTvZEc56SrPxum/HQPJOMbJJmukQUK7e2kB9BUvKsF5BcU31dK0sQO3C6II/D3TwpWGmu2o8Vq4u0wNDrImAFaqJbrbV5csJ06RmSRP1utorU4dDaiczEVbbWPaf5VOr1DydHlNLGku1FjqjA3tfmPWxKgoFur/yJ5erB2wZfBmHTqXy91Sq0OywbaiQGfXGtVzcTwbWDaar1rEhnZA4QnJINEsmGUgdMC3rYV5LAW1J6eAa1AJzdcBmluT/Vb+4acgfxebCOkxteR8X5EqAtC4ho6Y6x3p9EurwWRyWsh5SqiZjypQtaxs9A8+i26ASUrjlnl3x6W9eF2dvPyV27TsQ9+zeG8dt3hjdbjuOLB6NlfVe/OFrfoE7QJSU+eX5UVSkTnfbcfnffyRuvvNOkvamW604/aST4+Stx8Ud9++JR591Vrzyxc827JqeF961pTtcG3dVoM/0UJFFFCCTDykZa1EDi+ypYE2YODlyep8BUzaIHMBw0PWuvLAMM0UY8ExgTRKkkHiGTSUpMbWZcl1lGo0/E2+4qLPVjmR7Ad9/8sVda2aJUOZpnMqxEerUilQjjhare07KkEeq+crIrb7+dkWQAvPTm1ZldRpEBkH7Zpfsdu/O7VVzKBRi4xSiwnRTi3M0qVfnUOkV2QDm9yuiIOowqjStiGJ0CQ9bcv96T6m6V4c7Ra8J28OAODBW9XfydtvXKaMsKu/ytPrZSkHcyVRRSxFokP5GaZgyDfduEgK3BtdnvnVdLK31Y9/hw7Ft0+b4zm0/snJHIzZtmOOuj9/55Z+LLQsLKv0MRlQRW2nav33uq/H1G74f6/1ejIb9uOBRj4iDi0uUUt04Ox2vveRnYma6W9Lkgopkns+XruDSxCtK7VbLHMoI6wicJWyRxTAUYFvMxagw1gCSIogWA4U4Y4wsoodoo1V1WnLkJw+/xhQ8YfiTwtI25MpZq0au4PW8ckf4iuSlp5NIqVPljEhFj7YgVp4TStnVRLfMJqBNfuPtlztAGm1KCJcRxR8wkbScsbUoXDUnIuURbp9F5LDcDyFS21C3OY6ZlhaAYseGXrparqMMwWvXCIgkkJyr2JL1KPEERVB9TcIKEKJLFRIpHcL4KOBGITf9uUT+Wt6Mt9aeDS3UYerGuJoaV6k06SLfjVT2C1wbZTjn4W4EMfn3/9dVsXXTfFxz+91x+vHHx533747Z7oz6ATEVx22cjV9/yfNjfrYr48hUMS8SQ1ftVnz75tvjM1ddHweOHootCxtiOJxEp9OMTRs2xOLikXjjL10c2zZv4j3h0FLN0IrWrldSCIhQOpYUrCoLkGNkhcn0tnQAXI5V26II02I+HemXES1CpzCs9R5TMfVcvNlJjW51tGkbrgGyHjFlqfRpipU7T05Jp/QjhU6TqWXNqVcZpjMeAzP+FPpcWUfq1pNZQQNRDcrTByf81bddaiaJYd4k3SnGWGekNsaaxZJvJV/HMjo41J0GCGIjSndKEUVqi5wHn4poQ7FwSqGa6ZNle9AdJqfHQyyZP+M18bOAh4EK8QZmiuu5hyYmZXxQRc7TIhXsyBqNtEpO+8NVBCOHwp8ocJDRE4xOopxSggdwiCgE4QUYVgELbMis4YmYePsq3x8tM1X+exeX4x2f+HIsrqzF7EzH5cGEjTIYDzzuI884KX71+c/grAd+TE7CsLrBAKQA9z90ON7571dS/X3HSSfEti1bSJG4fdce7k5/zUteEBc86myiNNmjquDMGrvU7OWSEieiJ9d8bGptQ8k0M3EOnW4jS5m6csGmuGgUXxsGUy4YD9Iujckqk6AKSaZixVD0WLJIJoyuDyJjpYNz76vWgatwlCqyMyFLtjCfCaI7EDcdUtziqqmsM060zUCQRhnAj9MgXONrb7u0apPWJCOz4MuDx5vqiMKUnPL/6mqqXyDNqIwe4OV3W2MKIXDPufWzZtj5h5HkplhdtHLDLMZ0M0pBJzC8vBfeP7lBspaIqZl8wFwrIYMZYX47YjDCITeVxr8neIAXRmEIQxJyJh0tPB8Y1iB3izCfk0gcizfZgbtETtdIm1YkvPbO++Pme/fG7oOLcXhtPWY6zdh3eJkeCuzdg0tH46JzHx6/+tynFNFuRZ+qbipvEo148/s/FnsPH4jZ6W6cuuX4mO5248jyEaZvF+w8J1578QtNMa8OlSJS1pJOo4+h8aQebpUqJ7u5qgOy2FVcyglOIZrON5OFY6+GIhcIGYxEwgh+tQoErdJBz/9wURBXhFTjEjkfkjEiKw4FnTyQyiZ0TqvKJdNjHVqdJUH8jhClheYC2hJJQrrUkOS9+ObbL60BglUUcVKcAbcKvb6YYjC2GqPaMhavkEbDDMV5WcbIOW3JksIWKBBtIg++1m6p20s2Kl4HhX0bFLoxf2903XTwnj5+E4WLDcsiMiVyASMZcS9BLsGqaokU1mPYl/EkjQavBSeC6JF7SarapFIwwfvAGABL0zHWohH6a+/5/PVx/pknxp9f+S1qW+HQPHzbQqyMJrHn0Fr0Bqvx4ic8Ol76U49hV5lsBR4k/57oDGHxqXjnJ78SN919T6z21+KCh++MpbX1mJ3txoZuM27fsz/+7Nd+nvvXq8Q06T6ZNpUg5s670+eacqEerQ9chceU8iFTsayVMhKlAWTUz5V9LB8RWSoGpXXOEv0yEpbRJZUTiyWk2JsOtdaUmydqTp1jj3Gl6rOWDK18zFwKWjxbgY1ZwqRmgfCq6n2ufvsfOWU1quQ4VKgkxVATZtXV62alhpGvwjAiczivVSuuolhvhcdLLbHa/ZdggZgFZjtZFLuL3SXtYcy0xzEzgw80okG1Oq5dvCaLAYVNCHtMdHORCo0aMYXFfszrlA8rFYtAI3owxMJSvC8lwNU4JYggp6E0Kwt5rFqQcLUybfVXlAboLd7+8W/GY848Ib55673x9HMfFp+47vuxaXYu1ga9GE3aMZn04pef/aS4YMfpTosUE7NpCyhbqJv++/S1P4jPXHMjSY6P3n56dFqdOGHzbFx/124Wza94+k/FRY85OwYonnP+n89IqJHAicR9LdGah8eGwRSnBJOahRg+UKap1yGiWRfF8A8KJVZ+X5YW1RZoMnPyaHDpRbCcyZrXurl8K58vRyBdfjaMq4iRDShdvgrmOjeNrLiM9qlEWbu3MjpHrvzY+ft3//QP4DOP8TzCsxN/dnpTYOUSpKoMwAqJTHWcOyss6W5rQMcPOz28H474TZXj5/llB1cxTD7Dr1NeU89GUQhomYt/6lBpqk6ERXljpHOIVLNt9GIsuV8W9E1FDx3ZkdUQUbPw4Kdv8qJMHxyDL15HbFdXimvUWM244e7d8enrbo0ztmyMg0dW49xTt8X3d90f+48sUSUR1wWG7u+94oVxypYFT3AmfScflLdF2encdM8D8Q9fuDpW15Zj68b52Dg7FzPdNpGw5bV+bN24EL/5smdFP4lLeYBzB2OCL/l8sjimf9Hu9LQNffJa0etQoXLNtJLiZY16FsNKkzbhU764vBzRXhqMRaxZ4HuHJTlKNhQjRKgf2NF3nlWWh2Z2V/KvSume38yD6OZAUlsKQps5YbYKKgeSP1WwyiPv/+3JaNiI4bDBQ8KVz6NG9K0yh/uMRh7RKKMSSJvkX10QUWi64uvlazBtALJERrA8bSUu5nBe9Ror72mDIozqrLF6ZCr81TNwHZTewAGioG/FtHyraMCKWjAUQM+JRMH759LQakVcRsZsNDpy5kNnwaoIxjOAvkW7Fe/61FVxy64HYrYLaHSKM+UbUDOsr8b09Exsmu7Eg4cX4z2vvaQYh4pEH6aad8uv7jlwNP7qc1fF/iOLsdBtcm0b0JhDS2ucgViYnY/fvvg5cfzGDbpn5bQfuzhV72FsPb2kz0upFZwBGCs0S7nK+RMBUhWdaXlGqARflO7KFhJXq7r4yhbs+OiNauhbIlT27NoGkFKjaYA+EdZFYNyqAR3171L4cNHvSKLBsLwep2b+IeMDuu7BJ944mZpBk8T5Q78R47UpMK4jYDj4+yRcH+jWcnFnbR+eYGh45imuTcseBEWJ3cdAqqIwWpVcglP1+ljzzFTGkCwh2/LBhECxyeTqWAsYxdPS58rXzVtjXSyiGDI0mWiVtjju1s+lXyu/RwWe+h+lEtXxMgycKAsToqlGPHR0Ld7+sa/E9hMW4o4HD8Rzz9sZ19+9Ow4tr8ZMuxWHV9eZS5+8eXNc+vPPo/EoJXVenn4vPT04RjGJw8vr8S9fvT5+tHtXbN92fJx98gkx0+7E4ZXV+M4d98aWhbl4wfnnxbMes8P32OBH2nhaTJJB/fq27FK6ZZC2UqiTgDxAStGqfYMp7JD3vmYAzASqZ0JmcOmvGf51156DXjSA0g6uPVHd+/zWTIWqFC9Di9HErKkK7FZLnUoUVWqdAuT5aNOxZkZHEzz0njdP2i2IAjSi1cUYI/JtcFvkXXMDLgrPqbZ62kylYFBTDY4u8pBjiQ3Pr5d2mmJCWSQiVArQbFgYg+eUGLu5ek1a7ngq+gP8opKum3f4PZt+Qpd4K41QcMtpRhR7Rb6kIqdvtqDeXCHh1ZCli148Th4ce7E0wwLn1u4e4cfxhJAuIF/c9Zt/vDeuvOH22H7C5rjt/n0eCoLET5/3ZmFuNlZWV2JhZjpO3rJFyo2OsCjWUUNoDwm0btWAA8Wj027HYBJx794HSXZsdTrRwcx6TGK914vpTjvO2HZ8PGXnw2io2HX/+LNO51gvodpaI1I5rflKvm+lPjnGqybyYw9eBUvfVB90sxqMywqVtEFWKztyL4hJjn7gmn83r8JHRMyOyu0lQuUcxkdQr5dRoCR2qRSfFBXD8An8FHEIfCSXZ6k+X/WP9Go8PqOPvJECtczt8GLDqRgPVPFnvsdvR3aEXL7ZiBGiCgzJCzaB5uEbuL+PXkMPV5FFJ1TIVe4BQT8AfQ18TzaO5ClIkRlpfQBJr2z4ySCU2GmVm3aJGAj299SXhMKIoJGL70eM6bQmhJwF92n3CNLIPtJKqDDiX7yqQFFQh0r9EzQiq+aSeh16hsPxOP75K9fGld+7g/QOjMqC5r+0uhbdWdQbGA6CcEMr1ntHeT82zGyI047bEicszEcf8jIRsbq2Gtu3boxDq9CSGseexR4NAD0gfJaV9aPRaU/ijt174pQtG+PA8iCWV5eDI6+4J6y/hqy90CPZefJJ8buveFHMdIlilC21GtqowaQ+lExyymZcHw/3vMrhc+Mh96DUo2oGKr6ci2kmFZxa9NFO0Wz/e9JgWKdmZpGYQjGWytNlj4fzG8wM/F6umSsgokoKjoF+6fSkIVDPOnS9NupMs7KRMP7wGyY48MMBGJLqGUDUmR9pFNFGAWLeDOqUKTTlJjjgyi9bnXH0VyF2FjHdwSgjoFmgTGD05n4ORByoY/giRiIh4qKkNSBUiCRFp8fZ/WbaVbbdJn1E3iNbwfmgND6rQrzp1c9aCed9Hq5BuCqOEQhr1oygkFotsJp7RRzsEKQgIQo0SPMGCs1KF2Fgk/jyTXfFDbv2xpXfv48K8xRmGAxi44ZNbDiurCyzGdhfXw7INWye3xxnnHBytFsdK6KLvoEFnoDBV3ojAgvTED2jrtZU7D+8L2Zaw7hr34GYbmEWpcWVCBgpHfT7MdvtMrKAVzSeDOORp54Ub3n582O603GBWzUM82BlL0k6wekz0+n4yCdHKgnfJUN2/yDTlkzh8oAlxy3RIUcV6Se6OedCXY3HqjhP0EiprIw7U/MCKTtVFnJVXKU+h8eWE7TzJ6Jj4FPkAtKSM9Qg/lKalzS1Mbry9ZMGEJyVqRivwiMivVLqg6IVw2+caTbSRM4TvO4YxiOJ0f5Agy5U6KAXViTBwVIY1IHSy3gQaUpok4giuYJAdBXLd8VwPBU9dMFdv7COcTnnnrhTrbxBMgQ5H9O1VT375mS+moha1e3J44HlOSJz6gDgVXIffMYxXq8f+NpgHFdef0fsObIan/reXexmd7tdbrFFPwBpE1TZJyNow2LOAZOBG1m8UwKIQMaQ6BNUFZESoS5B6sV/hfjyYBi9cT/Weut8PaRc050uRdmG0IyCWmB7mjsNoZCyZXYmFmba8bs/9ywajvy3D5rHCJKgqX+r1Sv2zIqQWb3Xv6eG8/B2VnWHMiOnv6759DrV8xE6qjd07V0g1uLVS8ZgEKh24PMIZ0ugsH+LkTkjqV1bVVskP8w8vrQgXrfRuGPGytEi+NQbJ7GutGiC37kdqRH9oRhOLTTokIK08RQ8A9D3GyFS4MPgexAd4IET1cCDR9IMjzxUAZtJUskbXRPgnZjScIpON51LJKemYqUv48OEJwp5La6h/gYjm1YyOxXL/ow9CoOTh2CUnqUAQx6ZymtmAVnN4td2cDvyyLi1pJR7RaYijqz247c//J3YdXiNhp1pimRx1G8pBSXAAjubAXV5dbjkWARRw3C0T8UDVD6jAkXgdJpcF01qPWR4OMsA4+rEEPq0rGk0xPSBVz2HHC18cnHNwHYWiML02MtGDbG4HnOiUlOmUQqS0H/eu+xDGM4t6Y5yd9zPBNLq3LA82OnVC2JklArfK2XNakhOB7zAcoVMm3VT0oXS2JlCK5S4lNHZUtCwbnQW8zYOlyT6/goFjsboo28gx1uezJdRYGtfFIfT9PBIW8Yh1fJwGQWp9Sb4wd3i69RQkv4qjcvFOaTuGs0MqZ58w65xe2w+CHwPXhKplTTT5AWBqg0gpKa6QA5Ai2xITBx7hsSvlYU9y+Da7vC6cJleQ+iJFBt1Dzhay1RMtHM1L0VDwQNMHtdybxS/++Gr4uo7d3szwFAAACAASURBVPNn+6NhtKfaTHfA6ymFJLdZNSnfA9lLQLNa8YYaSTAyzL3UCLzfinS4PhXtYhrgEaAWxPPSoqHq/KAGwlPeccKmeO8vPyM2g9vjLVnsQTCFTAYAVOjV7yKK5saoWNCZCin6kG3gLn+pM5yF5RrubDQStHHKlp5ZOyz1vJRe657z/pSmQa5Cs8iDHVyJGh5VUBGvVFd3SPdGNpQZhH+qHPbaZGMtE3FO5mjmwSknnISzR1e/bgLvz0GRtUY0hg0eRI+O685nx46U2EbEwEUf99Elu9AQB5N0HGbTRVDDAP1aNU3EkaLeHCJz140dVdUWM2M30FuIW5OY0HBwPYpkE7ARe7rmMVCv3lQMhk0TBnNU1ColXkFNFCMXUTqs8iMwOsl7Srldn4fpQT5YOxH1d9Rdx+H4+y/eEp+98Z4YjGEUzegBZZrCHm55fKREPOA1J0Po0g9aaYjnMPj+rRiOQdPB72OJtkGZvNXmUk/o98LAQHyE0HW33Y61/iDmuhikGpEiv/PErfGmF/9UzHekm5u5tw6po5UNIyO3qDMNTnQCuBCkof/UL8p0ySmXvXAxBo/HVsV0fp/qzfrP82fqTeMKRdf7+o0pVueJP23GquDiElmKUThJy9ytRCOPmLteUjRMyKeeXsrTFPgXp2382TeIGEUL9Bxz6vyYzwTECoeK/Y2ytlmpgwazjF97DTReR8xO1QL0FHpEJdJkTaPCSc1IeHA8INUcehh4fSBghIvRf2mPozk7isbMJGJOW4LIuepD/4VyI6bRS0GQJ51Dy84B3AA1gUrwrDu1icJnFOHJ8o+Vng7TQkVOdu3HjXjXF26Lz9z8AOVmMrzbYSra8KaP2PXOVEkZgDrY7Czb+5Eoyb8L4kbqhRQKQAPuKdcjjMcUtoZaB/aR8HfUORRlk/riWdu2xBt/5sKYbmNzbdV/yshgxnuZ0spuugbKdGjIeLaR6Hodyu3xk05UkKLKiVe9GIcb/KZVZ0Zw2ZtKekn2nZz+1CgmpQxiKprPI/smmc4lcnDs+crrUne+MvaCvrEOUjHE60uAQQmZ2hHjj71BX87DgDCOH8i+RnKQPBxDD+xJvxQco/elNzVFIzuavgG82daM0kcxa1fNC94x0tpNYkSenKiGiILZ3lPKB7UP3O2ZDcPobIQqOPBqXXMApoahoj7ilKJqD4jNg+UrgKHilckYhJtQVAIPp11J/SjimNJEV2rqje/BWm8Yv/OxH8Z1ux6K1cEgevDozQ6hVqxYwwrDzXPzcXhpkaFwNB5w7zj+ncbih4HUCOoj023UEkqE261m9PqjmJtGygaHI1+N790AXld/PdYgwmCjkWsQ/Akl+N9/+bPjlK0LxzTsEhlCaiWHlWmF01jDrRk5lAyXtkRVCThX1+Pzd3tjLe+XKgBTR9JZ6umrSFdiVQzP3C1CuHlucu7GRYFHRhxh6gyB6pA7Ey6RT4ZhWN6RWoe9WIONQ9+lKOd7gSsZfewNyUHjASFt3rx5QmhIuYjHmgSI0AsCYDZkDOVWlGI1EEtXlOdJLimzKOb7eK8yBKOL43osMzqlQlHrtJMjpdoD763+hNY1swA1+1ZHSKopGs5KRqihZNQrfnA8nPRqKuLy6efyTqZ+Lvbwj4mc0ZeQ39WIa+46EJd+9uZY6a3G3MyGWB+sxoaZeXrzNYykDgexeX4h7tq7J045bisXQs90Z+O+Aw/FtuO2xur6IEYxjrO2LMTCTCceOIQVCOjIr8aOEzfH8vow7j98OLrd6ZhtNWNtgPcdRLsFpGxIqBdz65xKHGFZZSeGg34cXe/HeWecEr9z8dOin8NLrhOruOAax/csD62Dm9MiR2lD/XQl6dazMFdeoAMGI6n1rYpBKKcqgGwxqqxVbFDJf6yMSyQUPZwassa+1bERqEC+SfFPdC6tXTBIflqf0UyrKlCkMmCc+Q++wee3+Ha/rPkrVVS1WWXFnBCfUizlIjWZmPyqnFT1PekN0hvjg7rRqL5I9dCEbHlzq90H+VL5kpCLRB7FZprSueIYfqIplYUmc+kajKvxYtMZfJnlftYeSjY8lToLRUPB/Lorro3dhw7HcfNzcWh1hdI0IFDCy6ytD2JudiZ27dsbmxc2xXpvNR67/Yy49f69sXnjlth/8EBsO+6kOLxyOLZu3BSnbmzEyuqIdcx9WAs9Mx9dbNMdTih3gxkLRBL4kT2HD0anPU1AAHCv6NoARbLQF9b/6899Ypz3sFPK1F8qXu470ovNEItjbZaAR+UQSt/BLpnoIRkLlWqmgo2sJP2vIN30wD+Rlrkh55NeahAHrfLs+Hp1FC29euatxxTvBRstdUUW8XkuS02UWEZ5wBU8QOOtrFOfh7JFV75ecc56Qsq73EVPd8zPKQSnGIOwPHoZXqI7fwbUyoRWhjyF6SScoQmpIaWja62Yb4+j3RwRDZORyKpVnxg6ThTEX6dN8YOq+M1LzZtT1QB6LRbFbu7h51QjOdXz1ys0x4iLm4e6n1VxiPdGQ/BTN94Xn/7e3SQoYkoQRTRqDqxxXlxbi4WZGdYOi6tLFAPAWVyYnaHHH2BOH1NrjF5o7o1jfroTy6uj6HRaMcT7odjHXpBWI46u96I71YwlvO7cXBxdW2Pqhs9wZHU5prstzonrGcmx4Jo3zrTjjS95OqknKHb3Lw3irv2rcfu+tXjsaRvicSdLE5gGUbrY1f1k/LcN8R6bUgNnmJIMSv2SWJrPLr27MogKpM0zlFHh2BRIz7yq2LMQr8PCGYn0VGrRpYY+laBYN4pEuUoRn4RzXV0dM5AGGlKsa15HRjELXQL5OnhMkdRN0gFLsTQf9OQ58Yz5lUFFSU/Lj03uhguk1SD6hfx+0o/orWhv4NJaMw6vtuNwvxmnLCBvH8WWDQNSXngNpYFToUqu9YlmCZHILqyLLl8cjcBQMbhiBQbWOLVGZg0gyNCyS64mYzbT8jZUEkQR+5f68RdX3hRLEFIAsDcYxXS3E+v99ei23MQbDePw8hEW57j7J8x1Y3p6PpbWBlJWBCjBdWtNaufCqLETZABImExYbEqC4UzH2mBI6Pip554Wuw9ImfHq2+6OLQvzTOn80Cwggc8CJE1crRedvzN+6qztjHjX71mJG/YsUh1l20I3nvfwjUJtXFP9P6be/FmS9LoOO1mVlZVZ+/b23rune4AZADODjYBIA6K4yqYpBWkrTClMhWxaDoap8J/gn/xXOBzhXxzhoGRaEbJoLbRMAhAJEoMZzILZenp/S733aq/KrZZ0nHOzXs8gBjPT3a8ql++7373nnnOuvXsLN9sClv++df809PFl512lyFXOnne8t6fyFyNy3qzdbqSrZCun5dtJ/vLs1jfktCUDSrcQim3G7W9ftQC2jN8vfMo2jdNbzkc7aE3l1kJWG7/MDa7AGQAXsxjDRQIn+6s/Utfvyskk3yAWknMI1+bqvsT68oxTh+nLlaTNYAtaCqPt4aGNEC2KSGJOiOWiACoBeylW2/zVsxriFdMDB/PUwetHEa4fJKBUW1+RN9tYZNO/9uoI1R3lViT5g/6ChsceIhuMOSqnzZAX2UawtFOBv7addW7ggNUmW1jSIqwhMFsron/x7jH++J3HmIeRFnGl7GtzWO2U4bC3g3iZ4oOnn6HbaOHezi6idQFVN8OAnrgbIlP2uTFJZxx6qRklVmdx6AtTrS0dZZ6k6rKXvSpeOWjhqNPEdx/cwP/0x/8edT/A4+PnmkxVKhXhlQLMooUeXq3s42u3b+Gf/PK3EPg+3j0J8fbziSDivaqHX3mlYWhafo+G5OS9iSvkZwuabHOkfJF+ERLdut3n3fSXEXxLNf9C6qXNsqW3vxRK5ZjUy/NmG5y3O/CLiXqOPlkm9PLE/0IWZg83T9VsY3wh9/vCcbHdIlaHFlS//fCzU8SrNZz1//nfm/fyFqi+2pL51WwHhnwRysgv3Db8VtCyzWOvkjBruonkmB+KW92ISGy5XW4GTEMXDycBPpmWVXxHKwf3mgm+/2CKsvW5XgqUtk9A1/Py5NC1bP/Ob0eJ1XZlW6fLELptekb0jAU/FYVsPmqD56mgwpYNFDIkbPtdDi5mKf7Hf/4+Pjq71LSjZL1G1XPhlwoYhNafuLV7gNPLPgK/gqrvY5dz+gCMwhCDeYR5HCKMI2nLKaI67DTx1o1d1DRgEprxNwljXM4WemFhvMI85kSqIkokRaKIV28e4i8+/BC9RhsXkxHm8cLmXNB13fW0QWsB+V0F/N4v/SLu3byGh5cxHl7MtfmCUhHX6kW0AxcxvYE57IebNe+EW9efn2UeW2Q3cNHc7VbQreYcry/2Fr7wbrapUZ68bNeqUtvLWaSuPxvPTCE7VR9hnOodE4gweUGemunzt6dL/s/8H1s/ZLvO3N8rR8dsL+T+W1dsYxu1xnul9IDfbSelrUdeW0JX+/UGbz87R8SUdf2//oGGSukDFTKtB2H9DmPC8sJXy21xbpCsIrCNk7OJDV/UR3xxcEnemd4+dEZzEiLPYxft8hLlAhBvCvi3/TpCImYsNHNA+qudFN/qzreH0TbbMzxJhdz22LXIYJ3Zl3mppVFWvJs5mj2MLYw4SzL8tL/G3aaDw7oNj/l8bL2KpuegUeZ9FvBilglZ4mgCjmH+33/8Gf7v9x5jGi/RrgSYpylutWqqO54MRri5z6KYxbaDRcRJtg3MwxmafhHzZIkXkyn2d6+j29qDX+T8vgpeO6zj771xkOtjXrp6LDcbfcY0jvHkfIg/e+8jfHp2icPOjhAsngp0hufG+uDxQ51kbBSKVewUlZbVa234BQe3772OjSgQRuXZ0lwIL3PjWb/KRj0z5WPqt0wT1AIP1bKrNXExW+A7t3bwtaN2bt9p9HU5TuY0oCuYdutllnPeeUKGyw3+9MPHVz7CGgi62aA/mmjDfv/BDey3G0Iht6ktT9iSxmrbQuUCpw5mEkWqEx4cdjGYJ9qEVa+UJzVEOB0MFonqvG7dx3C+xPl0gVFiY7u7ARuxdDBh+uvjxWCKUbRGreKJsMp5Lk7/f/7DjH9IfUIdAlvAzhY/m3RcVVcO9Hmxav6zlpoog8nVY2aok+eSVxuf/rX25/jFvHD+k4q+NHOw2BTw2czFjGxhdgRJdKTHUrbGr+6EOZ0gNxa+ws8tFbmqE7Z5sm5iS2neUkxycM8pyCT60Xgpc+UJN8jFGl9uFfBrt0qy+PnfPoq0gbOCi793x8WzxQafjDMcBkXEKOL5aI4Pfv5TTMKZFiCNEviZzVIRF/MpXM9HrVpHmCRYLpcouC5GkwnuH/bw6ckpfvkrX8LKv4YJBfAMLoxSBQfdWoCvXO/iO9cCUeCN2uNoMRipcStNLuK9Zyf4X/7Nn5Epp647n3ZQKolBfDq6UL5NMiMp9uy0E1ZmtO62d9Dbu/WyIZb3W1LRYrihtoiUNS/5fDkWrlQEunXOQ7QN0qkGeHO/iWsdnooZonSNk+kC57MIozCV9oWnFilAHD/3xu0D3O3Vjdq/cfDvP3yq97ulqEQcBZ3nrst1ils7Pdzt9dAskSVgjWNudG6Uiufhs9MhjqcLTMNIiN6d3SZORhEWyQq3ezUUSyUMpxyGukLRLes0rvtFkUbT1dp8AVBQvVchuJE5aAee1v8iZf23wYuLU5SyJZx/8d/9lxltafiHSbGmcVqvVsflIkKv0UK97CsaEUblDfH3/SLtQgtKE0h7WCTRFY2CzbKgVEY9qFhqlAGnixWSlYPZcoPPpxl+/aaHZJ0pz+Ymoy5Dhm0ZMFoXpAnnWz8bzfH9G74+gy9vlq71M9RIcFFMkrVcPRghdDymG6RZhsWaJ59jNAuHi6eIh6NE90DKxycjwqUpgrIvGshh1cV3jio4na/w9llshbtTwC9dr+Bng7UidMMrIM6K+NnPf4anpy+0aOjjToatXyggDhmZ5jjaOxKyRsO3yWyq62GEbLfa+Kff/45qkz955zmGUaqTTfMHOWzSK6Jbr6IXmDFz3SvgGzd7eNgfmz6/aMYSoq8UXZ1Q//Jv3sZZ/xheHv0J+X5++kwUd98LjC6jQUElvHr3NZwcP8aNm6/ALQUyfWAqyFqIAAMH4fCPTyPevw3dsX4sLZp4mnJ+SAGTaJFDyg7u9ppolEs4G4cYRakYzO1aRX9+FjKFTFEJyihx2lOxhEkY6juJ2JVJm8lPKoZajrem6zxHIjgooezV0CjF6NYrGMxj2bSyKUoNf7oCaPooqs1qiScvHptjPdfTeoVKUMFkEaJUKNjsxzVHJKRiTYfhQO6UtWoHHpnPnR1iktAkXRQkTOPp4qwW8Dg++ruvv5LxJXku5bIbWfkftBs4GUfC9L9ycIDf+eZ38d75AoNojXqljAM/wjuff4x3n71A4AcqVOWqJ/ODTJ3fr1y7joNmEzvNLs5iV5ujwkWTAt/c8/Hj45H0DtRBvLZbwWQNLQZqt7NiEbM4xiJaYrdqjZR2pYz+YoVqEdhvVnAyGuFkusa9XqDj/3iyxPmQC3KDkufr4XHCaaNSQqNUwufjSDfPF04R0WweolJngcqhNWvUXRfDeKUFTbg0ns/RqXN6EjeG1SCb9RIff/4JQqINADyOUJuPUdMpuEJWola8Abfg4vnFKZI1WU0F3Dy6g9fuvoYaC6osw3iRqFvO9IkLkQGIMKyveRxmel2vVrQJHp329Vx3u000K4FOrEWYIEx5MngYTIb463d/hMNuT6kTO/STxUyDKdlMXK8ShFGMVqMJ3/Ox2+5hb/caLmdztOsNnU48pbjd6xUfi0VogYMBaL7Im7FFGWbTpI76mm1iy8lOaZxiyXqC2Q9nkJc8JFFoC9Ll/TLwrTXFt385QsWv6B0wyLUbFZyOh6jXd2WwxxSWJwI3L9G5JSHyYR+L+TzfzBl8r4g4inVSV+stpZTcIDFH021W6DQqV9oRv9LCernEcHSmacJRONb4O8OWjGHuuWXcvHZbJ9R0mig4MHhqAi69eb/+2v2ME4sYpeW+7jrKyYpZAWFKt0NaZHZQcHoyUl4lFwiTOcZxhFRpgjVCvKKDql/GeEHNdQEeXekKDva69/RSGGHrtRrOB2Os1wkWSYr7ex08OutreGStUpPzXLJaIyRiQ4npKhVqwy3ChcBiiZGC3WmmFA5omryUa3qhwGmrRsyjazpHf9WqLRmr7e/uYMV53cUCxtMh1uslyh7TsyL8ckWFLG9CjuZqxqwNFMi5UBxEz+h5dvIULy7PVPxSFcg/MKcYisNAC0Xs9/iiZ3h+eaLUgo/mK/dexVcffAVhHNvYtYIr9SCjGnsnSWq6GdYAGiizyaTt4OYaLuYCARZJokZjr9HAahmjWU4wXwbYrbm40x3io9M1/vg/vI2j3o6eRX8yxCKK5WhIz14uyCRJEPhVtCtVvHLny4r4rFGZIm81OGVOisp9dZl28XqSVYp5PMP13QMslxvJp/0y10gBYZii7pcw5/AdonIUiq2BZqUsReV4xvcc4dZBFxyxMEtSFBwX1RLw4vwphrNzZQa7nV3MFwtUgxYCv42sQP6YGRGWsUaa8hqWSgPnaaxUo9FsKYAz6MyjBcIoQbJcoRkQ+TPWBDdrOB9hOrlAobBCqbhBSnOSrKgApQZrBvWdePIU3aayjKOdI1AyO5pO4Lxx/3YWpSxgrWBgCaC5CHT9KBYQJRtUgypqwQ5G00tskOiIpBadp4Xiu4ypjQfEKM3cz+CrDfY61xGtiigXPG0+ztdjejQL54iTSIMsOSuw3WoijWOs1zE2zgaBV4Ffbmr+3WwRKjqwk0yshQvKjldrpPEayJotlaw4Jba7nboUxgl838Ns2sdySQcQzrKz+oCDMXutHo4ObuZdaEOweIoyV+VMbdY4YbJGrezgyYtHatSxd7HT6mG6mCkijudTQa1s4B0PL7GIQm3ie0c38Ob911TMMqUslaviV0nzwTHEyxRPz/nyzMVdKBt1M5TYJgtUSoag8d5Y3LPAVkpGJeKa3RI6R9qkJt9z8Pjpx9hptJQ2nQ4u9IxctwA377DXKg3sd/YQJzHanR1UKz6icKKCOYoiSUGLbqAgczY4xSScIE1jPWe+16LjquO/2+0iSua4GJyhUqogXabodjrq7LP+CTzPNCfrjYb7VHwO3iE4w5rWhVMq4kX/CQaTCy1MvmNulGa1gaJbgVfuwuPiL1mQvbw8Q6Hkoew14BRoXWrex0zNeLIV2aDdbHA6CVF2zfCbtfN09gKbVQRXgMRaUgSmtaxpVpxyS/Io7Z90cjkoeQECL8BBu4fLWQKfqeurd25kfJBpanPcuEAYEflgDRmioW8JfqmG4Yz5sBl7bdm6pRIHtReliONLV3FNa3xCn2UfB51D3TQ/kxfI3LRaZid4jCQd69TR563590YO5jqCi0Xc3D+AU+5iuaTVfojJfIRqpYZmtaWijgs94IZzNrrZNaPeeiHNupzItRULikDnwwFmcWhU7xyeJoJCOHSntYfrB7cw4ukH9mrMzXAWs1exQT3w8OL82AwUCBMmIcolH+VygMlsgkW8wINrN9AfDTW24HI8UJ3w1oMvo1oO0Gu1Ea8yTGJG37Kg3zRNMB4z0i8MYeM2z4tkbiiiSBV21MWyZA1SVAS3oZZsKFqddjVrj/j9pI8X/RPcPryBz54/UVHLHJwLhpGfyNW9m/dwftlHLSB1PoLDQpTaewY7pyh6C98BfbsYXpnuEQhg4StjPDKsBfuulXKtVkxtaKFEZoCrBibfqTIRRmyyrDMHIeuT+i6Kbh31WgWPnn+MRTy3dSO00cRe7Ckd7d5WMd6sBjg/7wsQYR24095TSliv1qV85aKnKXq7XkGcrvF8tDANfzrFPJ1hvYxRlnEe3xkpOCLRCVThxmPQYrZDPQ6bziSR1vwqdho9Yz4Qcf7u6/cyapw5v5F9gItZIhIcd6bGcHEYo+uj4ARKH5g3cKELnpMCjqATdzNTFA67N0o2o05QovSzjsBvKGXhCeAThiyVMY0GOBuf52YD+RwLdo7lFs6H5SDwPXgqDuuYLyLh0Cyg6AHFBbjt3xQ9XxEuXS2QpCO9NGsAbrBZpRp6GaZrsYK5wLeqPVNkWHPzcHcPvfoOwqWDVsNTUb5MJpiEiZxWTqaxEKdktZQ/LhEjph90OtzrdHS/Z8NL1Q3Mv/cP9lGrVPUzrUoXaxQxj0eosvis1rCMpii7HILpmxZGRz0BiQxRkmA0iUDVIevCbdChicMhjebYJ1mlWsCs4xi10zjC6eQcnz57jm6jg3qtjuOLC30e0Rumd6wveILRKIPXMI+mSjdFduG7c/n++NzWuJyy0Wgb0WOuzvfNIpjTnNTH4hi2tXoGpNvzWbOOJc2G0ZhbnroYLkoNpuFmdsuoBF3x54bTMxXNytCJxBEMYHDV5zB95ntu6KRP0kQpqQJCoYBKEKBWbSqIsgfSqtVUi/AEoHHFycUJnp69EEpa84zlQKTWLGYtUAj4cUs61TTSjyx2Nmo3NPgo6d3VqjU4X33lptJt7n7eKP9iTspjnQ0wHklEJdYbF9PQIqjisoSD1lmV4S9THxWaTFD4kinw8eTd1Gn2cHp+rs9uNzksZoUoDbXReNIQiVDhx2OuYHAlTzO+TKIf3dYBr4LlMtbrSEe6nEJ4HJOmQWf4UoAlp8NuEsyjuY5fV+O/+BKBaMXfeznymfnqlovF+6WBA6fQtgVncg1t1N/wiwFm4QYRrzU1Ir6Jn4B5FKpuO9rdxfHluaJSFEd6cQ/u3BbUO1us0PBdbbRFspSJ9W7Ng8/FxHR05SCk0XOWodfooFpmBF8qOgeBrzycBEUuEIYkjn/ebJYYzgbi7xOJYc04nIU4nyUoYYPhaITbB6Sk9CW4ajfqWmiM5KylaCrOOR4MZvbsuYhdFEq+9UjWS6VhzNGVEspozxYn/8f6YJEyCFkjlQuOwZkb5Gq+CN9y7vJIhjF/j2nyQXcXk/kMc6Wq5N+ZApVBldJq/vyKUm0GDG4UBeR8JrtUlUTViqj5Lmp+WYBCUK6h4NKPlutzjSia4WI8gLNhWCIKyeCYk2uN739lF8t0S7pRa+6rHSH3/5zF4Ny/fSNLUjsRpF4T153Nk6IGPqoA1VhgsklLCBOTkhrDhFBgbvgl90WzymGXkkc62YdEalh3cBgLf6npV1AosfvMPJ8R2IwNpMvmS8qn/zBdItGP7imHnY5efLxcaLHEaWb8JykaTYMtodDVAJwMqzRBUSIleziEkXliEBIVaSCjn5SNMjaZKq8jw839jswSGCy4wEnbIJs2zQoYjsbo1BuYROxEu/BdTzAmdx472RSFpUmCawd0X/cw51izzRqNoCzajEZqbDIErmlSJvFSJyuvnUvsqHcD+we3sFgsMBido1Wr6rSlA/h4ONXJGJRdFNZrDGZ9bNbRlfKRwUmbflPA0/Mh6n4dtaCuOoIRmDJfbshECNySk3CUgvLZ69np2fhwCqwhbVYh0zvNfcn9bG3tMGBmGi2h2etbthEbbtssMU9tt/0w0mdMc7/WGuGGVkqdSxtIUTIhmDVXhTJlmRSVNCOMFahtaBIDEj+Dm5tZDn+OhTqb16w3Y9KG1mskCXU3DLjGgDY6kQnT7HvprcwLZiZi9Tc3P8EEXgMzFB4Szs2jQw3xZDrFtIQXT2oBGds8PtVZpc7ALSAIStDJm+9GnghycidJkReQi5l8lxRtG44ozYYQqQ0qxQL2ah7C1RLni7UYrVLn5cQ8XWQ+bJ4XF7jcUGz/c56fEf74MqPct0vKQ50kNidQtYWaBvz+VFNPuem5QTVGTMm8zafQtOPcoV1UBQINTgG7raqK/DhORVxlikPwm2Z6bsGTrQ6N2vg9+92eiISfHT8VvMqCk4uh22oqLWFw4GlT9szlUS3UFXRiUNfBnN8QMFfw8O39I1wuFmL/NqoBNkTj2PPQg2bRuxL0/WD/YPtcBgAAIABJREFUGp6ePUcYjpGsKbzi+l4rZx5HNJojGTTBrcMb6tOMF1NtXkZwLvZsleg0Z2gharjtgHOxl3SK8N1TpZIrnnMhj20Gq5c0PFPG30ZR4Xvkd3BRM/Xazkzk/W8RQqlKcyaDNHs5TVjP/6WLk+pfbiBlMhSXETBZ2+AlzZgp0MjcBbXiTIvY7yLSVxbRs4CYtZrkzox79rO8agsE1kPj+yc4lWpjm2TO1N0WMAnVa5Lvwf5hZu4YtvP4QhhNLU83TyZevdIdl0o4m1Vt7EiePECjWtKDX8SMKxl8OW/YA6CPLNMX+kcxyvFZs6G35oDKhAtldeXuQXiON8wL5G10ayXM40QLk9GFf7PgZLbAG7TcnEexIW56EDkbNVkuxbFiscUTkvY4kr/mToZs5LGgZE+BvRh+b9krouqpZLOXcrUAuABJFKTMdSV4kQvgoLsjnP354NQMFTgTpVxEr1nXyAaj7ue6OXbFObpMVJt8OmvBRafaxE69qcKVGpBNYYVGlWZvXCCWruqepLYsoD8M8drBDczCBV5cHmMwm6lTXAlKqJSoWDQF5mQ6lw+wcnd+ik7ptTa4GKxKmawuNHUjMwC+K4O6ubmtXsvHBuSEQdtMObUnVzIaPWlrHfpyvLcxd3Nk0CWMbUHKUvKc82YcJJ3avEfqTswQY62TtuKVtJbYrTdtkKX3PN1Y0POT+M74eQIRCkVlOaqrWKPxmeQnELMHpk8MfDEZ5Rz0Q6WmYm9BjUHeHAOl7d0Mzm5vL2M0sFaYNWq2Rxx3HReroE+zS9cRzAYR6Rxlt4AOL66w1iZhNOEJHvHBAmrjc++y1jDaCvV0OaIAel5liERkzR8cCzx1fmnRWbSGHT1Itb/NPIKb1GxUeHzyRLEXw4egppsM7Zhb85vYqeaYMOb4pl4gl0p5L/ll+YBKppKqvdh55YYWqmPcLZ00gvOI1vmikE/jEIHno1VrYh7NMA15rNJeNEKbm8MtYDpfaDOyiOfdsXilnNZWawFBraaFfNTuqqHan02xLi5NACbhmUVogxK3av4izkYT3OjQsrSI5/1jROlcfR/fb2EwGUi2y1XE2o0/x1PH6kZ7TtsAwVyfJ5d4dVpA+UKWQUKu0WZtkQcULlgNyLQbMEpQvimuPHe3hNYvnAbcbHFKQME4cDp5cltagUp6urZebLa7I6YQ3SW7FWYLuRnehp/DE4hBzlFDlwibvTegxtkoOSs5ZAqe93fqPlMrKyE4Y4YgC3+PfTbWb2G8QRgZCbPhl7Fb9bBYrhEl7Ek5cI72DtVJ1+ZgsyonqZlnrrkK6mQhFMyRWkSC2HF3HAQeKQ9LlEsFNOlkXsiQJBvl5rwBmzO4UTQyixaKhtixZzRntGDjh6gVo4FNqxIaUmSTr6QFT/gxJdOUKj4hasZLYr3C5iQh3TBaqrnE/CV/tVdzPzS7MF/lfEise/izRGysJ2GRXYMp2aQru1eGbsxjeZLwwXNjuEVPEZnRZbfV08+fDS4Rr/L54psN6rVAvz4PFzkpkmY+xojliUAUr+LXsNvdEeb+YniBwWyAZtOQGAtIViPxGVtWQPGUQhpO+5e4fXiEdtDAdDHHZ88/Uc/l5sEtPD5+pgYjTwKuOPWCtMGYnlkqZc4qdgQoGpulhI2PY2Bj3p37K6uUJdzJ3gxrzXyIJ6+PgYZ/6V3mbgqWbJjSw/J4szni+5PvOFtU2qx8j1uxmIMC/byY2pfZ/ecpSLTSNiPTMgayVWobdFs/pEqdzERcwJzSMUPYEtYcMj/M0KlZess6midLzDnveqRM/Y2PRcfQJAV26gGCAsELUpdIhynCOdzbzxhlt+IkPSA9kPwo4cWK60Pui6eFLKeNDSkRllLVyqROG/I1joxewV0tY2bl+fSCYvpUFCtTD6lAIt5KdY96GIThYPY4/O+gXAbTJDbCxLjk0SZki1GYNGlHBDRCeey82/AaR+zgoMSaxBSLnP0xTxghDFzgwuFcDUZJGiKY9sbGIPPzPa+kk4t/id7NBp1M7IgWeTbmTMN8PFQ86sJjRMtYcPZgQu24Z0Q9+mMVi+g0Gnh23tfL69ZbEjdRH8JR0M9HFxgsxmjWAzXTTLVpo4wZ4RQKuIFXrMEMoTk9m+L6Xg97lZ4gyY+Pn6jG+PKNu7iYTnA+GQkCNmZzhlUeZQ1UMbRJU2tzc2ydNBmLe9ZlpIGzqVdAIuRoAz9gg5cLz+x3eB18t6T3c90QiCDYYS0G8xqosmgWeGKbS7wurh+PJ3uGwSTSJuLnEoWkSR5PXdUe+h5LQQ10ealV0npi/yKy2pLFNT+DS4PPhjUz77NUNnq++lnOEmFCpI4bkhmF3Yfky0S5HHolBzrdAyFqdi9aj/z3nd5uti1eLNoYrZe/KXQhzxkF4foc8UX+CkOBo9SCRSohS7p1cJPZlCYHq2SpzWE5b05j8Tjb1VKel9oDLl7zhNExKIoKX2JRzUudYoSA8klQXKyaEstGFMmVonq7oqfvVig7NWaozNFy42RSSi6TNcKt5y4pHRIBmFLNUkije/B0VHp1JdJxkBC5I3PXr4rLw5potSFDNNBGH86meOvuK3jU70urMZ7PkKwTHDTb4kidjYd6VuxiN/gzyzVOojFm0RyddlVTbgslNgKXKhI5CZd/kyK/ylj4M50paObfk+MLHO224SwD1EoeBvMhFnGIVw45qcrByaAvCDVasvdD4qEZL1kxbZuPi9YrB/iFr3xdjow/+eCvrZMuEMRqR/LbbNSjmU8b29sctiqe9Su4iJidblMdg+pNSszTkJ9Tk7fXGoFNdVWfjaxbPmd+Wo00DzU8WdeRImSb1/x4iVQyQBs5U6eTggjX10YBmoGU11IqU+5sAdanVVRuPkjSIuF1Bm8hZQRdcjnFNqgSVOrlJEsz/2BQ5udv4PQ6u+qDGMxqx6sabLnIe6sD4+aqVn1FAC5YFkAyNGOqxM3EeiVfyIzEvCBGJcv9zY7fBCqmlmLHmZtQZstrYB4yKmQqNkkJMtiVi5XevxZFiGbxQdWqbFzaNfP7SWDc8wkEE+vf0vPZjbZ8lWnhRWQTaLcMAMsyCkKrdNTyOFUKkqNcXxxtrNOGDUJfKehue1eNs9E8Qrvm4FF/rLSl02jLh2qeREiSFHutLiIyAzhYx/dQkaFDCdM0UtTnaRUErugTW0koUZu9+iEKmwLm6RDTdCKuGtcHofPRZI5GrYbipoT+8FL0FnLJeOIQSB1Px+JwGQrFpiU9ga0YZ2p51Othr7uP29duI1lbj4Mo29nZMwwnQzzsP5PdbNMv6PvOp7ZBDU6351Og0yAjuIREXLSWdZAPpfENRJkkBwWqSqWouOT4hjXma2ARMvOwDU90lGuJpxeDENG/Wx02P4GzxRLjKINXobcxv0/W/8ZbW0J9KdV3DLwFrqEEzUoRnkP2+EbiL9bLhpZZYBBYwX6H6ldXEDjXZbsaoMzNnNNReDpyAzr7vX2du1yMfk5sY0Qw76gtLGfpEpEf20gWwRWNtotqi6dzQeZFNzcFi2U7fo0tLHybEJ02h120Hf1WoFV9a1gyveKvckOy9mGqpetSz8PyW6V+joO272DHt6OaNU284glikKBeE3UMCxl76uhmZ1XHuApIpnFmlKBGWG5ZtJ2MpCCqI9nqLj7qW/uHqJSreHY+xN094N3HI+XZe91dsW3nZMo2u3l3f2mFPjluqkV8zeMWB00QMGUGBoUSESPnyMK1YUDbhTleLPQS2f+ZzuZG0ItjUUMaQUUbcTC9xDzhr3N0Qln1FBuOROv6gwvstNoSc4UxO+rUehgsS3Yyr4f1y4vxmWgj3aaLcLHGIiFqZM/sJbpPMZXh6kSE+Pl8hynZ0HlzkFQRIWLUqhQJ2FDWsMHlIhXSxPRLJ0/egeeznUUpbrbLOGgauHIeZhiluQQ6N0HnPdEwwyxhecKwS26nPr+r6uWcqww6qbiGGbi5vonQMuU0BoghpWpSUlDFUzxvjnOT8/3z5HOuHVzP5DbCoyvfYfxhRsztXAcuEh5zjEAUw2iD5PagQhG0EcwaU/MghIisFEVUcCracLSb7WQ2u1S6XumSc4jxyqrEECt+lmkGNlgmBusZ/cWgRiEyToZXOlWL/NlKfzZcMv80Lg3/PGW8Z5M8Vck3iRWkBTUwhbAVObaATSMLALxPnoxWT2zguDkpUjj/RozP+mKGa7faeHhuaB8ZxErrVpk4Y8PFVBvQr7h49Y0m+p9nKG1cbYrttfNE5UlLCU/4xpdR+uG7qGiuyNavyzbocDxTY4yjFdjltq64KQZ5PXwfz8/7iNZLNdMKtCiljqPVVSCbzmei9y8WE3l2cbZIzWcTlJsgUq3BxaZhpVmKXt0FnetR4OIyeHUerrCgkQEbcEUDW2zkhKXVAltkxWQkQzVA8znprSrrqgLCjS8GdNkvqx5gisyAWvEqWFPeS3FWhfSVFUYxG7xW/zBgcGNUvTICj7QiC5aMJQwC3HTVMvufFLxZYb8FO7h29d/q+G9rM8t6OHiI9KVauZzD+ywBuIm4dwpwup39jHDX1laFL0Ntf4eRjcUsv8z6BCxI+RAsJ+TRZemT5oQU7TOIHHilAoIStRhEiizr4SmwXPuYhexuk0lr3XppSBiddPG5ZU2Ob4rWkbN2uat1guTQItMMFa6rBN1qWbkladQkoI3jJVoVT4t6vSRrdoWpnOtzPoFTQL1SVy11//arKBY9dZp5TvN+1DlORgjcc1D9fT5eYxCu0J8zXcqk1djrXMNoeKl0gy/kvltA6/7X1KBMshSPnzwm5CBWsMaLSP66NLiXQ2142s1nqFZrUvyxXkiCAqL+UEUnC3wK0g529hUozi+H6HbaWjhMLd588GWbGzK8wPuPPsbrd15BNJ/jcjHFfrODDvq41aKuwZVS8ucDF5+OCPxHQo24QPm0KVRSYHQSmWgQ5uYJTmRnFnEib47iEV2DB9driXC6BRNiEkA3dHfMXS2uTBKMU8cTUG9VsokdBZ4omqDul60p7ZWxWGbqQTCr4Joi2GBLwCZtCeF3rN9Bej1BsUW6FsxPPVKpGGC0mKDgxHCyVDWHbVxTxyZRqnRWCKRQ6nw+SD7yW9ZKJRdefq3EaOREw9VwtHs9E5EwzylT8mA0Ns2KGnYsaxU/j6oU30SKIDz+qdVYLZl+MXKSjx/joNvFejVQLsejnp9N4RJRKKrI1IRau2rSDOahnAa50MtuIFt/FWMiyRXRbHQ0DzxJ+EJsI/JU2m134PmUUqZyHCxm/MwMbtlXbRCmiTDu/uhcN50uI1T8BtKEijYSMz0c3XwVpy/el5thGBGZqeqzhLaRv7O4RKtEMt8aw6iEJAtQCnro1drYCy7hVA5wPGMUnYvH4gdlHHZ3dU18oZ89e6rNzVqMG4/3rpOU+TkSJo9YuR10uvuia3NrzudTTMYXZFfY+J9cblNwNrgYDVVDNeoNTdLdabb0jChWmi0WmEQp6uUSLidDo4wsnqBajoUaLuIUjcZ19BcZBsO+TpRSEBh7ehWjVQ+w3lDavES9Qu8tQrOQ6yM7zduilmTKst/APDVhNtdHveQiXcbo+WwFlDCOHQQutecEMWjrxJ8nydGgfrM63eB2tY7LdKJn4xYCSYSjeIZwGSFMDfE093vzP2BGR/Gck62QbnzMkiUqJU45Zj/MZqrwf1OmnswK2BMrERIim5vDiaxPp4yHtbPY52Q6MNWympnppkoGZjvkb/F9vfH6L2bZ0vJXRmj1HGyKgnYxO9ckIIomkLMUrx/eV2eZPQX+3nwWY6/ro7jp68h+fH6K6YJUDSsOGUEp/OfiJc26Wqriy/d2MI9WePtZFW6pi2X0Al5pg2bjOlzEuBxf4t7Nm9ivp3jnZ89wzsJ3mchzig+DiIceolu2hpVmYpiNClMIfme7VpXtTRxTJsrRBJamea6PZmsPZ/1H1usVOkJ6gakiCQcynbQZH+wqLxHITrSAasnFQXWBSqWNpLiXj//NcDke4vj8RD2ga/tHhghtpaaLuVIjFkE8HRo+HUcyvPfRT+FWajg8uocwWsAtbBAkI1zf2cMMAcZxqPSKlHpyhI729jHLCojZwBydWS1RcHD94Boen57ilWs38fjkBOPpSKgR0S3eOK+DBSm1MGIqlIqYUqVXJGuWPQ0W8olOQ2YAs5geXFajsN8g5nQuKOs1d7HJSlI/UmoceKzNUom4mO7yNEg3ZUwTBsxEyJ8twQDpqohkmWE46eOGV0Y/nWGjdK0Ch7KFdYgk5T1TQx+otmEaxBPTLbKwD5V9sH5hP4wboUIzjSJ7WSvVZ9FyqdYBuXLGrLYmadlzrenMWoVdfRt3ptSULQGuD1JVNDIvM/6WSJi/8Uv/INskESbRGV4MSBW3OXeMo8zbxB5lc62Q4XuvfRefPHmEx6N+Dv8xqido10toVbnTl7icxggJweUUaK5U7mZ1LtmD8F1U3SL2OjXpBp6Pq0Ia0nQBt7SGX+1is7Q8n8V8kljDjVWuRFNqdHHDrlH2fSQL08PzpOJ3mKOGaUMoM+VCIPuXhVqlWcKEmoGir/vkBuev15seVpFFKoMOAz3UBVOJnLlcDgIR4Bgtt55OtaAqOatgWCcTRZp6fPZqKkFVi5HAB9E30jlKjocaDQEmYziuzUvn30y5IqrtLBdTb6fIZ14OJJ3tX5xgt9VGt9XVvVCrQenYw2fPlMIy/aRYjMFtubIgwkjMyCoRGUVMlA04fKaetOMUrFEyzJgXlEnMHJkmwwUmixTMJNhw4++rpqFEtkbB1TWsUtpXpNhvUDVpQI5bWOvUuAy5ACsYTUNlBI1qWV1xqUyLdaw3NXx+cowHByUsnQ0mUjEwe8iwTBYollYIvAZOLkMpKEfhQtdVo2lGPBUb2mBrtgcyBJ5lKKIcBTaXZUZkgYIo9tA4RZgNRsGADg4bXUHH56OBJB6sl7jZCfiIZCQTdp6GBRRYd967+eWMIvZbhw3E0QxnIwpguLusqVL1rTNKhgcKAVhpDKa8K2C/TeE/2Y9WR5BWPEuIKpCDTy5U7tCXe2AZ1EttgckyaVTAX+uPlphE9nJqtRLWyxom0yke3LqJRqVpMlTfz+W9RgAsFDco11jcFDGf28AeRpw0oRmCIV5e2cVovpB5AoEBQqrLlM3AOqIowSKeocJxZY2KpvvSGICLj3QNppU0CeCpQkSNRTcNqlljUNutWR1LYyNzFEE18OF7VZT9QI1AFo7Me3m8M1hw8x1WPTy8GBIRsEasY/2CSRwJmdM4FDqzu4SQeW01IWHHZy9w9+iaNB5cLPw9vvBPnz6E5xXMvI4pJkmhJEyKR2cdbs8rqxDWME9Jql2Jkfh7bBKKPeAD/eFTFb6EhzU1OKMpx7aXxd6Xg9sHN9Gt7emUqRQjOKs+RtEcCY3FqemmEYVDyLWEKRvGDudWMl3iqe3BL1VQKe9jOHuBVpUWPDTSoIEEdR8pQlojNR3s793BX7/7EHutBsaLue6tqsVPeYHxrxjF240yhuPQnh1P7JLxuSw9ouqQKTu76vnM9izDL371G7rHjz7/UEGVwjVC0M0Km8AZrh918PRsjEYt3yC7nd2sUythv25cxstFgusdH5+dU2dcwH6N8lube8GHS3j30QVfPgsbYLqIco6ONZhcRi8ed6QYiIdvrXtNS8ogeooYmZ5BpiWH2LOL0SIVe5MrhHBkmkxRqzUQeB0dy/VK84qGwOLeKRCxSpSuRfEKtXpH7NcopkJPZZSQsoEWfCqRk8Gp3KRlLYZFNEcQVLRJ6IPLITRhNMdiPoHvVxTVeFpR905VIBt7rDE6jaZOV5IgGWkIs3Jh7JG8yKASVJTeUH9NnJ3p2o5bwsPzPlCm24ilPeq9IMNb9+/rvn/22UNpyd11gnDNyM7c3MUnTz/G9976ju6DJ+hwPNRGvZiOZBvJmot8J1JhyDWiapH3KgSP8w+XNLMjV4mIoMlnmXM3/Io15QprXE6eS8YqeorcaAqCXbdN1AqbsbUWUnpKlVzs1irwi1OMw6kM1ryCixmFaUumadZl50JkxG8EZCRvdIKiQFtWPhsz42CULxQCJKkDFfxEP0sBklXxC0TFKB85t9JQWVNcGigQlE2vxLVVDny4ToTpghp10wzx5FNTkul4sYh/9g/+IZ73h/jBT36AdM2+zRJln30QPzcHpJkG0zhgPl/B+cadmxnhUeas5J7Y1BmOVeOHujJuIN2C8kb6HLVrgS0kwoPcoUQEViZMMnp7rudm51tuGXYCEUJVx1P8J/N/5TNiQVmttjEYDvVQWSjVq8x/E7jSqzMt20FCinvONuXVE4KVlpv4fbpEr7OPdEmB0gxdunV4nhanFa0U7JDnQz4VYVZfGPdgNJSpAc0G5vOFJkQxonPRUPhEZR9/Lo4T7PX2sFjMdB82547oCk8Aaj3Y3CzLMCEMzQpJUlI5ZGxQQxFhNENYNMWgIGGhQkDVD/B0tIAfVNEoLrFJE6TxDCl5W4I0Pbz90dv4lW/9knJmsnhDpkduEf351KZQrekZtZTDCOsSyYH9skiM/D1GyS3lxyg0PIU9nVgG1y8RpmNMZqGxpIkusntOoid5TAxoHD7q+yiVAvjFhoioq9UYq00E2qKalzAwT2mxY9QgpsjEKCxYWU+f74XPU9xXmcYBZb+EarkLJ6R4LMWqkOHWtfvyQiB88bz/JLcEAop+SeOxyfKm1FsyhWIJ4/kcLfqRLU7x4uyx6lSTC7P+MnvONx88wNdefxOTRYy33/8pLi+PtY74MbWKq3fGe+duUx+OseLvf+/XMsog+2cfypRBF63T31i1PJ3IbOTQShYy0vFK/MKXRRMEk8GqGbOmYIjzLmyX8y+JdJapibB4ktiUTuPiFIroNBvoVKooF+uYJRuMFudavKR0cBMx1WlUd1CrdpGQo0wfrVwnMYsjoUNGgy+rFmC+TZ4UFxcbaaRrMN1gWiQRTLGktIOLdzQd6QEyAo/GY9EWyEUqlvizc6NS+wHWywit1o4WW61qJmwz0UmAa729fNIs83ySGTkTxOQC7CuUGAjSCBdLk75SYqvhP4GH0WSG6/uH+JfvPUOvHuCVdgkeVpjPplgVXbDGIW3j3U/ex9/5xnd0QtMthU1CLvr+8EKbZmtaQD7RYpWgUvIFf7KOI5Oam0YSaXLe1maPw00tdWBmp/w0mWI6m1nPp8DUyJOjI08UwrFsLDI1q/oVtOp7CJyZNiV7KKuMXsAjo+ls2FQk5YM1S12a/2k4R0aBUd4PY4Dk6Vxiqsf00wFuH9zDMp4BxbrS5Fq9hRtHr2jdhOHEJiTnhEkGBSoaqdk/7p+h3mrgk0cPBRasVpSFGwuDRXmlXMNmRdfFDd66eQ/zhKmTi+F0jJPBMdqtEgKfKCxTUkeHgbhjebvDeePezaxZ30M4uxDuzt9glG9Wq/KCjeO5TaCVKs+koWT9chFQ6y2hPgl+MucizmxsTEJqZK9yQxgCYozSLZuUm4XEPsZR0uaZTmwyH2fDvqBLK47JS/JE8CMlgdfW6dxByaX3EXUlMepBFaPZBLPpBB55Tqul7IWYQpGTxAtnL0CqwdzryHixjkwD/HKgFIqnS6/dVjd8OySGCFyURji/ODU7IKxQrTfx9OS5mLjddgd7za5JZNMIvXYHk/nc6DhsTsUJlq6LeRyDd+r79O+1E2owNkO4vXYXf/zTz3CzU8crvQoq2RJnkzFcL5AEmBvt8bPP8Y3X3rDnx/oqTS1VosWo6yld4X8T7n304gmazZaQOC5I6a7Zoc+fP/9d6BzpHSLkbZBs+O5mGE5GZrixssJWkgB59ZK5QFQwgOvSvaUHZzOA767AIaZhys3EAprGcrQpIurk4lp3F91KCaOYPTDWhittCM9j7yJT0LsYnxojQPasU0HtpOj06rdkz8OmIN9N7qIrQwl+9vngEkf7ZuLQq1ZxOqApxxiPz2goPldgvHN0E36piuFkgN1aHffvv4V3Pn+Me9duYzab452Pf4R6lSDLS0+3OEpNXJcDE84rRzvUEWqhM6WwWiGTkwd9crnIjJZkv67GjYbd0w7G+FfkKPGkOL28FJyoSbBScBEVMFmmuDYA6qQ/LI3oxjSBm5H5pHoxa5oiECBg4VhWCkb6iHL2gv35erWNcvlQOf86TdGoVfRS6W8r+onrYkbkak1tmXXj7QFQWWi4ONNBbr7pbIJWo5VP7yUETTOAiuk/aOSc0OWEQ20WIPmHBSJTONJYaChAOPH67q5My5iHcGHJX0wuMUu46xgfnl+gETTQWadY1lqoVxuoNpoYXpzK1YTy3SlfYFCAU9vHUdXHebLSxmXhL6nxYo7d/Ws240SBiGhaimazY3McKY9ephjNpnj47BFazTZKRRblxjZQLyanzGhSsTl05/WIpzEXYTLFJ08/UQ3H1ESE0ALrjobeZRhOcbh7iDvXHmC1TDCdPMFkMUS9to9iqa5AejE8Q6FYRr3WUj20097FKmUz1CZvbeiGyJOcykxng/GYHLYIRS/A+59/KJCEmQC5YTd3XlUatb9zoO+/HNJSlSpAWvv4mM15PUfyJiZ6OZxFqHhFPD19F2OaUzBALVdoVdq4d3Qb3/rqt/GDd97Hzk4Xu70efvLuD+C6tCedCRBiI1PmDrlEgMAQ60vnG6/czAbTuR4gCya6IrZ6+5gNTkT44t+8Qe44UrSZTondKDl8EdPZWOYC1XIFM1IrmE4Rc1+uzf2D+a/1L/XCFMilDDMnCdGXVYTXlOoQghTZMRfoS10ougejfBE1r4wHd38Bg+kCVc/Dwc6OIjFRN9LeDzsHOLs8hkNvWtJncj4YNSYS1Mj9rygjteFshKPeAYZU33klOYRsSMTL6QhcdDwRuTFGw4FSuW63a3MEJeelkyLRrlTQIX+ONQyDx146we6tB3j++DlKzz9A7do9fDiJ4O/fQzKbQ+vqAAAgAElEQVSd4O71Lhbnpzj96EPc/5W/i/T0U4TzAfpoIMyKIiGyj3CvXMQvrgb4t+37KOTuMTxBWCPVmk3h9qKUrzP0B2fy3/3xz942Ah8btDrFuUFso1wpCkWloqwgwCaMRH+Jihs8fPIRwjDW+9jt7ePe0StKR6bhAN1GDxWCJUUXxyfvoNHYRaFIW6E6xvMRkjgW2lj1qwoUzDZ4sizmU0TJQicH0xeeonudFk4uLuCSau6V8fTsM0wmU/RaOwiTGY5278ErV7UWuIGZpvO06A/JmOZU3xDdVg/tWtsM4pIUB/sH+Pjhj3F2cYJmrY07hzfxrde/iW53H3/247fx6aMP8Lv/6d/Hch3j3/35v0ayukS1UoHn1nB68RxLeY0xkOcadTIq7h3sZNQbCCvemAqwVa3BD2hHY8S5wKuh3OiCtODnJ09R8QO0mh04pRI+e/Qx+udnEgKxD0JpLVMOERCzgnLwZqmAMSsTKeWsMcf6Rjg8O91bEQtPJ5oysECXHsAagDbchp17arc7OOpdR6qBOCboWfH4JgnS89FutnWNrdYuZrNhzgZgIW3+WKJKkwy5SrB0MvlqCX1T08sX1k83FzMPMDHXcHQhI7vDnX11zPld0zhClhAc6OJyMrHBmo26JLwSYSVzlDZztsdwfHKGB6+9Be/pXyNzejgZX6J6/xuYz89lLZRmVSR0XS+QMGcGcqTSTGZjdKt1LBZzHB4cXHWCuXFZi7DeUX+I6CC1J6dPMbt2Bz/6+dumzcj1H62KuUcSlSK1hP0fpjxspolik0sa+CzTdYxwsbBuuxeIkiNJOhNMwr864GnptMLKqQgpMzn0Ss3OStnSXzWbN+zIp6hUqlhvSPeo4Dtf/2WZYSTRDOPJWL0GzlQcz/vqT+00a3j/4XsII2YLNX0GJyD/ZjnFv4qKMhVnjytL6YnmoUmCaLWNTcHBwe4hRmefwXMiVGodvPnat0X3+eizT/HkxVO0O118881vKW3sXw7x7nt/CddbYmenh/7gGPP5UKlVFGmss6yFnFt7vUw9A48plckXCT4+uHlHpsHcKCdnE7Q6u8jWIwT1PUTTc0XJ88E5ms0dVIMGhoMTRMsI3e41nJ0/Mx3wGmg4Rdwol/HhcqEUiUWhWQnRIqgiCS/N0wrZChWeSGtGi0iNm6vjTvmgSXwblSp2m130dm7h9OJC3By/UsOLszMVwHxR7EFsbfUrlYpSQEKffHPcVCzOyYNqN5u4tnOAeRypqTiaTgUEcBG1ahVpW4ihPzt9ji/dvY/dVseMF1j8qpAjgGFTZrmgmUtLCyMrI5II7eQ8PT+TrDZyMjQQ4XJJVIU0bZIWDTHi/5F5oBHQiuwejs9P8eDmLfHi+MLo5EhPMLIB4jgWJ4o5OdNXOjzy2xq1Op68eKJ6kvfbZPpLEmbBzWswPt9EJ+gkS7HrVbFJeMpvsCEETXZvHIkBwcKVKRbNL7Y+aEw7JQSrczIV67hILGC6ufBaZB+U13rMONZModUTMQ3JtYObunYW6Ed711D0u/q1h09+hiePP5Cx9DwaYZmygcqAQWmFg3WS4JXb1zFLEjw77qNSbeBo//oVV48pIAPCfDHGftN4hHxH8q1LZigUa8pe0kINq/ASjldHGk+xKawRr4fmecZajan7yjrvvt+Ac723k4lQJmUXXb59tFsdXDt4Fb32Lpxshl6ZZsgO/uTPfyLY8TKkDSYLpzU2BTbwNkjDkY7BgkdKRoQVfZUyOyUCv4ZFOMotd6xjTYFMlrkICsCC0YVmy+xYrRz0Oh1JVvnnQv4zl4yypCHER69gAgijyUh5KdMBpn1yU7QQZ8YE6st46nXQSsc0UqYcZBThfdcqbL5x4hO1KEwNMoznY9VSGj5TtBqr02jlm0yZYs4iDdUvqQR0iV+b5twx+xkujpS2p0GAR8/HuNHxME5TDdNhGlmr8ZlEQs5Y55XLZYSLSLAyr40o0OlooDmEXKTs4NOHi/dIAIJo3IvzM9UM7IGwZiNgwROI9UvNTdEuN/D4+QmKUYRJ1bXFQuoIhWHU+yexsgEeC4LdSasRR2mFN197Hf/xnZ/KHZMMHmrs+b2s02h+wHSNaOaWiMgFpkM3b0YSobRTh+Zx7J8RLEiUvvCe33zjDTw9pwG3L0vW2WSAZ0/ezk9zs74VMioUjeYaC3QadSSrSMX+6eUAFc+3dJeoXJFMAdZiIZr1OiZUd5YoduNpYL4H1ORcTsZSgnKjNap1bAqREDYSNG3Uok0eU6HOU/ja/t2MuS3d6ejt1Grt4a27PfyjX+ngz989xg/ePkXTr+KTgfkMsbFis71toXCnGnxrD0T/vp0xwubiJhOBrEg25XSCDW+atPlkiWazizKZV04B1XUCp0yL/Klkqux0i+dPzpWc98yenguJ9QQXOtMM2vyzUGP0JqwoGjup6/KNZJpAyj2bVizaTQJMwiX7PdzQraoVoTY+IVUaxkhHoZelH8BOu6vvYDOMqVTgGVWbkblcYg2Qi8NymSqpfIzqRvMv4nw01Mtgo49/mWUOe02maTDdhNV2ZqpgVG3aC7GXQxEWT13Cu5xtof4K4XRRvg2JUom3XmIUzdCud9AqOug/O0ZhlWDleti994rsQ9VU06SvNQZEpjjDI6fjMI3lwuApy44837c8qOgDkAecikcD7pwyzv6X2T3kdanlVpL05nMA+Yzpz8U6UkpUgh5pjLPhUAhnq9HV/JTVOkav1VVQZO3abdTtOecGf2EaKaN40v8Iyw37XbEGE+3VezifX1L2hW61peD46u3rSKM5zi7O8Hn/ROxeIplM7QQbx7G5+GR8t2UUPKbElBsHshLiM49jNiVLcL7+5e9m4WKG6FoNs58/RbfewVfvdfCPvneAf/PTE5yMqFwbYbywriQfCRcbYV0dm9L+Ul6Z09gZWXJdsVwhWPyTdUsxFo/noApaK8wmU0UG1hr0qq2wiUiNgFCgkpqWRKSs0LQC04pR7nSrDRjtSDzjIlM3PaCTuTldyPWJC1E6lLWijxp6xRLiKMTxoI/dbg83dvdtaKWTaeQZm0iESymR7TU7oiEw6osCL9cXfiadw40WbmbWRtswa1SCFxR5WQebKUiz7JtGgVGM4IHMwY1doM/KAQRJMXIXFbtu6jZsHAEbk3zWJGly0ajbncuPWYjzMwjDP3z+OV65cVvXZDPi7dRkE1Nsf96DEMkNzkob+FRyhnSrpMVq7g6TW/5wvoYNY7XAp96AelysJ82GSOighHM5EJtPk+IPcbMvlgm8QtmivGQU9ucSuVzmI6W5eRj46DQpBI/ZhRkrKGDkSgVe47Ozx0qj2d+hNiRbbhSA3TKhY1c+yWy1tatcC8CSTHDP1IsEDYhs0XaKYMw6W6FWKyCK1tjrXccyZZ06lCUrKdViRX/vzb/NhAP9RYJnTx+iUanj4GAfv/93jvCj9/q4jA+xqn8brfAv0aySIlIWIW4eUvO8BH1xL0ZjpRnsSgviJWuV6FQSImDKwE53u52Lrcy1w5Qf9vKs0NtoMZHOUa001IUlJ0oEYmkCyNWidQ67y4QCvZwObk2dcrmG1TqyozkvPremEczVzbKTghoWqBlOLy8U4fe6XQxnM8wTEu/Mg0pGCXGMZq2uRqIcOuSbVTJxD6W3DAKixpskQC9d9qYEKUh5t278xXAg2HU6GWnyFGsF9o24qLcKPZEtVdSaUYKZQ1MRlwpWZod4a6ogTXUOnSt1UEWcYZeIFjKcDy/RbTZllsdrNScenjm53UA+fIi/M5qNUamxCM+HlubTbZmLcuMT2ZP7jFgPuYJ0S5PJ5/bxO1gT8USy+slerLmj0EuspJM+TBZC5gzQJIROwITMCQbUXETJQUQa0xDoBNrqQARV5yk0ezXjEevdpfpLYTzTMye4IoHWJkPZr6PONGs2Qq/T1hgDneo8TVfWFFZLwy2iVW9jtojwT37rP8fDkwke9i9x7859XJw+xvHZEzhfu/M1hQjm4JeTGZqt29jUfhflgNqNJYrzd+DhPRx097UwzbQ5twvNpaHEviWUophcxgg0jeZsOAthUgIqSjMiGTrENMgENWaWQFsdDTRhfhjFivjteksFNaPyTrslyoI4+tKiWx3BE2U4mchZb8kjNPdcMsq6cXSofzfvJRNDEWmT64bj4GI6FkzIjjy7aYxi/Fxu1latbqeGJmqZhtmUjHx3JDFSwGX/rcaSWMf2T6ZYvAZpEDSgiEUyOUl27UpMNMbORGfb0cuMzrJJFWHQ6gQGBT3DfANtvXDVz5ARM3/PHAQ1HDM3D5cwirUQPzD31tW646iBSoCT4RD77a4WGGtPnQ85o5jjzZpEn1hnaqNZqrU1krPrJ5OYjvq59U9OATIXSzO7I1+N76RZ4zBR80njE+IGZBOQzu304K3nIAN7GITvzcPLSIi8H64BXh+n906GT7UuzETTtEnSfVCc5JDEeKC0PEkXuLF/gFXGtNmukbT44/6pGokEFBpMy+iftkpQ4qi6QgXhcoX2KkOj5cP51W/9SsaH0mm2jbNC1znqJ7jA1LdwcXw5kPs5d6iJXjLZxAsdcZgbx0pthLBItmkvLUcHr4hp0ntLsGJHtYrpgk2CIvxLjtfT0xMMF5F6GAIg8yjP7+dPm82lxJYG8+bRj/WDeXnZTA1NKhL/y0YJmDuh5Z2MHkyJuOhJqRAnrOhiHsZyxyDd4PnluQwOpMUXbd3F2TCPVlUSDq33YOMJ7Lq04SnYimP0hwMthkcvnuHbD76i/oiNoTd/qdx10+yWLPfJn5PVQzJaYOM0icRJsmQnn10uioh9jmqD3K1cqU+BKR4Hf8aoCUDwEC4SuB7pFCZR5X6ezUd4dnYsBjDruHajJwDGzGYdNem4qS16m1bfjC7sxDLJlAUa2Yyy5ySUcGuuQCmxMYO5JniK73W6ljaw4TqL0KzT9d9OHaZH7d4Rnr14glbALMPcDcUlo9mbvNvoGDlGPDvD07MTpWjqW+eNYJo0EKTodA5R5viKiP2UfcQp2c4mCSdG+/jshTYbAQobRGteCURY2V9Rj29DM7oAzm9977dl+8OjjgUw57vxQamYY8Rer3F8zg3SMQo80Z9co24NvZKYq4TGGhx1nBsbbB1StqkUuX029tcSK/470wx+DxcZv4s5/Tsf/xyPT16oodWus7BN8NrdBzjc2bUCUG4oW0q3qd1kbc+CUZYzhuszgsecSiSKPb/H0iHm9ex8s4aQ5aXsTnMjswIHBpG4t8T5eIjrOzt6ASbDLeHJ+ble+N09GjLYNCwbJMTobdAvf//TF090bzyJPnj0Mb772pvYbbSFBskNPc8xVR/QooiGvdo1ZmsjtoJkoQQUQo0qUEcoL1B4PUKyRMQjLs+gQe8xV0GG+nMiOZJBb6f+5gGLhwkDyWRyjpPzE6ypW6/U8Rvf/S4GyxJOScfnKIXBmUa0MXfPhYBWZ+TNXQtuublbLr1WkOBIg/x0liU3i+ECMNyeVvmQIJIuiW5qVILsUTPcvvtVPHz6CSqlBM6GCkDKJljr0nfY6rr+eR+ldYin/TNtdNWoJSNGEqYlk9wr10Wd53Ple9H4PJmKmJxAVsD5lF9t+c1GaT2fPfXyFrttForzP/zOf53ZMbU130rFauRLIqWC6dRwGqHbqGCVrlCpNITq5Dp9pQHnQzqbZzqSuWD5PynydLLbhtC/5XmkTBdkb5k7nuTCIYp0JosJPvz8I02funV0A5PJBDudLm7sX7/C8a0xZSkIN/dWRyEHkC+YHfCrjR9mG8bcQq6GQtucQIINuQk3r5VUZ54449lCaZelJIbhc6OR20PnEeazQpFka1lUakbIlS+aKSK7xSxMOS11p9mWTSkjJzcnT4Qtv5Vfzu4yuVxS5ct31sy0GUvMboicrHzUspqtBhZwJITu5sr8wkAMymwZ7Iw/Jt5C7v9lyJqY0FjiOWHiZawRFb/9y7+BfpghXJYQOGv8+J0fqtvNC+G7tKTSzDQsMzBzCjb6zArIpmbxBKW2g2nTRXyO0XSBi9UIblTQRmcPhuxxNodJXS+vyyhuVui1WrgYniNzfdy/eRPNSkUDRenawpF/xfUSq6KP4WiAlu9gEjFFYjORcwjXAjPomcCNx/k21I4w9dN8kVx3bwCP6eMV/vMJzrx+r1RRgIqSmVGjqK9iR/Af/8ZvZvOlkRRZvJKASKowFz27oLJqzDxMZ+d6+K/ffR2v3nhgyIsaiw6G0ykGkwmOdvcwnk11yuzv7tsRrTyxqLTj9LKPW4fX9F0XgwGajZZpm4mXc0TWai1+1GB8KXlotVwWA7ZWbaAS1LTolHqIDmCpCanlzDXJvSK6xtkgXGyEAmW+LRWi6SK2Ba0VrWYgJvw7p8Iw3ePUJXv/ttHJBjA/WVtoPEmMrWqiJDMvsCJXC1tdebZaLQ2SWbJ1X/K8aptSMTzQpYUn38saxH7GKmpLvfKxdYyALGNyV3qT0Rp6ZSiS0b61cVQg89kTAbJeD7ISWnWSGD1USh5OL85kMmeTpQpoEVqnEYLfELhCIL3baCtt5t2zoGUDkfder1bVy/j0yWPcunYdBZr9cSwCpa/LJQajS6Xsn1x+hn7/HC7lrlQa+kal32/tSTUacUDRxaV8scijYgSPlgU0GnVc391Dtcr5LwE+PzsRg+LVr/wqfvzTf4duZY5m0cXFYobT8aWQRjKfg1JDDpeck1n1C2IgkDzK5uYsnNq024ybx+TBPL3KPsm21Cix7qGBn00442aXXer3vvntjF3xywHH48aYxYnklqSx89hiClQNOmq6tOttHPT29E9547KBkyzU1CtsHHRabZwPKGUsiGTGxqMJ7h2ZDgzGQ9zYP0KtUsGjF0/xja+8oSONP5+mIcbRJRbpEhd9FuakpdPKpYpGvY60MFYkYToTJqTZG9RM6JTFqa5F/Q2uRAMEzArTCnSmYHTLabUDLCmb1amZx8KrGfFGbtSvbg2j7QixDaLobQ9WdqVMD1Zmyq3+kCBVK2i5UYQg5Xm7sXvyXzPvvPzabBNpT+TIzfa6ZMiXQ+n8yXBOzT5P5tyvTNHc0hjjt4mRaMU/awFAU7O4EHld7DtsN839vTfw6PjY5rCXXRTLM2wcDunJR+hxGlihhS9f+6pOP8p5Z4u5CJHsohM8oK0Rf0+pM5G8vN6zRicXPDSvMYwXCCo+TqeXGEQjOGRUrAv48o0HqLolRLMpJrMhRtOhRhJUio4m9RZKDr70yutYZiU8OjnGdDXRcJ1e18Uv33jDnHtZM69T9GcDfPb0DOWACGcJd/YPsdfumdzYpyArxWA0NjEVJeZsbUSxTCvm8Vw1DwGizImUphNAqFUCOGXfz3jE84YI07JQ90tktdbRqjaFnzPKHu0c2DG6YUpijSDSU4ylux16YjRhXrWlNHYUW7FnZEFaaY5mI9UAw/kAWZYgXS8QryJRLYobjiJmjeGqYUglHzugzy4/tZMjH8dgWAHzV2tSUnfw6OypThEbSGMReEttT5NMC6zVo7t7fmbkptYsbOkRxcjIgpWmcDwRWs2Guuk1RkyPptMVkfFcx4NftulXPEl+8vPP8fYnj+REyFOW96pQn4+A2LJwrwYO5SxlnS7s4nPK0ya1xcmi0eH0JtJWzN0v5em3djC4SLC3b0NjtptN05JylnWr0kFQrtoryO+chSdJnoLLczdKOvTc6dzDjz94D77PunGDRTISVE89O098siTM7rOMg95N0Xv4DPhMNaSU6NSVUaadgDpzVezmwSDve0isJU8zDgyiLdMMx9NzjKMpCfC4s3Md7ppcNAeXgyGWHNUcLBGFG6yqK0TjFbygAD+jg6QnH+P7zV3B7fL3zY2w/9/33pdGn9yv2Woq/hfFeG2u4yCQGyMzHvZlahwBXsgwGhMCLmA6neFsMpV1EM33yLyQK2iv2ct2u3vqaHI4IslmPDlkiUL3B7qS0DrUJS/fjnVrEOaNDAVsQ61eZhHmz+o6rrxr6fmUbhY4G79AupqLLkCLD2uSGS9JUbFoc77Nrl/WxzYrRPPz8u+kqJ6iLRHnGM35p0qounXcvX6ESTzAjx9+oPXJVHEZWUOOI+GIAu7uBGi3qqiUAlzbO9KJdrCzK9ycPR4Kq2jIfDGc4msPbl8Zjdkr32ZJthCkbSk4+NHPPsJ//NnHYhyrb8CFziYY0yLpw63ZZuHCtqzKIWk0cjNwpWu5LSu78Osl6mUP7WpFm+3Tp4/w7PgYrXYFh3sdTKKJRF104ri7fwNBqSPqCQo0szAtjbQ4DGAy/rbr2C7imGO8pROxUQtKDWWKZ0OJhFGxoM6KqBZrYuze3b+l4CEXdZpFM7fXBF3rH1naSvjdeFwWzAxqN49lzghhOk1kKka8jDGMxng+PBMcnJVX8NIqZuMZ1p0Y2czF7m4TTuIi4Fhvr4IgaGGnW8XF8BhFrHC9vY+6R0ZuER8+PzYbIK+GZuBq2OqQvajZEHPNr0y1tiulKu4ePsD13p70/LVaFZvlGp+f9HFrr60sZDKbKSA7v/d3fz8jlcE6qeY+x9tibm/Fq3Wztzm0ZeIG8Rkub7Bfrq+x04QztJNIU05Pho8wic+RFcy0S9E131tKsfXBVsQr91OqYcNobDCL9Za4kEQ+4zRefbf9uplMc9gM/VuLaFW7+Pq9B/jTn/wFfuHV1/D/vfOButh0GyHU+ODGHfzim1/Hf/ILb+H5+QC3jvZysoShbLz5MIxwPp7izvXDq8LTHEdeXrilQZab/ekP/wZ/8dP3cxg0v7u8sWawaF7o5zNYtoYN23pDXMWcqEgdh3HjgJSWoMjwjRs38d6jn+Odj9/BfnsPv/7t76MeMNJv8OTiFO9//inG0QUqtZymrQDGjUFqjN2XNh/T3S/cg7VvrB9kG9s679tehwU+oozsXGdolXdwvXkPB52eYPGt46M1V80hkvfKz1EvLAdsdCKJ4pKpHuEJuKXIcCQcWeAjsqOdFYaThVTfNw734XKql1gVwA8/+CsMJpeoVXvy3719cAMpgYbLpxqDcau3j265rWu/mKXYqdZQrVhHfqsLmqULHE/6mC+Rm0HE2G12cLRzDbVSE0/OzvGlm4f6GbrhsBRwfu/X/qtM7hcaKGKbwqr87cC53I1QaZRpz7ftUnW46fbuuZgyoqVjpQfTaIR5NMY6i3P/XebpRirbdmVtY23dug1gsk1ouLS5cLPznUen3A3PouA2xzZkTNyg3NaU1z2ZLuFsXPzmN76Df/VXP9JL/ttv/QLajZZFumKGX//+38LZcII7h0Y1mcySKxeW3V4dF+Mx9rodKf+ofJSQyiry7VFgirv1Gv/Hn/4HPD45E5vVTJJN16xHmGvhrKdq/rHbGe2EezlwhzpvplfjcGFdCC4oat/Jpi1k+MbhPv74z/8fnI8upNL8Z//FP8az81P86Oc/RphMUA5sQ1z1KayIsuvMR0YbRSZ3zs/9h22D2DPc9jUM9TKSKR8WafFKnkjbEMXEw/XWHVxr3ZZUmmuAfTCCO0ovBWMb3C2ky0Z+XXXYjT1g38keDH9ec+TpLkIdfZZhr9NGpkYyXSRjIXl/8/FP8eL8GRyHtB0qHymHruLG3qE4U/EmtnSrmCEOCzgk4bbVVoaxnWwl3HSzloZ+GoWYpnNMOQApmcue1kMDd69dEz+P19yq1OD8wW//QWbUcHuY1mjLO9A5lJqJuGZwovGd6D3r48XwBfrzF4hSIgSJhunYmND8IeR5qSVM9rZER7iqI8xulIuexSL3nlnk5CmXkCCb1cC/tr5R+ZzRfPPk7nikh4QbBBUXl5ep7H3IsyLrt1Tw8M3XvgbXKyvv/M3v/y05mXz+7BT3bx+J6fnho+cYz0J0GlWR3fqDgVKu3V7rCka1F2t6fYEAeTPvhz99H8NpiA8fP7pKKSx/t6aZcn/VAKbKZM9JTuXye6qiWPSF8YdEj8jTYrOPdQXnIFZLuNGo409+8K9xOrgQsvff/Gf/EJ8+f4J3H/9AwYy9B8lJBKXbPD4BC1f0eTtFZPrNfD2fvcGr0nbQZIL8aNGLInKXT/66shK1e9C7oJtIsYUv7b8uyTHrV/Lu6BE2DUND8SRys2CqukTZhmUe1hy19UArVxIJLR0zT12yfqv1KhrNplIvbp5FOBe6+aR/jDAeYTyfmh0VjedKnpqO1CT1mm2sNiVEqyHcAk+SDq41dtEK6jmjw1Jcq5V4LzRKTzBNUnxyNoJTXOFy1ke57EgX5fzh7/yhxWTqBTRUM8fKpXfINGxGnBnPFWLllRx8fPwBhmFfp4XJatl7ZBfWnPnssMkL4dwlxQIJP58Dc2w+CDvALITYJ8oFeeZml3+GmQpYw2xbdHMEl5qRJpvQYtiqDi/7EfZ39tC/HIv/Q+3xL731t6RupFHa56fP8Pu//Vu4frAvQODscoCjXTJIc1KcmjtbffIaT549w5fuv2LmyVvrWdVg23HS9ovvffIQP3jv5xhOZkJAuBgIdbNe48O3JuAGG85C5KBL11MTdKdO/lBJ0YuUa0pHGeHoQTWMlsSNkcUxbu7u4Z//+f8laJzs4X/6O/8tPn38OT44/kvVcpaYcs9up0fZBtGpkKsQtWf0Z/JNLlq6pT6W9OYBMv8XbS52slcZjnauoz8+E1KndEx1hjxK8NrB17DX3BXsy4XOk388m1nfhBtHLIb8RMkN/pTO5QzkPJxaMMmbLGqe5qKuRqOGgLR09SbW+PnjJ2hWS7iYnOFs0Bd8y1/XgCWyL2gs4dVx2N5Dt9MQMkq1I6ksR61dHDS6FJjn7GT7Ga5Vvq/3n53h9k5Ns1UG0Qx9soT/6Hf/iAQBM4KWWN3GE7DFDyeFX87w4fPPhaqEyzGSJWfvbYt1y523Q0e2GYj6D3ldwYdsczxsQRMR40fbKARSWQwBs8jEF0hPVXO8NlrJ/0/VewdZfl7ZYeflHPjI9sAAACAASURBVDrn7skBQwzCIA1AEBkEGMAAcMmlsORyA73cYEll2bJdLpXlKv2hktYuWbKktWTLtVruagPTklwGBBIZ4ACYGcxgcuocX7+ck+uc+/16oEFNYWa6+733+8IN5557rsXBjo1hPQca6GIoVbPRQyQeQrvRR6lYF2eMyBYHpxCSPn7rHdgsFJErFdAP9PH7z/2aUVRCAaxu5TE5xLDLKCLafNLo6w2xApi0UgpIya5N9TF+mSqylpPwGX757gd44cRJXWw2dfFQkLZC2NAq+zYgiNwotqWyR2UoOygFFRI5eTDqfUrPcEa7qZnXqgURK2Pw4fCuvfj2T/9SxEUWAL/21JexvLGOcyu/Qr3N4iTZxW6SrsuVvEqxByTsxK+qpLOGZSEQDRzbqE1t3j6qyA6Cew325h/E5HbcO8sXLXzy94MYSc9i99A+pGNJcaa4SRLMowyoKx6KnSxZW0+j10AA9e+4cqZHn7EuEwVoNmWMvTbRsOj622QJsE+ec+zrVZQqeaxtr6BQ3ka5Vtb3U7dAeU6/jpHsiGo8UXpmjZ+mwHUPA9EMBuIZpGIp6bHxc5xb3MDRuTGHxNol9v3+F76p48wCWBdtFGuUH23gyuolVTo585xYcVvarbao9uFdIcwhM7TyHi/J8mtvAawG4cW4NvDRagqmqWUS+rLiokxob3bqAtab7iAgJeV2WaS/1eyhXuljemIMW7miqqjZVAb3HTlOcoiUFbfLRWw3KvjyY0+KYjA2kNFms85TrlQxkE3KtXtj5xgWsJYzOTpih8b7rWe3zy5pVvLU9PceLtxYUEimEQH1Jq4sb2B8OI21fBn5EiU+w8LVqZnF1yRFJSDELIYEZU7ZdqyuPRomq6SQWsFLNRgMYHJgCH/1wt+Iyk1o+bc+8zwuL1zBYuECqq2C0TmkoWvrKN4SESkHuxno4Ybf/Fc5kYW+XH9pX3Ewkp3NmyGxG23nXRS2oVKR0ma6WnzPUXZxoojDRzCcHhIcrigA7LPoSApqMbeOXaNTyiuo92vozE1IeIcSo8jC8lDvrPHzmEontYIp1JFAOJpAtU4tgI7EO0g+5Ox41lNKtaZmnnT7JlZOLh0T7lAwgnRqCIdm9wsjZcMdaVUUivD1OljNF3BkcmSH+qKg9Q+f+0Z/q7yFzdoqitV1dPoG/WkksLRiaD04ipd6p1b44yH3xht7saVnXDxUydAph2p44ZU3FcrGPZgYmOMxGSgknMu8g6y2O4z8IhNLGRuPvNJDtUy1jR4Ozcxho7iNYrWippen739K4nArmytYLm9j18QMvvTwo6JA8LU3cwW8e/G6Fp2yQg8dO6RwQ9QVmU87JYak3Zy9Z9bVh7DH6HU9HaEQdWetksx23++8cgLz23kMpRNY2tzC3MgoVgsllCj/E6TgQxcj2SQGEoNIp4YVZ9+yZxRH9k24ufEkHJJnFMSHH17B0sIa/vrlv0KhVNYl+sPnfhtXFq7j2uZZoVdaExY3dNjtwCv699gUSvzdcWOF3oavuG+wMXv2vJZ/qv/G6daKkLgT+jCHYS3EBOm0wzs5OHst+pgaOITZoWlk4ymJK/CzFWo1fP+1l/Ho7fco5+K7KT/xQi2Fg14NxRBK++WMsXd+HKFQ5MV+FwMDWaUG4uIxXJc6Zh1b+S1s5NfR6pQlJaROUhoNQcCm35xNDOOWuYOYHhlXPxKtyQsn3sFtB/aptbrTqKLXacB37Nhsn6IH3nQlr4prWL3ZfVEJ3YeUyLCbPmuap3SzHmLiCoY7wKkhItJhcgLP2ht6FDXteIiGi5md1L2GMboQ6uZMbaM0dxtAOELZ0wA2t0wbdzQzjKMH7lSVnbAgSXbLG2uYmxzG7qlZibQNpTLKMo09Spkbcp8g2oXGNXc7YuDOjI3drEy7UErdcaKLm9y+R+RU/cAhQ7xStKSpWAh/985JvHN1HrfPTeHM/JI+T6Vax1Yhj2gsKTo7QY7Dc9N45sHjdqg5vNR5V6cKJg/74ZkLWFlexfde/hvxjbg23/jM15AvFnB17QPkG6s7/eLmflWntQR4x4M4r+vGQSs89EZ7O7jaSqo2G4YWV52hiiKthqOj6nhpLu109u/mjHSxmzt9DMTHsGdoDzKxIc1/L1Vr+E9/9zd46q6HVN1Wq677DPQAptNl0K98ssI3R89xyZ9XTrCw1sI0ySz5TLhbNawIJWW7yJWKWNvewMTQIPKlHLbyGyjVCqg0qvJgUrznc0rhMoyhzAimh6alaj+UjEgtU6qW7G+6797dfRa4zPJbCMFCnUnA28gDegzDtS0dNEFg73bbpuxcMOUkXqJuFmZ25nbML54UpCckiq+hSbKu0u3uF9/eS9b7hHc/gn7pIlKnq8Q+iyDuuuUY3j7zK4UWFJb75PGnEIskUaoUsLS+hO1aDc8+/JDGpVndQWbECw4V33ozw7k17FTg7AkJYzvWsZErPXiUjF4qnVveZExWnyT3OUWJf6O6OWdqEKr8dy++jV+7/0587633UGaLZ6+PieFxrOTzTBjkiYYyMXz58ceMkbBTQrQ14Xr+4Ge/QLNURyQaxvd/8V09Ay/J85/8kpgGp+ffRbG5bI/FhjKtr112K/7thNNOkd4OIHM81avcFCbzEsa32qlreXWevk2jVfOZa6m2mR0WCwtB0zgzJ+6kUdF87SCmB/dgKjOLwVQaf/LDv8RvPP5pzXzZLpHm0RRPLBqzsNIawczgesbYakMOdXLuyvpJrH7j1VnIRKBSCz3LyMggy9pY3tpSkx5DPXa0MldhD8lWaU1Cg2zM4gVhcxuNNUmou6f2Y8/0OHydHgbSabu4x47N9L2Cn/qRHfxlIZIddvvPPJ6hDzbK2dbY4cPajJvwnRfJxqMZ7N/1CZw6/7dWPXau3pJcl4R7HtWFB+qecxAzcxVuumLePiHchg7jZx/4JN4+976pmaOPY4fvQjyWwo3VBQxl09iqVPD3n/mcjRVmSETGKX87EoaGOJLqQUXzdhuZZFQEPTJhCejxh3iXOX/DgyRt2ItLWDkv3kmzOluhp2ByTmLlv/rJq7hlbhbX19fx3sXLxu7l1NdMFtF4Qt2SnA789554RIILtGpWJLU14fOeOn8ehc2iaPsvnnhR+lTMWT51/AkxHS6tXsBy6YrN/JAXMktjnp8Q6s1Cqtf7zn0kP8mzSZ5h9KBz+7t9DmNsu3F3ahy7KULOzQ8giANzR3F14SyaXUrFGhRsoJ8NX51IzWHf2AG8f/k8Hrn9brVZs8i4kt/G1aVVHJiYUKit9mmXJ/G0UaGdXp6iF6Txu49lF93rodl5VjtAXJN6s6b8lxI/jCZoKNTHJG2tBsrlEvLlTcnsUkes1mopT6I+2MQwxfkqVlsKRbF7Yg98h4+M9ukNvDmCBg+6CND9QRfE3WTx61WRdaQJBwea97FL4+HdXOCZiQMYzx7BB9deQq1R3CEImkewS3KzKu5o8a6yzFfstBjbAul0FL5uFEvrW7Lyt+09gsN7b5WKN3MAji1YzG/pUH7h3mNY2Mpj/9iQ07Yy+DosipQN1+Hl4GFntZrCx3PjIwYxO6/F52NDjkbHuPKzqaK4vg1RNDhcxwAD84bGjOVhf+X8PBYKFdyzbxb/9qevKhnUEEle2GBQaoscGf3M/XdhMBNVa4EBRl7FyA762XPXsLS2jNdOvqJCISkfX3niWWzkVrC0uYTVyiVX2nMlYy9M8VI6x5bWxXNhjWeBdfEdDUSG0HHHVK9xdRtdFK/OJ4PBaVHWkKYalmbYG7Jnhs0QSTkYQvqtrgiTEX8G+6f2qrhHb/TSyRO4sryA5x9/GjfWiUKVcPvej6nYSmj8jXNn0UYEqUAd9x+9z9BLKnC6fMqDEaycYA/iFUo1npqegQYvFBKJNpFMKBz3ui8liNGuChlkcxnzrqurayjWcogEfSiUNk2sYmYu3ZeF1igqowhYtOVRsA1X5SHR4BqXSAuSc/Gpfe9NcqDK+y6R5fenY+Mi+a3nrjntJ0u1vbZU8552uGwj7WEJeZa227ogf+/xT+Nn776B9dw2YlTpGBrGx489JJLi0sY6sqkA3l1ew9cfvA9HJiYc/aSHty4v4+wqBY37UhX/1iOHkYwGRCw0gW6+F02eparihxHR8ateb5aYWleyjq74ttND7RkTayVWSOC+ZyVfwf/3xmk8c8fH8O23PsBQKoF8tYYUuxzRw8jAFGot8tS6+PjhaRyYHbYZ8168L43cLj44dxlLq4t449QvsVUqotXx4bef/qoq3JeXr2GhcNZ5ZTdnXqibCT5YHcQTXTBmoTtKO1ikskRXt7K99fo2vSTZXL6KchrX4BlCH0JiOdvlIPOYoV6DgggqVfmRCicxHB1SuE7K+WhmCrH4AEayGSysr+D9Sxfw7IOP4W/fflkaYE/e/ShWtjcwOzKO77/+d/An9wO1ddxz6BCO7jvixA1ZpzP1Sy+E9AiSliOZAfPGSrMO1Ow0pPA5OT5pwuXKv0wbwRsJQQmmk5fOo1LPqQjJOYoK5+b2DAlrU6gk2rQLjrxKrNPV9f7dUghjy9pyuujTERitUu6R3QzG88yUepsdYmGWx4Su9YFduGaaWewSM9n6tWWOEfPh+cc+hXcvn5fbpiUezAxj38wuLGyugdPN/ujJR/AfXn0Tv/XgAwiSKMg8R4lcV2LQ/KQj6QTSFGvzQZ5oxnUGesQ8oxkS7rSQxT65XQIefu8wWb3E2yA7UJoOazukn6OK4Z+9fgYLxYpKqCODA1gplNTHzmoxXTjJcE/cehB3HdivwZR8TRv0ayvLOsK7p8+hUCriJ2//EFuFkqRSH73zUdFfzl07h+XyORtprXNqn4VeyoPGHeHW9W6b5dopZzjgxWNPSOzPeUMr+Nozqt3WXS0DVuwWy6Q6T2Ighu27PIgjMYZ9lGmiQqcPoX4IvmAMeyf2abDR1nYOH7/1GF794FdYyq3h2IFb8f3XfoZHjt6LVz48rWSeI9buO3wMeyd2KXzTPBMHnTmNaYd2eUjYDsHPcpodLMwnpcpgyHTXOIOEwhaq3HfaaNQbOHf9MgK+DquCmF9bRLVWhm9u93DfikZOVcOrObj38SQsva41r0AmqoVDGKyCaw1UylMUhNpieam44lMXRjg5Eu0q35mX02N+Nlt9ZFIRJKJpbOdr2C6QghyQAPGj9z4sBRXPKlLgbaG0iQcPHsAX7rpdCIZ1v7lwRZCm9W94hs+etYeV9S1Mj1Jn18XYHm3cE2fYYfU5mNerDewE7/QYN2lG7qQYdCnL7cN3f/Uh5je2MZqK4/JmHk0eHDU5uZHa7Tbu3D2NJ47dJnTKiqrcCc4XbODK9UVs5fLIlXP42ds/VaxMivfzn/qaWpFPnj+JYm8enZ4phNjPWv5hzVsOhXKhrJf/0WhYI5sDIDzmg1gMHlbs7Jq0xDx2kCGSJlrhDIK7zMxPOC0s7A9hbmwvbmzNqyuUe6uwvMeMJYxAnzNC2HCVRsQXxa7JObx/6Ywu8J37j+A7r7+EmewwShsb2Oz7MTcxgqO7D2sMhUY5u32wfOVmaGuu13l0V5z2+HDemohvzCIspxi4y5bJZISAlSo1nL1+BbsmJvRjLDqWytvwTc1l7W1Ey7bJqio0Oc6RcHHXWE6aiMnAmFWhm5Jf9SRgvAuj6rj19Jpkv2kcefI25gaNJmJn10IX6l6XK21MjYzgyOwRvP3huyr+sQeABbIvP/Wc2MWcY3Hx2kV0eg20/H783lOPY26YItbOmzkxB7ugrkq+E9tTsM3VWFyhQBwrrYGxiGUZnaKG57LNUtK7OUehcNSthygvBoV6ZD1+75n5NfzdyQu4a88UXjp/DcOUHyVr2qmE8KcyiTi+/sknxMVyjBQdljOXLuInv3wNdx65E5eXL+HE2V+h2uAgyy6ef+qrSCfSeP3UW6j1l1Eju8GBH1p6eml6JD2PIVS2b1ZrsAKo7ZHV6+xSudhBBkQTqpw3U7ir1zfQxsUHog1JoUZnwa/msW6bgnpx9P0tjfoWcdMzumrkIhTMM+bHnrE9SEeGsFEghSaC/VOzePfiOfiDYQz2A7ixvonIYAK37z6gycSWAthzeJ/WohXv7Lqk2bvArkbjdWdaWuDCZtXfbF48k6zhoayGglJAjrMvuY+tZge+qdmsfkxSoJKgNNlFr+AnYTYJODhkxH04Vs7NpbrmHPO9O2vBf/dIjx7Z0LsQFrPclHXxhs5Xaz3RRXaP78YzDz6OH7/+Ioo1jnjjLJEgjt96nybNXli5iql0El984B788N3T+N3HH0WXXXn6DJY104LbqTdoWUIFZVI1qN9FXSuj6MteO6CBT+k5Dn7JmvwlPeC+z/7NLrWFVeRRMVF3Sjc2JEYIqx+bxSr+9p13sXdqEu9dX9K/EZmhNH+70RBjld7if/zyF91EKndoQbp1SZek1w7jrTOv4eLCVQljs+//qfs/KV3bV999DcXOIpqdqvtcNy+CPiGTaSfDqoPtTrrAD0qFUjDDJfHqknR5oHGljALiHX79rKP+iL6innhjgbNJjU8s8EbQptVaBf074+N5dQuxyWjuq3d8OD6KscyUxrONDY5gcWMdo+kMysWyiKbJgbTqZlSFMc9rzV/8bfWpHfdm0YgUGbyE3SgZ4vM5Lpr9g5kzqeOorteSPnQoEtBsmS7PNuc38mcmZzIyIoLE3KLYC94UDPMeynqznUXy0AMnP+NBX7pg7hK5iGvH5HrJoAo1bnaFOD79LpLhLBbXtnVryUl65hOfVdWWDVRsxifct7mxgi3O5/AD/+SZp5FNxDUKjjqwRJwUwWsjiS65opNzyrSaVxaXJao2wkU3t3nTc7jGHt2rHmNd05rlQbBk10WzZnKtq895QQ4YYlnHy8d4MOldWHj6sxd/gV2TU1jKF1HnWLBuR4xXFqJoGKiE/98994Wduoqx2MwY1ao1nPzgEt678CbOXDmvcchkOHzhsS9hdGAIL/7qBfhCJcGSaqf1G4rEUQz6LAIhjFUlio6XH/T9KOWayAyHiE04PS/7/B7kb4CFGRZDtey10ecI5bZNhXWHz3IYizyIBmknvGlSTkPMO8yu8qUz0u1SXLCLQD+MW2c+hkAgKUqO2Aaa1NVVR6fCohoNS1ghtFAz8Qztc7nAxYWXxjq3CHMH8TDD/ZEai6tSO3a5hcq8KIKJe/Z8g4OD8E3OZvpeVu8Rx7xkzwynEyGm+gdL9Rwq4t5X8jU7Ik9mbTRdyvGrzIQbWuQhDh5axktSKtRVtRwbnEIslMG7F066JDmIT9z1sOY7sF84Gkni6vwV+Nl0FY7Kiv7hkw+YIJrj6SyX2TZKrJsr08XR2aS1vHr1lo80DOmxvJ50Z4A8L7Kj5qVL7mraujVMfkmRcPI7LrcJ8ntkNC2f8uJ64Sz+IN6/toDXL17V1+LhEOZGpqSGHw5ENITzvWsf4vnHH1EPBIUtQmEq1NsM7+18ARcuXsdrp17BtaUrEmImwfH4HQ/jY3tvwc/eeRHRGNUoN40H5wEKCl3tQngJthkue57ipolFDI4zbLH9UY7pOgt3MlsrngjqtiKxD7Pjd6LRKCBXuKrQhmiRh2DKW7hir5y5+xyGMhkoY+tjg31M6pSzLO3i7R3Zj5HUmGjrlKqVjyLViblNLIKtbQ4tJbM8bKiru6CWs9tZsL21YrauvNqaHenSRTuMDmTEdY4d3OS8Iv+Fa8mOS8408Y1Pp/sMlVyZw2HZFrx5BD4vROLF9eQ8LZ5zb/CRGNNYlLYgO0xNlySzhdcW0eLVjdUSBjNDChmopPGdV36sC0cxt+nRUdx15G4koil8eP2SGvj/0TOfxi8vXMOe0QEcmBg1F9inpm4FPzt1GblaS8qJo8kInrv/DqdG6C6JR51xoReBBQ3ivAka7WQpsuIOcXBNo0bVV1jl1UKM9cqR1jZ20Thqlr54/7cL9S/+9kUkIlRM6WIgmcHidtXYyz1yw7p4+vhdOHbwMC5ePINd+29R+MPXW15ZxfXri/jxmz/B6taqlCOP37IfXWTx0N0fx0vvvIaebxv5+prNlnSqih5Yok8qiSVTpGRox8+3eqOFdruOydmUKZJoDVybsyUxOzwtXioZTJenxCMZ7Jv7OIqVZVxdelfSOIzh1U/ieuNVU3GhnYum7YJ4ITj7Uvhbaon8sQACPY557iMaSuKuPbeh07V5LZo740CXaDQm3WRKJ6mIy4Yrd+GsTdvlR46yZLU7C8cEYXstxw599S6uwj/j5ewYOdWEGIWMT6ecP/Cak6yiqYTXhRDq+VBl1YN2LXaXeLLzKIL2vKRP19g17YiZ6mJFF+/TqReLDdRKbcRiMXz1yWclL3RleQlN9lFQfDiT0WGaX1/AZrWCz917Dx49clgTrEhd9pJSS6L7OHttEfvnxnFtaRO375/FexduYNfUOF49dQYPHD2CfKWGqdEBCzX6FLZ2CIg23img8FOLTesgTqFgZgkt7jYCp1W7zcp7CazlYt7fA1hYXdfP7Z4ax//98zeQTcZwZnkFA/EkNsolhQpW9wngjn278OSxu/DBydex+9BtCi2pvHLp8kWsra9LHvUX77+Jaq2B5x95AGvVNPbNzuDt0yfQ7udRaK1rTABHdMvYfSR85FrqUnOaq9qdSb3oYX2phrHJOAIRrz5iDUseKGFG04qHO9T+HtUqqVmQkRo7G5cY1mmF3AFUSNoHosGICWpzFLXFZtZWoNDPCO12rtw+qL+HH5Z7E8LRmVsxlnbAi9MxZkGbnoNNZfSm9VpVox7E13NCHab7dRMV3bkYQhcd/O3Eu4V6aYNv5iM7IIYbOeibnE33zR15VtB4RcTy/qsEizfU81/23Sa16SW5Cims+V8/7vo8+DeNJCAa5oqRlHzZ3Kw4Gjzw5D1PYGZyTlAnRxOYjlIFy1tryDWIXUfxvz73DDIRyrK45MwpNfK9tooVvHvhGh69+yj++qU38PHbDuPdC1dxYHYK19ZXcXBiDpvFLdx36xHbSC6moia1zVkc6m2yS6Y+egGFfLh8xAsbbW082f+b/Spajz51josyMKPZAbz44SXkqnWcXV5THC9qu2bOs/DqQzYaxUMfO4B8PoeT7/xEdRhWk8eGJlGs1VAubmN0iCzYABaLbdxyyyclm/n2qdfQ9VVR7qzbBXDQu0YUuXBHeRIFOMjT0jQnhkR+FPJNxJOUbiJaZSxmq0pb5CCvocTeQA4N83SIEb/HhjQ490sP4jFwyXYOhHHn7ntRb4TFoqUItirtDim1yM3muAsrUzhm8/lohIYSMezbNSedNfLGVjc2ceHSDcf0tk5NqsHzRTk6gZ5EkY1mWVpKIBlWWkFR8LyLYYJ8fEvPaOzkzgJ5brLUvVZp3+FDc5by82c99+piO02qdUQ14fs+n+b6qbXWcE9nYQ3l8UIriz1Znae1CKDVIKGN3YkRZGJj8Pei+OAqlUfsMh3Zcxj3336/Qguu8+rmqqZXjWUTmBjJYKNcxR888bDlPzoEFlvapfPh56cuoNHqg6PkqLvb7AAzgymsVWq4e88u/Pz0WTx05AA+NjttcKxT2/BcrhEob7JSFZa43MXZNwudtPiKvB1Zz+oCl+aXsW92XF5BZEbnScx1+3B9q4j3bqzg1OKK9md4IIDVjQZnBSETsxFnB8dHd/hP1+bPIb9+BZPZFErVBtYKRayWK2j7mZ+E8Mnjn9Tc9rNXzqLW3Ealven4Wy4HcPNO6A1pszSSwTFgueRbm3XUam2MT8ZVuzCNcS9vceGId3J0B1wRznlTBSMeiVBewS6Wzp74OH48etvDCAQyuLY4rzESRIVkQB3E32o3sbi5qh4RY074Fft3Wk1Mj40i2Otg1+wcRkdGte43FpZw8doNk5yS46Haf0iQMGfc66wygRdvj4CFKb3rhDlr56FWnsSMNzBH4aXHInB1PGs468H3tU9/tW8Snq4gpGKrxeajg9aZVaUki8+Pta0NfHDjXWyW1uUoeAHkJmUCjAAn3v1HClC8srmNmiq/B2f34+O3Hdeo4h+88lMnBQrcduA2PHL3g0JULty4hrOXP8SBqVH84aesYjy/WcTh6cmdeJJZF5mrJy5cw9z4GP79z19VwhsAB2pyfALHBbQUJlLxooEgjs5M4TN334bxbFLJpnP2O+wBC0vM4tiluJnwKUbfEY+zA8FwkzEqk9TvvvQq0pkBPHP8qBJCvictroIPvx+5ShP/6fXTmN/cwkAqjkzcj4X1sghyR2f3ChqOhgJi6q5urOLi5XcwneH8QE5M6ghKztf7GBubQyw5pklY7Ps20Wj2cLeUS9he8EAbq5ebZBfArL317vRRLBaQK+YwmMlgeGDYSffQi1hvOLW6nPydad86EQ9JjtPTqLfCIGq/n5fQrDZHtXEN+R6kniejKZMWcmeKLQ9SrG9UJdOaKxcRDkbU5Ebkkp2WtPwcNNRsVhHod7Bv914MD4/o9ZdX13Hi1GnpR/O5rLJA8QeiXh0UiiU1p/GiaDKyujkNYLCgyPKrncY+x3qwUIuAgYVaXoFRhvi2vYccN12pjCm89304sGcfbtl3i7qzmGhubW+gXC3gyvpFrBWprO24Sw5G9Sgk7Erj+5pogV8qjcV8E6loEr/+5BcxmM7g/PWrWN7aQK3NOethDKUHMTU6gmsrC1jNryMZ8eNff41FQR96sjpcWFPLUI7AGentLr735im8ubyGcLODpa1FzA7vxvL2PDKxLDZKOUwPjyFXKWBibBdWNtfwufvuwjcevlswKJm10veS27fEWp/bEfaM3u1hWuYqb0KmFnfTMBSqZfzDf/P/4vLiEt78V/9M+ctrJ8/j0WNH3Fg4WsY+/uTVkzi/yklIThG928PhiVmkOS8kAOQreayur+PClTOaRjUZo0pHT9SaTt+Ppn8IudyCdLxKTfawG02HbQMEQ4xc6UkXGWpoVtVganOVGwAAIABJREFUJWL7tO6ewJvtk+kC8Ac9RMgOkvVLEECQRpYOkqstuE5Qfp2iEjTn/LKEP+SxvEKRYaEKRPvA9PgMDu47JC/DfazWarg0f0Vj5R688260WxzBYDwpWu96o4Jet4lGpYKPHbkVA9mMwrql9XW8f/a89MDklZynoxhFJBZDbptt4aSyM4FnhBFUmCaPIIPi0C0HeYtcqtqILIiD9K2HXkHEUw88rRmFxsTlkJEesvGYFNWp1VuocYJSG7ntNWn1Lm0vYCF3w9yiw7ud2bLYVQiFI7URby+1Ua+bgMGT9z2C3VN7VCDiTOxmh9VWWqwultcWUWgUUO8Cv3HfHXjm7luVk/Az3QTwDFamIXj/+iq+8945bFcr0k9qthqIxRLYym/KcrE2kE0Na552IpZEsdXA44f34HeeOC59LXLa6bGEZDmxaNeUhz/5wU/xjU89LvVHC5c8wMHN43A+hheIw3f+4P/8j7ixsoIf/dP/AYlYBJeXNnB4dlJ91Fx8hql/8+4F/OLykg5SKhLDWHIAnD7LTeFn3MhRNqiNbY3VTiJYXUSusKq8jXqzofQ+FAsrGM+GEE+NIF/nPMG2ZiQq7POkhhzJkQaqVC1K5d0gV6s2mziCYzKwl8PlmqFoQq2m9AKantuHhhSZMovBqKLxSAmf07/cFCjCoo6qzoAmX+Eo5wG9lnUi2mWLhGMYGRi2Hn0Vbm9Oq+JnZy+5PD4Fw5XfdlCvVxBgzNrrYnpyBrsmJyRmeHV+EWfPX1a9xAQ77ALzNSk9SnUVdl8KuHD5CT+vTQZw4t0uSrrZvejiBgfMeKCT70tPfaXP5GRxbUkTZxki3b5/L1IxTikKqKhFC7K+vaKDvFHYwJX18ypnWUHwZrca30JYt5xvGNFASrOwteDw4ciu/Xj4rofFqeF0IM7NJt/l/PwljKdjeOSOj+HP3zyJf/31Z5VvGD2bSa0PGxWg2u5jaXVN9OWXTryK969eVU2EvCXmNyUOwwwE0FaTj09ztimtWa/WEYjEcHzXML71mYd1EHfICo5CYoEVsLxZxj/6v/4D/vj3fwOTI0OuCu999SZrQqeOnqzVwj/9s7/B6SvX8dI//59t9DGLl2Qm8D/FxEGcmK/i/HoOjXodCXUx2hSrrdwmCoUcovEoGp0eVjY3dPjalRU0a+s6nKPDM9iz736srM4j0F5HJp3GuZWS1tGjhJiR46GOYWxgxHXddaWjzP7s9dwmipW8TbBy32uIDUOzEGZnbpUKZr9JYqeFzfzeje119X1TJZPzCdm/zSaxICVKd1BJQq7kmEHat5zVzhCTDFp9Lg4tchOlKIzHS0PPRmYtlVx4ZjiJi8zbgfSAQBTR6nvUKyvijlv2o7Cdx+5duzEzNq5138xt480TJ7XvnJjrImOtgS4FxQvrDeTzResnYm+6E/v2ciivkGjq/VYn0jXRuTOEy/ebn//tPkll5McHgmxZbCMTCWJ8ZATBQET90vVWE61mHevbqzh3+SyawTJalLR0rneHNCasPYSwL4mJ7CxGsln8+M0XXSwINfR//pFPK67myObNfA6X5q9idnwQ//0Xn0Gl3cKFpRXcvXfO4e4W9r10+hreupSXunmluIlcp4JYC5hfu4p9k7txZW0B49kRLG0uY3xwDBuFTUxM7Jb0ZCJDAeMgWo0qjoyl8T999TMKebxfolO6lmFao3/5Vz/Bd199E//8d5/HPYd3yVoqvJAiiyE5uriOScBFfvn9D/GjN9/F//aNL6knnUopGpbTA9aLFbx1aRXlTgwxNrP3uiLLbee2pPPEjU1nB9H2+6W4PjYwJW/Qbm7g2oVXlB+Mju9DMDqFPTMzOPneDzGYSqDQZl2lj5HBYeyf3S/LTGG+dDytWRetDscyt6S1y5oDT/PCyrLJunoj3HjQKahFSkowjPHBUXlia11m7zwrykGUKxWtQYLq8JoS5crHrsuQYtGM9tnSSiF0qsjTfmjCluoJPHAmrcq/S0hBM2mMz0dl/lq9gkg0rhoHOxBNF8GvfCQcMSifvTtH9h1yoxyAlbV1nLt4WaEj8w2v09MrSrLyzvRgbWPd1UssHGShkQ9hHtUTSbSE/qbInIP+H73rsT57NTj6mdj19eUbGM5mNLx9bGQCoVBEODYZoKcvnMGrp9+UAHQgSE49a6zEplkVb8HX7mPXzB7MDM/i1gOH8f7Fs3jlvTdMJigYwmh2BPccuR2pVBpLa6tY3FpDs9vFH33+M/jYnjlHFvTbiGb1mlh9Olcq4+ziCi4sbmN+Ywucsxvs+aXmOJAcwOLaAsaGJzC/sojdM3twdeEy9swcwHZhG/FEBoFeTUWqiVQE//grn5XMDWsGQubEozKYl+H6P/v2d/D2+Uv4t3/0OxgfyjrAw0pQ/MXN8II+wZ4+H145dQ7L2yU13CTDETzz4P0o1rvI1dp45eRpvPvhKTx+7/0qelGBo1DaVujCZDPMQ9FqI1cta8orC52LSzeQTkSxvHBSCXg8M4HtSgsHd+3H1sYVFRjHRueAQEj91If23ILRoaysMQcACWIm1ia9KA4b5UBRm5vIZ+Zrco05Mo9cKoMjLcdjNKkaiDfp1uWUyjFdtZlfZ96jUM0z3erXsrqGCmyu+1CGROgNw9E8FjeXNcN9cmgMs2MzCqlUX9Lr36zKW85nwI9AI+fpNcBJhtl0CTY2trCR25LBYj5LD2cexRr7eBn9oRCKVJAvlg1wkCZY2NGIvF4kpxe20xPvAvtvfvGbfQ5Nl4RkuYIry/OYGZ9Bu1NHlQnuyASGB0fU/fbyiTfw+ul38MT9D2O7kcPKxg2pnfAC5Ldamjg6MzYnWjqPNuPRrcL2Dq8rGo5jZHAQK5uLyJXy6Pl9GMpm8d8++3kMpZM7LFElitosG+lFKzCcSeCP/o9/j81yVSC2BFdIb1fRqC6pTH4v/x8MJ0RPqVTLmBQCwuGNwGikj2w2K6SDQz1nRwawZ3wIo9mYsHIiUs1mE9/643+Hf/K1L0mG0nB0m/+3g27RurniZ67Uwo9PnNF8xx++8TL2jE3iE3c9Iq9bqBSRy2+gUa/qou/bfUBhCqcoWX++p4trE7YsjzAMn4d3Y3tNyOFAiqGeqS02mlVMZNNIJwfRIg2DyA8tvlIpg6oFNIDfW8fjxx9FrlzF/PKCOU0dRkfqI2mwx/HeNsraJj05BqeD6hnGUQOYF459Jkx+2bJrLQR2QZgvqEfdCfnRe7Kgy/Zlbzwbw62TF98TfUPsWr8fg+lR3Lbvds0c4fOOpAfsvjmBOZFnJfjhsdzskqr4x7mKoT5mx0YUqjM/Yl1uc31LxozhG8NPmwvTQ4Tz4P0+rK5voN8xoQcicR6R1VUcdi6k5Ph40b/22a/3q/UKBlNZJGJxPdC11SVk0knBbFtbWyokkRx3Y3UVr516E19+8lk17rDqvVnewNXlq7ixsIjtUh5BfwRPffwpDA0MibFJPVeN5RJXqIf1rVW0+i2kM2msbhdEsfj1Jx9zlIid9iSn3kD0rIC3P7iA+XIDl86fwXYxh9nRaVxfX1RYtZbf1PRUTkryBcIYSA8hFOYEJxuYmfJxmEpUhaHBiB/xzBDCnE3X70jRm9q/A8kYjh+ew67RrC7Z//5fvoOvPfmwettdgdiGhvaAcrWNjVIVK9tVrBdr6mfvUAWw08R3Xv4Bdo1PYXxgXOOaGZ4RcgxFEgoBDu/ej2q1qNkUgUAYyVRSHsPjEvEQ8YLKQ3GuX2UDuXzOTcnyugSBAaJ+E3Po8bD3+5JRNcIme7c5I9JGTjcbTcxOzAqmv7Z03cTUOMdEE5XCUt0XqZBi5bxofV40owpZCGlhiNGHegJtKG/E7xcTwE81eO4rq/RBm0/ZtUvEvIfTf5WM+4k+LeHEufc+6nB0ET71wNPKUQgLr28XMDHANmmypK2AaEOYTK/YKDH8bY1d/n4NiUAbExO7kEwPqq+j02xhdW1DoRtHuLFtlnU7Hnb2/ociUQ3VKRZLej4OFtUkY3ffvZ5LlS5pwH79U8/3N3KrmBqZwvjwqNzxytY68qUSRqQKAVSqRdRrZfUsvHP+Mu49fAhTgxwZkEY2lUIkEJSix7/56/+o8QHffPY30GJY1uZo5xY2C3nh3hyxRct937Hb8NC99+Ff/Omf4XMPPogj+/aYNKfTcGVo5Y08e/P9M3jz7EWUWx2sry1oA8P+ILYqeYykBnF9fRl7J2cxv7mMsZFZHdZgMI7RgQHkqw3MZALwsQDV6yEeDmJmapesCaVJmYpQRZJ5A/fjgSO7lYP98X/+U/zj3/g6OAKDlOtClUOCODeiJVZpq92Qigb7p+kdNOOj18Gvzp2WmuOte29BkJ4sZLO6K9WqoMbDs7tQKOXw4Y2rEmSenRxWiGPwqFlj5hJqLOu2EOp15GkFbWs4jZOsCUYxNDSKYDiJTptDJy00sozNJwVCjlneMzmjWeK8yK+c/qm8LT0QDzXngi9v3LBWBivY6DIr7FQh1AlRO71kMXtVDreUTXK0DM+cQKDomkqsTQrWkt2b/SdUVdxaL6HZ8ETjgEgsiJHRtFlyCjO0Azg4eQuiobhyWbEX+J+rV3hMYJFG2OLbriMebAqJHBoax/DIuIQ76GXW1laxukJAI6v2BptP0lVdJhZPIhQJq25CUTuvNOEBwF6oIA//red+r8/bGouFdLC281tG/eVsjW5XyXs0EhSqQLf5ixO/wsHZcVU8xWIi4hAKIRVP4sbKDQwkk3j6gUc1Y3wom1IszU3jraUmLy0Mk6QOQtKhuufOWx3VwwpZEo8QVbqH+dUN/PkLb6DRaUrgbTtvs8YJ/9Fuhf20gnWhOssryxgdnkSt2UIqOYwEylgtNbBnIKxLRch4bGQKmUQa40MDGsLZ67clJE0OEMcSF8oVTak6dfk8RgdGNAqarE6TZW1ZXUQkO8PYSd1gMsu4l8W8F958Aftm9+HWg7dJaobTctUC2+1h1/gEEtEIWs0qLi0uKJzLxDlsx7hfYeZpVPfo0CPxcHIoUEQjriXjo/qP8cG4frFYVGEep++yoMhDwnDJhlWy/tTGnUceEEU+X+3gp7/6jpvLshNpuT844WrHn1Nbq3hYrguMuQChWUWYVlDjBZAmlYpqNr9+R91mp/Xaa5AzEISC1BTgqFc4p6UnATdO4PWHXG3CwcHDyXGMZ+YQC8edZXczYpz3MMo++V0c15fnMG4MJqPyZiODE5ienkMikdKhb9RquHjpqtYgkUgoBeNgHE69HcgOIJVMi/2dy2+bQINyNEeJcpfb98VHv9jnolsfsX2RHXyRYBBXF29gz9xuVDUYsSH1hwvXr+HY4UPC7uv1qtxWR4NYjEfFUIr8GOLzkUhcMTd7MJ48fi+OHtonuZvLC2s4dfkabizdwD/41u8ZCfkj5D+GF3zNP/3Rj/HL99+zxEpCys6y0Z0zHFA8TVw+hGg8g0Qii1KphOHhSYyFa9io9zGRYEcbEI6nJOtyz6FZZFMJXFlaxQ9eeQ3FCmV12IJpISDZAeQSqYimcdXUrjXFdY4pULENXXXAhSNh67Lr9HSJ3z71piggVBWkNQ5zjLA/gGotj/tuOYpweBD5KpXJyyhK9pKv01OIJy4VRcyyo2rAqlTKaHRaWFhbkQaZnyFjv6dQhHMD4/EkhgayKJZy8Pc7iET42YgUMaRlONTBwV1HpHZYqvnwwomfo1jfdLUqFzo5Jq9YA66DUoxgd1iNbmNMX6+fwgiDruDo+Fc7LGI3t0WaaaKzdxViG1rkxUemz+whh1pnR/WxGqMfcf8Ibpk6pCIuQyz7HuY9BHBodBiBklZU17SydDSkHJbUE6q8D2ZHMDgwrCm6DO/Pnj1rYEc0IQiYRqhWKUt+KZ3Oysjn8nnlusYKsH4fFY+/8MizfSJMrGISeotRoS4aFT5Py5aIJw1r77Zx7sY8FtdWMDUyKK+xkVvHYHZY7Z+cb9hqch5dXVaVybImtrYauP/oUTx2/D4pD569No93z55CqVwSQvat3/4dfd+O2rcb4vPXL72Cs1cuY3F1SY0sPBiVUh6pZFaHK5MdQq1aQjo1IBoF+5yTsTR8oRh8/RZ2ZQJYLlQwmUmq12B8YjcOTo9j79QoFte38MLbv1KPBUXZYuGYc7M224O/6S1jsbgsNteFSCVDJYY8lXoJ6WhUlJbp8Tl5CeL1Zy6ewvDgMG4/eFQh5fWFS4p/04kYnrz3YXywuI1CsagQgHAnr1o2GcBd+8eRSMRQrvsQjGSQ215HrV7GdiFv8jUMBcNk+JJ5YGPyOBaOVnhieFAHcXwwLaNET0ZrysT2ytVrKnRWW34UShXU2g2nCkbIwCreFOHzRiJw4GkkzOcNQiVS5etOEop9N46qYhpldqk0hFSoirG96WVNmJyWvoMLS2exmLthF80hWtb153r6HbvN6PT2flTcmhs4iIH4sOsh8XQDPjJar8ex2y1V4mu1ElLRCEYHUojRaPUDSCYHMDQ4Ik/B87uyuoq1tXVJ0pJBzgvGdlsK8KVTHBIb1Wz4SpXTcW2khrpO/9Hzf79P+JHepViuYGM7JxdOq8iqJW+biGx+P5a3VqV8zgorBzPygcqq1mbh79mIrXy1oh4PhkJEMe4/ehh3HtwnOPfEmYu4QVXyyx8gncggHo7gd3/zNxXLis2vwlUAp85ewP/zox+KlnL1xjUV0diiyhxIrrNew/DQOPKFLQwNT6LTrmuK69jQEPLlBiayCWSjXVQbHTUYTU/tluTl0X0zkp95+cQpLLDoFo5pM5mg8llJGmo2qDLZEyeKcxnz5S0rsKn3HsLsaamiwSCy6SwO7b1DoYaGWhZyqDdqSCSSCs0yiSCiIb9gyKce+CR+9qv3LTzheOJOF61WA4PpFA7uGlGnIEdsh6NJFEsF5HU5mroUYiw4HQAaFUKUFKdLpZII+/s4OD1qSvFSeiQEa4qPm5sbaDfaKNZbWNnM4fX3X5ehoee1VmTrD5F/8tqIXYhmvC7Xu+9kmBwY7nrZdziuBsESsep2VZd5+K77lZfxCwsbC/j5yR/rsoi6Ivher2yX1UnQCg0TQdAUWiL+KIbjsxhKWR2LXsSQQ5YWXA1jh7ZSRb64jfFsAsOZtNWEOhA/LpXKaLxgNBLW3p87d05rnU5ndAmYQnTbHRkbGh0Sctm4Vi7VVAPy/S/f+Id9JkjkNl26cUk0EBaNxLVx8wM7vTbarIT2e9JapXo36cYseHVbXQwMDmpWNd9kaX0ZV+evIZNK4NP3P4TbD+6XFfzg8nVcW1rCteUb2iTmInSXf/DN/0ZJlKu94eLla3jrvfdwfmML/k4bqxtrSGUzKG3n9Z6kvXAgDi1/vV5XssrR0dn0KCK9CtqBDJL+OoaTUSXiM1N7MDUxjcNzlgN8cPkG3vzgFCKREK4uMlmua3N5cKcndmFqdFLtsJRdjcfjItERpDjxwWsolQsynQxfiBoxt0qnBpWMW4cDSYot5LY3MTY4iN969td1EDaLOXz3pz9FJjOm14iE48orGAsTJKDl5uHhumgmJEMcMpddfYJf85qYrKvBPC5DP+YCmvJLOSM3ftpLvFkg5MFkTkFqDek94iYFSBUJKESkhzTpWYuC+BqcBSMpBJVH2BIVEMHPq/+IHSxPbwdVdSQfxKSmVM6Dd9yPbDKLvo85lg8vnXgB55bPONoQK9YdCWNY4dqJ7Xkj4JTqGFIW7CdwcOyWHcEGI+FbGsADY4AGZ8w3BOmXqyVJO1F3S6/ggId0KotsZlBGm15vZWVVF4DiDDTOzDHbrYaAAurx8pxxPZj/+X7/ud/sbxUqin/Z/82RzIQupYjhJF8Ym0eCLCjZxFombYzFOV/OHwjLojY1qgvotljNDePI3Ax2zcyi0epiaW0N11dWNQbaVDCoH0upmgDuPXYctWbbTdNt4sbCPEq1sjhZbc1sN6oLi2le4kU4l/MwuCGs2tIiszI/FI+g1gkiEeiC+ui8dNPjU6InJGIhNJttvPL++1jLrYnHtLo+r5HBojr7gpiZ2I3B7KjzmAxToPyEB/TyjQ/FJhjMZJFNp2SFpkYnEA0HcP7aJc2n4IqxgYeI4JEDh7BrardmYnAt//z738bU2D6srK+oYMgPR8MBdFAsb1ktg5XfdktrrLBux1Ja/wWfU12aO70p1pPDQ+j1uOtyuNnrSiFcj4eEJXxh1S9YYBNLl3vJuJ7KM67eRPiXBUfmRB5bW/iVQg5TfCE6xRzLVE5YPzI5HYYnfN0Hj94r3TINcvVzgGoD/+XlbyPfzEnEXMm95IOsJsObSfPCEM7KTd5sSh9G4qOYyu41r6MHcpfE9X+IzkMlRYZbzIubVUwOZjHMmSA0xI41EYkmkEymwcvCeZX5QgGrqyvKE7ln/BACYzoGOmiaMZG0f/CV3+tzpG8qwdZGQ5KEWnDehEtYPPH2hfV1zI5OoNYyLN1gOOvyMogWyKSiOHbLfiwvrWBueka1EvZWs11SlobsUI3wY2jDhKmD6yvLmJuYQJSXkNZTnWicgW4JHheGVpuWkgu4vLaByfFpFcqsiZ+9Bq6Zn1sopUQyXRuIhoNIRK33eqNQwbd/8j3ce+h2FCrb0mpVvtinwgbHO/iRiWcUbnmVY1rOWq2iNuBd05NaXNZDCEjkyxVNyF3PbWArv67aAes/gwND4mKpC4BFM8Ljp9/BQGYEK6tLOoC8oB69e2XzulXp1cjDOYCGJN2ESm8yjbzWX6+yrD1wHlAH2lWd7b0VjBiMG/Sr9qFpxQGib9ZAxfzTcf1cZ6UVCuV5vB51inZrlEFfSKQEGJzEu9UmGDr50Wi0sF2s4KkHnkAkwPHZNlCHodHy1gr+8pW/0BAjtQe7S+Jxn0TFF/nVqPREFokskY6SCU9jMDqs0N+bQmWNc0aTUdsBOXCtliB40lbmRkdUx2I4yoJyvdMUTy0ZTys0jsXj6LRa2Fjf0Lg+nk9V74kA0nD1Yeruf/Tlr/d5c0YGBgVxJmMxJS4mRG0WgsNH+OFPXriA0WHOyw5jZnRUuQgtpA2F6eCdc2cwv7Jht7lWUr8DrQITfzJqbcvsPzX7q0uxh2KloPpJKp61qq6boccYPeij/ArDMSrekeRYUbslqc2hUFxq4XxdDqNhfsADwIPABIyHu1jYQCY5iG6niXw5h4fvvBfTI6OWKItQRy8IXF9dFmo3NTKJMTbpcDCMJv92JSzBTTNx5Dq2S9sCGC4vLWNyeEAFVnb7EXJmLkYWAENMDf/p97G6ncPCxgpmR/cr/GJIyU3gJq/lNmw4ZZ8VX+szUahjFFonV2N0HlNYcb/cnTHdMguT+HVabUOeLETipSHCpSE+LqRgAY8sWY04cO3GfFUVzFS4tHcxD2LNdGKKC+lyREYhj67JyhlKQsuFShWH99yOZCSLSDQlo8dRD9zz1z74JU7Pvy+pIZdIOHDrIwqcovy4CQFsjhLCCkyn9iof0WY5CNZDMWWgmdf12g5er8v4zY2NIhmJKQHnI9XqNcQTMaSSgwJ7UsmEzsvWZg657W3116snxhknUZ4eueexvkrxIVZSqUlrs6y9/nJh/a7PuNVlSEAXHdL38f9y8a5dlaiCp9JI7o+f1knkBePO0GrR5ZoggrlM3n6+Lt0t6xXevEGP1uH1r/BHGC+aWEVAyEM4FEM8nkJKxaCYGKLcQB6+Wp3N/SzqtYR9M2lsMVxyBTcJAbDmIBjSoFGGN6JzM8ZlostY2Q2jJNTMIqJUwht1hXvXNy6iVCNbNCBEi/0yrBeFpalkoAOFBziRaTI7gNmRI5hfXUY8Rm+qETmaCdLgHPlOC2ubVzWGQXUVzgMkdZ1z1P1QWGbz6XV9TKBB1tNqR+VaQxciHosor6k2O+j12irMPnzfYxgfmdQMEl5aeUjNUNcm2GF1HXW2MU6EwY7vTu+LMbdvKrxL/zZg0KuNyeiiXq9h4cYV7J09IhHARDyDZDSGWDyKQmkL33vrO6i2SX609/RE4LzeJfN69rnU0t03ik0ymMFMZq/OHOtQJnToWovV0GbelyES95o6V/z/+EAWmWRC59vuOn8mJMMaTySRSiTFiaPRXV1dQ6VcVZPezmSxT338s0rPeDA95QprFrJQx2JEQxAk0e+0dI0xaUffI7HpL07QQB1nzs2zyqxeYVkamxolmNHJrnxUFkjL45RPxMMhrybGwx9WopXJDlr7RoiFJiqFW1/E0tKS64vooVwuyKLQcupBJadvjGQiYWoZdvuuJiw3TMYYFt5EVlfZ18GxfxOVgtg+9a06dVxcPanLyEMyPb4fe6YO4P1zv1TibyMMaFwCKmge2XUUxSrj9LIdSkY9gRDi8YRCMC7KhctvKmEnMCADxcKfNKiIskWcnKs1HGmpVTRrKxxazVURD/sxkIrKW1fbPWxyKm48iicffAq3f+xuJaFqaJIx4nY66RxBvk6GUIiUeS9rb3bWnqGvyz+Y2Gs2SLeLC5cvY/fcjPW+uDzh1Vd/pByk3fQhGskolEzHKdgXweunX8d7N06YwqELjwxUcAosXi+9+GRM5I1fxnA/ExnFYGwM0WDUxBtopGWMeopabGaIuTvucaVe1l7snZ4SQBMjszkcQrPREkN5ZmoG0Ugc0VhCv3mBCvk8trbyIjwyz/J9+uOfEV5HV+Y6eC1+ltqiFeJUqGFYpA61m8MdLf51WZaLfbmxRFfojXiY2J7Jh/E6EM1SeXq3N6mgfDBae7OMVEIx6NWSM8PsLSGzZp5AKIzR0SnN9yCaxcJaKpWS8JeQKSIv7Y4wbx4wEur4bpbbdHQABEWHwtguGqHS2lhtZqInqi0KjPRljf/Dy9jtdLBRWcb8xkWtB3Mpq5ibxzGNWE+0zFo5E+EsBuOTxm1SAYy5jHHURsf2oefr4Z33/w4BvzM8pocjzhjXQDPsNW7BRu1Q1Z4HjM+VK1QFGyfCfiTiEam3pEC1AAAft0lEQVRHNtpsxCojHg3ivmMP4v57H1NuqbHUXhHMoVRex6DntQ0B2jHkO3+2C8KaWB+FfEkX7PTZk5osvH/fAUU/9HbLKzdw6tRruOPIcayubSOZGJBwQzoZlyH+7ms/wPXNS67WYCCDOh0doOBFkTuCfX0bYc31j/uGMMK24wgr4xaCGQLqpgsINu44kmtLRW4OhlW4JUNrQhnieYVCuiCkHvESMxphfsgBpLkcRQxb8D19/9N9olBq8LHWs53md3tTZ+ndOGFyinamS7mJqEZHZjjwEQq002ISL0dfdrMHDcVzEKYhYQwxGqSPuAYsfh5af8b2OzL1zpJ5l9WqqaaFxAOs274zgIWvf5OVSlTCAAhvtJeFPzIERJPkUZzgtou5xVD19JRc1xxX1ZRcuri8fgH5ysrOUBlVEp2oi3fg5KScp0pFBzGV2StSI8M0xr6mvOHH3r13iPX7i3e+j16/JRqMntMAf2egbj6P1SPk13SJVHfzhOxI71YxmMTEngp/+3cfwpOP/ZqsJ9+PPRZV0utHxpzUqlH4bW1vBlXuiojNK68OoNXoodv0q35Ag7CwMq+hNIf2HVYjG4ePBkJtvPyL76vSn45xwpfpWyWjxrDlTMy//OVfoNltulqI5V48GBr+KvlWHmKnSuao7j4qWLaBseQ0hhNDAhi0r6qAm6rJTqToxjuTL1epc3alH7snxo0F3u0jFooqUddQK4am8aQQLYa3bLLjs3Iise/pBz7bZ8xNq++FPHwIIQZO/c6chBcv2uB5CTA7ujYvCC3rRzWIlPQ5pXVTmHDK3Dwx7hDydVkl5xATzu6gx0olUrLs5oGcJLQH8XkmzmMtqLfcwjANjNxhZDJssmTTGzPNMMir1ssbMFRUH3dAh96TyuQBinHATSImNjALgNTsqtQ5Pti8hC/Yw8lrb6PbY8ecJcO2v26DhBy5bkttSBe8IHNDBy00kiFy+USvh9tvvQ/zq9fxpjyIMVD11R2lQtfrrbjdTUB1RTarQRDaNePG6Id7SS/stZMOZofwxc/9rqBwWv1atYqN1SXsP3jYsXm5l85bMxF3crIWxgkrtoCOgMPqKlYXlzEwMCbOE8OtYnFbyocMN4uFHI7dfScWFy7hxDsv4Ojhe9HvR9X+zNzI4S84eeV9vHr2l4ayuTmXikhU47BWBoNozVhYzuJCU18Yk8ndGthKWjufn15PcDP3laOnDWK1Ds92S3B9LBzA3PioXpdQejbDBrCAanhETPk8bNsWpT8c1Wv7nvnE5/vcEGmqMtTy+hI+IuxlMalBwF5S50n2CNd2qtnSXLKRn66t006swZb2oPZVM6vcRCZ1bOmUAJgIeybXopmIbsCJCQi4e+Uwc76CxkjTe5BV6sn9k0zIA0a6hZs5IupAMKBkUhi7VDvslnkUIdUBVKTzYXQwjUSUraD0lj1sFIooVdmbb1ywa+uXsVVddOMc6IkYDzt8zgkg6DK6nIY1n3R0CHtGbnHvacmlhW19fOKeB3Fx/hLeOPkzpJK2Dl6YYzm0QxQVp/Pi2BrSElqI+9Gim0285bfUW11p3RJtfPbzv48YC2WUfC0WcfX6edx17AGL/b0cXd7dqtsWJNrl38gVBZXH4hEsLd3ACy9/D+FgDAHmAhp7wWfhKLsGIrEovvKl39El+9lP/rMS9JHsLJIkkMZTQvi4MWRo/PWrf4GN4pohZt6cdvWq2MWQwiXLDrw0O4ieWaNkMItMaEQ0J+21y4UZRqp9VroDbC+2+hERSaqpUFxy7/Ss9MAIpvBCeFR98v+YewRCEYVdRCp9zz32rLX0ezIyIrzZoosGvCP85g64wijHs3d6sEzWSYvwvIwkLrW4DG0saeICsHpL1IivIAiSvH+nZMjXlCixpwPrpCp1EJzSCA+c8hnh5RZnmiiAwZqKSYnv+4KOC2biZN7cDCa0fB8WQuVRpPzB12GuZPPFzfOZsJhFOKZ0bqie0azfvvQWAkGS5ozxKvyB6JAKPGZ1vZ4FKyX0kYoMYM/wLa5/wvI7hXC9Ph6770GcvHQaJz78JbLJpCE1bo6IGSdLYNVXw5qDelOsTqSD5eoHntA06epqcOoylNNYYTz72W+KxKmQst3GmbOncfsdd4t3Zbq8TuvKjdYjf80q531s5UqaJ+/lCtv5Ddy4cU71hsI2i649DKr9YRhzcwfsffpAPreCl1/8K9x9+8OolOqYmz2ELpFCd+FXc2v4q1f+1KFztv9mGJ0gtdPa8iSXBKKopGMjFYLdOKYGZxEO0NpTMohfo6E3YquU9h0NhuvF3LTSKEsQe8/4uCYchwjhIyBmBnMOU4JsA34Wo6PwffXJL/VZ/MkVOJjG4F6LZ4MIR0M6TLoujkJNWnsiElGiqcqnDmpXlXbefL2Rm4HNIiATZV4YfvAdrSLSz5stHUgnVSRVO14gD+vXjAvRGEwOxpVYdUHYQdgULZydYTaeQGGWcg1zw+qQc7wiHi5+Vn4PQ0GR/4IcHGnTfY2MSeqGgRNWzCXEaKqDEjTjM3X7qLWquL5+FcGgXXpFIKR0EIkS2kc5a9PLUu9KKIZGs4JkJI3JzJxQNFpPWnWBIH0fbj/0MQlXXFs6p8q8lxXb1ChrLRWq5MIdelwLI9zoM4ajrC6YyzUyihVTTKneD3z8nsdwaB+VYszzvvj6W7jztqNSPaGggRyqads4npStl9VjPtKWyn/lnXOX8+yZt7B79yHEk1mL7xy8bdyVLl577UeI+AOYGturXITIIxWrWYfhE71x5g28d+UdIWy2c57GriM3OkDHEna7QCw7qBDc7SMbHcVgfBjhIGsdrPjTENOLuG7EHVk7g6F5caj2MpRMYNfEuHIj7gf3jdVzvo9aFRpNXXzfo3c92qdV4i+OBeMEIzEZu2R2hhVWUYpmq1hQ0jw5MqbCHxeNogCkEbATbiBNindIH44Hjxu7XSrZbZdUpFHDjQbOiq6FPDxYCsmkccTPYImkffCOFXfYu00L0e8JYSCBj6GcPIoq72SkhnRRaR2pZiH+EvpiFzOs42UhjT0VtxgzHo0IGtwuFXUIOD1W4EDIBtPzsMnbkVEQZJ7i+qUdJEqaiCfEzZ4Ssn9Zc6AnYw7Az2GVbTt8DPv4+jQ4ZASzX4aHzBMW4LFmjUiv64xJqVq293aSO6yxqF+E5EgpwVP9wybASizN50OpVlUvCA2dBWdM1MNIJ9MYyFLtxA6eKP4B0nVY0Q8iHCYx1UAWejAepBbVTNhzEolqHSlsl4rFkYhb56mBM2QssIvRipnqIxf8yjqZXx2UVy5/iMnR3cbyddEDX5MDPsnn2yyvyDN6nDBbL+vGNFFqkxH1YFyRQ1nE7XcQ9EdlfDgBmeEVIXivO1CGnVJAYRYqTSWeXxRkz7A3TtWbqPJpGiGikbzkXGMZABqw+48e73NhKcfPD80DxEtCK8RvvLa8gHqrhaHUgGZH8xDw79FQRBvBuW9DAwNIxhO4wkYgFg7p4ojnU99JYY8tPukcE8ND1kyvrrM+UlHOf/CpCKcD6rSYuEmVSk2vI11ZFwLyAiV4EAkLN7lIHL1cl4YVX5Obx0MoHaRQGOVaRTUQb/AjLyVn0zXa1n+9lV9DNBRDJpFASYPmrROOk634vjzswwODutD1Bi+mG/PQYS8HoVZTBqGyIfMoEiTpnbjhhTJrHn4xClR7YdNZo4FasyY3TziWB488MyaS06PjKFfYsw2xFxhbsxItgXBAa841ZKGRwmtknZJLxmCoodZfA0pooDhGmfws9Vb3gYnhYbsIkhyyGgY/PMMKFlT5i9w2NpypVdhdRvXhSMqoLUCF1ZBEPLFDI+GFLlaplFjRYeZ7so5jc8+5jiUUqC08OKpaFntceOnEUVOLrjMkDCldNyXXhe9vyKo5VF4YKe+w+s+D3qOBbhpZ0gFG3HOuE9eTbA/+u4ilar8gatjTfBbz3BSnqxs5M8jio4X33jnkqGrV+Y7fen+fVpIKf7wxdLkMo8rVChaolRUIYDjDfvWkblUsEgd72FlJD4ZZQ8grzOJl4QemtyClgYedC0R0SfKZglR6SCdTmj1Or0B2MO08Ey0+HPlN9BoMediIJXSMTVJuZgOtE5PBcr2KKkdnsZbBzWChqN2UxGUqkVEzExGJVCIt/L2Ptg4u8w1uqOQpg0zEori+cEWuWszYbssKgZ2ODiE/B9tx+X5E1kg5oTIGN0hjAShZ02oiGUsgETNYmnE/UTk+o/WGd1TlL1aqspZe89AQO9oSSbUjVxvsaajh0Nwu4fEkjbIVlPQd/hpIZ4Xhs8fGo3uY/har5Qwb2jpo2WRaVrdQLqBC2hBF47o9VKs1hcgjQyyyslXWIgP1mPQ4RZgTlupK/pPhqN6Tl2Jze9tB6dZzTr4SD5WmiwUplVpVAkweHY3p8vqq9pEHmWtvUUZD2lrch8mRKR1ClgrqLZtfqJ5z5oVOUkm94zIc7Pe32hPXlkaX/8Z95Ncp3s11lUpjlXUgrrONTmNIHYvGZejoyQniKCxT7G2Xk/uyndvQmSc7nZfIQ2U9yg3Piu9Txz/Zt0KexfEmEdNGpVaWpRjODOkmcQHs67R2Hj07KjSAG5or5PXh6H3EgoRffCg+IK1xOpnUA3Fj6NrS8ZQWz1OgsHc3HVi+Hi0BF5tunhNIDUbu6oAzjOABlBfipUilZAV462NxVkSpYt4xAWM3osA0bF1i73qn6Y3o1nl3ufHscTGOGKkdEblsFiG3iwWN5qKH4PPlS0X1s3ADuGE0KsxR1ArKzkDmDUG/3o8bwcVnGEitKh5mhompeEpeIhyNitIv+nkoKgtMHhE9hXVQ0jNFdAllDEhzDwblRSUQzrCs2cTa5rpZXCbhzbqMCteKFW6K1dUaLY0xY0jhzW3h1C7mXkRvRD4UXb+NTDqlz04aealS1jMOprN6DnobDU5SzYm5KscpdDEyNCR6D0fMsUA5qmalLNqSIcop0hjJDsqTkJxEgy35IcGyJkQtJKzD0D4kXp0EH2QU3Sx2jfJuKKdlXkodLW4wjQv7cKSUkhkAybfab7EmrEBMo8A9oBYAOVbKZXkJ5XVN8JAtHzSUFKOTVgDP5BP3PC5dLN4wxuRruU1Zi+mxMVVvKeSVYrysi9EWP8kSXFouxnsW0zEm5IeJs3TPpNoHtejq4PS7ekMWYbjAbB8dzg7KpfIbldi6ZJmvR0UMJujJaFwaSmyG4QEhDZ4PzdwnpV6NBFptqgdmZPEZznB2SK6Qk3vl+1kYWFIPNzeJMTcPIyNbMnPpuqt03aYaq7jctVrL0snLiV5jAg+8xLT49IBGCzd2qokm9ITmSQDapfssytEreAbI5s1zOAzl+33yqGs5ji8gQmZUdG4Qv58HnqqRXB96cdIueAB9TCj5PS7G5kVmT0y+WDDFkjDDwmG0ajV5d853XMtRVbFvlPqO5RYCWTQNzI9kMqU+laW1JYXStNA0AApJvDqEIw9yb0ulsp6RQnODA1nki2UNQeJe85LxMtPyM9zh4VtbX9U6HZjdo3xieDCtQh9lYCmeYJbMCrg8CzIkzOPIVA5aAh0NGIDEC86wPF+h+HUA8QgH67BlIyAvzrVkZMa1Z1TD76HBkhgGfFJb5IVMpOLysB6qKf23NlVlLHfU/n/hE5/qK96naEGJiuMRTI9P6yZVG1UTjW63tBBG4DL9XX54Wm2GNrR6TMrIdKV1FILUp25RWHH3YDajD+E9sMS/GKI5d8iHZ7ig2Jjjr+p1/Tw9jGoTElM2dIUHmtV3PiAJixyNnCatOhhAuVYXXi/hCXozXhzKvBRyuqiMsbnp9EyCnUlBUcJKYYaWiUnImgWFylEFRJ2VmlvBZyYVhm67pWezS2J5CEMxXTzCj6EQcsW862V3fCZByhZyMURgATMlBQ5Iskg0GkHKfQxQmKLZQKluIQUtKsMAKpWQ9cwQgLymGGN1N2WJ3nVxZUn0fjEjwlHJ/pClmkzGEYsRBjUQgGtMg6V2XjcHhGvB5ydgtprb1DhnL59T3cXnk76A9oUGjH3+kbDyKSGYYlwzjwxor2nEuE98n0x6QMbkg4vnlYPOTcwob+HMeE8BhV7EY1jwnDHs85RNeNGkGi+rY5pfLOKp552gRddQPXlvtks3SW0nVy9qYAvXXYIW1pJhaBYNpY1yU87cNrCIe8Dz4HEPfY8f+0RfE3kCEcnhswedP+jK6mi1m7KKhjCYkBszh1qDiu0JMR8Jt4pp65ixRLDo9vmGrN7yw0rKx80Gs3zEJ4TKqCgMRywBVoXb6R7RKjC0UejAYmI4qkXjZaIXo4eQJxNcbBwxejFumPpHJMNv1Hc+Iw8mL7EVRilOYVOQ6P0qVWOYMs7nZjMJTsfjQkCYnLJbks9FVy2sXlOTrLvNLrBdIibdPTW/Bqz1tl6Xpab30fwTb7g9IXVnWGhRK3VDn7xaEC8x142HnD/DMJVrz9BCdZV4QqocTOSZDxLMWF5bEa1CHZJ+hoek8vO543pmu8CeAjuVT6jnxSjAL9CAr0sImWouTGL57FwfIpEW9vpkENQspQihhkK5qDPCsI+fTSrvTn6OSCgJpnwWPjs9L+Vgh2i42N7a60v9kvvJQ03jpVqI6jcs4nGalQlUs07l1a3E7GarRcvCJ/4yqNboJjTSOhMO8hVfS6LqjkfYNfSM604DxfyNa62EPRTWeSfIorTi+JF7+kySJ8emXExrlppVcYHoGjVg1kB925rgSmkep4ASZjhgcqHbpQIyiZQLnRhjdiXeTHq42jj7pLAwnOopjIqGwkJmyvUKKoRjRfYjumU6ULxcJpBsi8ADJRoArbYjp0kEWl14RCqC0q1SLhYIoNZsirKhUI5zJCRCxmdjjGo1A1o75lrcbE2F1bAZVUeRTMRNPwvG2+JB4PuzeYpGxOspocaSCUKbBq3378wvvM2it5TndYgQAQ/G90St5qam9X38cclwgg08UdVIaOV5wUjCpPtnWMnQhF6CzxMP2xRYikbwGWgZaXEZEVDbjHs5NsSeGVbW6/J6UfXg0/u3JbS2kt9UDWd2fAL50jYKzLFSaaF7yXhMobIJO7NizosTlvhdo1VDmo1G6Ot7sum0PhcPKveRf2a1mq6B60wjytenxyXowSYsKm+2Wob80QjtUJpI6JRXo+JLx2tI0Xp4Ro4HmfWwTDxlvfbKlV1jnRvHzTVtybuH9CxeTYtDd2iQ+DnIABBgEKaEE0EKGwgkLsGXHvliP5FMGRWEF6Nr3H4VTHggQiSmsa7hoepU1wvpg9lkHqd+51ishvdz8Ivd4g5vc5+UB5MGVc0jRDUMS3CZNKk0pze18IYJM9EoxsHqwWBLreomLZEYFT6o68uk95VQCYdn+NUSmsFjpjoG8yIlt3bRlIyS0asOtCZKtYpQO2MLA4koCWxWUOJlYZ8GV4PWxIp29E59HTQeRs1c7zCsMlfNZxchUEXMoOJgtQpTgIF1nRrDR8bQJp/D8CASYg2GShwZlErWU6KEv9NBlGgfkZdOW2IVRGfkqUW8hOBMFtmKlbK1yfpZ7I04Gk7XadASGg3qEvJQ87lGB4a1dwRcmFxr3nmHyBnDaYpFdBAkF0nVw46MCKFhMjhoBEQilYIJQ2NvXDS7Wazwyj4YUvlpJOlVue5i0vZ62NzeVM44NDCoNeX+MlTnYVZxmUhmwCB/77IpHOTX29ZKbXw2KqMwbyC6GjGxa9aAGPo1WtrfnWGWMGF1ETKdOATPOKMHKm8ypCUIQwEHGlzuBwEZ3zc+87zYOKSNa1a663FmiMLjTHhOE0ClhmkZPz84F6vRbugg8MEIgZoFNbqW9JBYyfbxgpkiCReVIQ8fmnEhcwJaOV5E/iAXkK6eL6Ouu3bXki4nwmw6GFQODKPOsQyuI06S/OqhZvzLmSPmpaxtVVdSvxkH8xctiajrRJU0Qy8ib8NLRu/AyyvImngLE26R6YzYSIyeYQ0vrkAKV4VXbzer5yJoGlZPGDSToGwSXTkxebbTsqXUkBlaPI8uI4xeSieWVErMgR/SMQIkTtA0ETsZAB8vb0fKMISDGY7yQjLJTzF8Yazu4nL+n0ABDU+1UdEBJoLGw8hOTL4NLSy/zvXyGuE6fV5oDvJhaGWAB1+X+SjDNeZFXCcJOrjeEcLyuiDsYpRXt+lPEqFwiBzDKmoOjw0NYyAzYEhVv6/14pbxMsjbu5mWan+W97LWBuWIKlZ7vSrWaqw2BvfL0gHr3REowc+UIBhlk3F5MVgxpxflZaVzUA1ExFvXYkDC7leeeK5PxEddZDpIpsuqSqYKN46f5GcVmImTqWIwfqNF54uqP0ExXBDlclVjCvh9pMNIVC7IekJjh6DIMIeHksdd48PIMG3UlXTSyhEpIwoiIWqnoCGLTmhRLFcuItthe7L4pC8wT+DBU13A1TvYe81Qjh6EdQUdum5fzfvNThMx10Wpn6XgQsw8ExNzxsvpRFwLxwtutZOQDj6vHDeTHoQqgfwl0l/AJ7RNGLxEAAwa9yY4iU8lGVErwioUdFVzITfkV7W7slzemDNeYB0QymayUMdLJZoHe1c6goZ5OPjczAFULPNzfSyXcNIhiEYSUj4pl4oqHtKg8XLSgys5V5HNRsdx7ymkRt3j4YEBWXm9t8+PhNpXrWeH4zGEKnW5tkSYeOGpvm6Cex/l8zGh597qs/r6WN9c14EfGxpx4g1ivimn4Fmgzq7XNciLIIOkqMRqXsYMJgOAoxc0EE+fwZttQgPJw29cvK4ZJ59V+D3lSSuoGmNEoRl/pknDaLQl9uz4nnvomT5V1j1ujxIeIi26+eb6IoEwEjEOqqkZiU5UeJ+643jjGLcxdTdtV6OgpFMJq4KyDlKvWQ6gBMzmC3JxCNXRKpqShkkNUQiMHogHSZbQKd7wkIh24hAvhgWEeqmawn8TsdLRHWg1aAX5miVOKXID7A2J6ijBpUuVGgtdN3V7Y1FZa14GzVl0eRUPHkei0esx8aWJY3LLC8qDykTSgAUeNiJhUb0vv8ZnEKHRU4MRdcKFnSLsWV7FMIwHjT/L9zdmAw2MzQpUQ5bkbRiqGLGUxkI909xwX0CNYURfTIzaEnC+Ji+gQlAS+Zxn5R57pEBDbEyNha9nCic2pJTvR7E83jiGoWRR8P1FBNRoARcGkVclQY2+1lekTkoRCdqnYbEcUAednZ2dDkrVCrYKWxhMZZBJOqEMB6nzoHpUGcLc3Ffr6bH+JOZifC6GVgzDPZIpjbLRXswIaZIwi72tlqGgYjKYYRWxU5rAgR2qjO1ZRyWNII0NHcHT936SwbAVVLhhhA2ljWRdeHRVnhoGL4jYyqwSk0fED92H6ghUnwj6OT3IEkt2tlHlQhpT7GUXpOsYwSwGRUj3aMpSif7AOYRCkUz3lYvP6rGEAYhdl0sKvSRO7QsogebFJO+KnyOqXmVSPijQzAJZTDwvFtyU1IWsEtyj1H7ImvzpOBlzazPE47KxA0oOIyGsb25oQflMrFdkkmkdQF5wbrAAXLEtDUWTl/MHMTg4pEo/P7vRZGyuu41nsFyA1p0XgDUmQpqy5PRo4jhZHK8QKBJzjF2uc80mRDlxBYWzomSYrizDHW4+jQPzKM0jYdjmPA7zFRo/gi4WiprkrBd60oPxYMsYOPEM0sZ5qI3dTKXNmCXKDYP3Ge7ZzA5LI7lvjOENLCAKZkwK0sgVAjkPynO1srmqz02DlUgQbHANYMpBWGyl2Bv7hExYW7mOPrMhTHx+hn667E6bS7PZWWB1LRNiiWtSs/2mwSqVK06PjOGkkUYZGgoQ8lvRmDmQhOo+9+Cn+zzw3BxafoVbPatO01t4XChaNOLwtLz8JcKacH2zOJaoOSRHcGAIN1aXdNkkn+LzIZM0jg4TKVoEizlZ+mcibygJ1e2MFWrJP923xvuKrGYuiRBsi2opEeLcpmroWTm2qBrpzq/Ykgkb0Z1Y1OBoQ4XMQ3oiEbx4y+vrFipGoqLH0Bqxgs5fDPl4SSkqJ6vtDfwUvs6Qzir/hvBEkUll5GFYcR9KZ3VwqaBRrlZ1GRmucNNp2XhgO9QFIwLEMJYWzLX9ypMwsVRuxaKZwXlW/bWL4oWg9BiM+3ngeBCZL8jzER3imALmQJo/yGTfCrF2aK3ORGicQmmknrCdl57NBOSYWJs35PdwLXhO+Dl5PqzmZR6H+0SKD/eE60IDws/Iw2siEQaE2EH0az3y5aJkmlgyoAeS8kowgKJyqpD2XeclZJaeF4RrYuorBDks7+M50WdigS8YNBCJQ4A6xtdj6EshQOtgtaK26l4dAkAsURjtxVOu4eeUoPXnH/psnzfcagPWXMKnIGzGS8OF5ybwh4vULWUVxPVNUETZ61dwInmCJAmJMlugDCkRAh4q4tx8OA2kZ+smK85SA4kJHuYC012ySUUkb2Lz8SiKpZJaN2mJSBbkBvOi+PtMtGh5qYVEBXpjEtOjMLFXjYEhQDSCQqmkP/MUMxciB0pMXBIdmw3rW9bMReP9EHlLJpMKMVRpZhIbDgshSyfJBjYhaX6Nn4HvnyCNRvJDpi/G7yF1Re9Lg5NMaA34RV5QHjITwzP0yzwHK+TGdLa7YHQOzcvghooaw6TTMYxdrzwNDa0d+XImvmz6uEqSg2Fddu+CcO9U/XfdlNIe5utyLTtNrY8gbNZciJCpkck8P0NXMhLIbJB+GrXIWKUWgucEIVx+SZhZ+SevAxu4yI9i3un6zunB2XhDeVQauJGhARkwkyQyYqHaqd3UW64dL4lV+K0NnIfaVGfssDPncG1ruiCaUEbIGY5yJDoWwRA2dxGBjOhM/f8D1WBgMdCdiuC1WqC1bZBFtwALhwIIOrhvswAAAABJRU5ErkJggg==","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"img_0.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[81]},{"t":59}],"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[100,150,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/image_test.json b/external/rlottie/example/resource/image_test.json new file mode 100644 index 000000000..e60c95531 --- /dev/null +++ b/external/rlottie/example/resource/image_test.json @@ -0,0 +1 @@ +{"v":"5.4.3","fr":60,"ip":0,"op":60,"w":800,"h":800,"nm":"test","ddd":0,"assets":[{"id":"image_0","w":200,"h":300,"u":"images/","p":"img_0.png","e":0}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"img_0.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[56]},{"t":50}],"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[100,150,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[99,99,100],"e":[152,152,100]},{"t":50}],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/images/img_0.png b/external/rlottie/example/resource/images/img_0.png new file mode 100644 index 000000000..35ee257ca Binary files /dev/null and b/external/rlottie/example/resource/images/img_0.png differ diff --git a/external/rlottie/example/resource/imprint.json b/external/rlottie/example/resource/imprint.json new file mode 100644 index 000000000..cf7c2f41e --- /dev/null +++ b/external/rlottie/example/resource/imprint.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":24,"ip":0,"op":72,"w":320,"h":320,"nm":"preloader","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"check","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20.5,20.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":48,"s":[{"i":[[0,0],[-2.667,-3.777],[-10.816,0],[0,18.02],[0,0]],"o":[[0,11.59],[5.826,8.251],[18.02,0],[0,0],[0,-3.948]],"v":[[-32.763,9.036],[-26.427,28.344],[0,41.799],[32.763,9.036],[32.763,-30.549]],"c":false}],"e":[{"i":[[0,0],[-3.336,-3.703],[-2.453,-8.306],[-11.95,19.02],[0,0]],"o":[[12.513,5.208],[6.552,7.274],[2.797,-12.556],[0,0],[0,-3.948]],"v":[[-32.763,-2.964],[-14.177,9.844],[-3.047,30.049],[12.451,-8.276],[37.388,-39.049]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":53,"s":[{"i":[[0,0],[-3.336,-3.703],[-2.453,-8.306],[-11.95,19.02],[0,0]],"o":[[12.513,5.208],[6.552,7.274],[2.797,-12.556],[0,0],[0,-3.948]],"v":[[-32.763,-2.964],[-14.177,9.844],[-3.047,30.049],[12.451,-8.276],[37.388,-39.049]],"c":false}],"e":[{"i":[[0,0],[-3.336,-3.703],[-5.953,-4.306],[-12.138,20.582],[-3.612,11.708]],"o":[[5.263,9.708],[6.552,7.274],[10.547,-8.556],[9.99,-16.941],[3.612,-11.708]],"v":[[-32.763,9.036],[-20.302,27.719],[-3.047,42.049],[23.138,8.161],[37.388,-27.049]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"n":"0_1_0p333_0","t":58,"s":[{"i":[[0,0],[-3.336,-3.703],[-5.953,-4.306],[-12.138,20.582],[-3.612,11.708]],"o":[[5.263,9.708],[6.552,7.274],[10.547,-8.556],[9.99,-16.941],[3.612,-11.708]],"v":[[-32.763,9.036],[-20.302,27.719],[-3.047,42.049],[23.138,8.161],[37.388,-27.049]],"c":false}],"e":[{"i":[[0,0],[-3.336,-3.703],[-4.453,-5.306],[-9.638,15.832],[0,0]],"o":[[8.326,9.208],[6.552,7.274],[8.047,-13.056],[0,0],[0,-3.948]],"v":[[-32.763,-2.964],[-17.427,13.844],[-3.047,30.049],[18.263,-5.214],[37.388,-39.049]],"c":false}]},{"t":63}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":48,"s":[0.109999997008,0.109999997008,0.105999995213,1],"e":[0.713725507259,0.792156875134,0.282352954149,1]},{"t":53}],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":48,"s":[4],"e":[8]},{"t":58}],"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[140,150.756],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"check ","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.307],"y":[1]},"o":{"x":[0.013],"y":[0.99]},"n":["0p307_1_0p013_0p99"],"t":0,"s":[100],"e":[0]},{"t":24}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.312],"y":[1]},"o":{"x":[0.294],"y":[0.878]},"n":["0p312_1_0p294_0p878"],"t":28,"s":[100],"e":[99.722]},{"i":{"x":[0.962],"y":[0.161]},"o":{"x":[0.75],"y":[0]},"n":["0p962_0p161_0p75_0"],"t":30,"s":[99.722],"e":[100]},{"t":48}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 2","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Обрезать контуры 3","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":72,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Кривые preloader","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[160,160,0],"ix":2},"a":{"a":0,"k":[140,140,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-5.442,0],[-1.701,-1.379]],"o":[[0,0],[0,-5.442],[2.347,0],[0,0]],"v":[[-8.053,8.917],[-8.053,0.979],[1.841,-8.916],[8.053,-6.709]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[138.158,129.583],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[5.442,0],[0,5.442]],"o":[[0,0],[0,5.442],[-5.442,0],[0,0]],"v":[[9.895,-14.386],[9.895,4.491],[0,14.386],[-9.895,4.491]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[140,144.947],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-5.088,0],[-1.541,-0.357]],"o":[[3.676,-3.002],[1.645,0],[0,0]],"v":[[-9.12,2.404],[4.331,-2.404],[9.12,-1.858]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[135.669,106.459],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-3.236],[0,0]],"o":[[1.304,2.754],[0,0],[0,0]],"v":[[-1.017,-9.027],[1.017,0.037],[1.017,9.027]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[160.312,125.348],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.72,-3.921]],"o":[[0,6.579],[0,0]],"v":[[3.869,-8.203],[-3.869,8.204]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[157.46,162.819],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.714,5.348]],"o":[[-5.895,-1.591],[0,0]],"v":[[6.757,5.505],[-6.757,-5.504]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[127.72,169.71],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[118.671,144.313],[118.671,125.385]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 7","np":2,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[107.237,135.045],[107.237,147.876]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 8","np":2,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-18.02,0],[-5.913,-8.655]],"o":[[0,-18.02],[11.213,0],[0,0]],"v":[[-29.916,16.382],[2.847,-16.382],[29.917,-2.018]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[137.153,103.826],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 10","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.519]],"o":[[-1.275,-4.114],[0,0]],"v":[[0.981,6.499],[-0.981,-6.499]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[96.784,171.468],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 11","np":2,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-12.185,7.891]],"o":[[0,0],[0,-15.517],[0,0]],"v":[[-10.145,29.214],[-10.145,7.911],[10.145,-29.214]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[105.947,107.12],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 12","np":2,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.212,0],[0,-24.309],[0,0]],"o":[[2.127,-0.318],[24.309,0],[0,0],[0,0]],"v":[[-25.356,-38.039],[-18.841,-38.521],[25.356,5.676],[25.356,38.521]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[158.841,109.355],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 13","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[24.308,0],[8.114,9.172]],"o":[[0,24.309],[-13.135,0],[0,0]],"v":[[38.645,-22.098],[-5.553,22.098],[-38.645,7.12]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[145.553,187.068],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 14","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.026,0.7]],"o":[[0,0],[0,-0.707],[0,0]],"v":[[-0.02,14.982],[-0.02,-12.871],[0.02,-14.982]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[84.388,122.726],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 15","np":2,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-16.128,0],[-9.757,-8.423]],"o":[[10.186,-11.06],[13.822,0],[0,0]],"v":[[-38.581,9.008],[2.315,-9.008],[38.581,4.524]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[137.684,63.23],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 16","np":2,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[28.867,-1.944]],"o":[[0,0],[0,29.338],[0,0]],"v":[[25.941,-57.899],[25.941,2.393],[-25.942,57.899]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[169.69,167.753],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 17","np":2,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,27.37],[0,0]],"o":[[-26.126,-4.53],[0,0],[0,0]],"v":[[23.079,38.774],[-23.079,-16.045],[-23.079,-38.774]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[107.447,186.191],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 18","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-36.886,0],[-4.666,-1.038]],"o":[[0,-36.886],[4.966,0],[0,0]],"v":[[-40.771,33.533],[26.294,-33.533],[40.771,-31.949]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[113.706,71.144],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 19","np":2,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-24.615],[0,0]],"o":[[19.903,11.667],[0,0],[0,0]],"v":[[-16.671,-53.46],[16.671,4.45],[16.671,53.46]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[190.395,100.228],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 20","np":2,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[36.886,0],[4.528,0.973]],"o":[[0,36.886],[-4.807,0],[0,0]],"v":[[40.547,-33.533],[-26.519,33.533],[-40.547,32.048]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[166.519,208.856],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 21","np":2,"cix":2,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,24.684],[0,0]],"o":[[-19.997,-11.643],[0,0],[0,0]],"v":[[16.757,53.666],[-16.757,-4.342],[-16.757,-53.666]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[89.69,179.665],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 22","np":2,"cix":2,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-7.026,11.748]],"o":[[0,0],[0,-14.611],[0,0]],"v":[[-5.536,32.629],[-5.536,7.442],[5.536,-32.629]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[67.035,92.059],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 23","np":2,"cix":2,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-15.423,4.252]],"o":[[10.099,-11.889],[0,0]],"v":[[-19.541,12.505],[19.541,-12.505]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[99.723,36.303],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 24","np":2,"cix":2,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-13.318,-10.399]],"o":[[0,0],[18.106,0],[0,0]],"v":[[-24.075,-8.306],[-24.075,-8.306],[24.075,8.306]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.075,29.306],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 25","np":2,"cix":2,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-18.945],[0,0]],"o":[[11.283,13.601],[0,0],[0,0]],"v":[[-9.042,-32.053],[9.042,17.928],[9.042,32.053]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[209.457,81.572],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 26","np":2,"cix":2,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[218.5,126.813],[218.5,173.139]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 27","np":2,"cix":2,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[12.315,-11.279]],"o":[[-3.194,17.022],[0,0]],"v":[[12.123,-21.717],[-12.122,21.716]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[205.041,216.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 28","np":2,"cix":2,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[13.521,0],[8.502,3.175]],"o":[[-11.138,6.085],[-9.574,0],[0,0]],"v":[[32.337,-4.775],[-5.073,4.775],[-32.337,-0.137]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[145.073,254.225],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 29","np":2,"cix":2,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[6.827,13.957]],"o":[[-13.338,-7.843],[0,0]],"v":[[15.508,16.734],[-15.508,-16.733]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[84.928,231.495],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 30","np":2,"cix":2,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.795],[0,0]],"o":[[-0.833,-4.563],[0,0],[0,0]],"v":[[0.635,25.746],[-0.635,11.69],[-0.635,-25.746]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.109999997008,0.109999997008,0.105999995213,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":2,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[62.134,168.809],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Группа 31","np":2,"cix":2,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.03],"y":[0.978]},"n":["0p667_1_0p03_0p978"],"t":0,"s":[100],"e":[0]},{"t":16}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.986],"y":[0.477]},"o":{"x":[0.769],"y":[0]},"n":["0p986_0p477_0p769_0"],"t":31,"s":[100],"e":[0]},{"t":48}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":31,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":48,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/insta_camera.json b/external/rlottie/example/resource/insta_camera.json new file mode 100644 index 000000000..945c3b2f1 --- /dev/null +++ b/external/rlottie/example/resource/insta_camera.json @@ -0,0 +1 @@ +{"v":"5.0.1","fr":30.0000305175781,"ip":0,"op":124.000126139323,"w":800,"h":600,"nm":"Camera_003_render","ddd":0,"assets":[{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"flash ring","parent":19,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[133,-67,0],"ix":2},"a":{"a":0,"k":[74,-135,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.09,0.09],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p09_1_0p167_0p167","0p09_1_0p167_0p167"],"t":73,"s":[0,0],"e":[148,148]},{"t":79.0000803629557}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.09],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p09_1_0p167_0p167"],"t":73,"s":[23],"e":[0]},{"t":82.0000834147135}],"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[74,-135],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":73.0000742594401,"op":83.0000844319661,"st":73.0000742594401,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"button lines","parent":19,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-35.5,-60.5,0],"ix":2},"a":{"a":0,"k":[72.5,-149.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[91,-152.25],[108,-160.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 5","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[60.25,-161.75],[49,-177.25]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[4.25,2.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[73.75,-162.5],[80.75,-179]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[4.25,2.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[53,-150.5],[34.25,-159.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.08],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p08_1_0p167_0p167"],"t":73.539,"s":[0],"e":[100]},{"t":80.0000813802083}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.08],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p08_1_0p167_0p167"],"t":71,"s":[0],"e":[100]},{"t":80.0000813802083}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":5,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":71.0000722249349,"op":81.0000823974609,"st":71.0000722249349,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"flash light","parent":19,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":71,"s":[35.264],"e":[102.264]},{"t":80.0000813802083}],"ix":10},"p":{"a":0,"k":[132,-68,0],"ix":2},"a":{"a":0,"k":[-340,-162,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":143.286,"ix":5},"ir":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":71,"s":[0],"e":[25]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":76,"s":[25],"e":[0]},{"t":80.0000813802083}],"ix":6},"is":{"a":0,"k":193,"ix":8},"or":{"a":0,"k":73.6,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.992156862745,1,0.988235294118,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-340,-162],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":71.0000722249349,"op":81.0000823974609,"st":71.0000722249349,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"face button mask","parent":19,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.45],"y":[0]},"n":["0p833_0p833_0p45_0"],"t":0,"s":[0],"e":[-90]},{"t":17.0000172932943}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[60,60,0],"ix":2},"a":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-27,"s":[-2,-6.5,0],"e":[-2,-6.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":56,"s":[-2,-6.5,0],"h":1},{"t":66.0000671386719,"s":[-2,-6.5,0],"h":1}],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":126,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.14,0.14],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p14_1_0p167_0p167","0p14_1_0p167_0p167"],"t":-27,"s":[0,0],"e":[200,1]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.45,0.45],"y":[0,0]},"n":["0p833_0p833_0p45_0","0p833_0p833_0p45_0"],"t":0,"s":[200,1],"e":[216,302]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":17,"s":[216,302],"e":[216,302]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":101,"s":[216,302],"e":[0,302]},{"t":110.000111897786}],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('body').content('Rectangle 1').content('Rectangle Path 1').size;"},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.204152006261,0.019608000213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2,-6.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":-27.0000274658203,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"face button","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":89.999,"ix":10},"p":{"a":0,"k":[34.724,96.498,0],"ix":2},"a":{"a":0,"k":[3,4,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.35,0.35],"y":[1,1]},"o":{"x":[0.54,0.54],"y":[0,0]},"n":["0p35_1_0p54_0","0p35_1_0p54_0"],"t":28,"s":[0,0],"e":[32,32]},{"i":{"x":[0.833,0.833],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"n":["0p833_1_0p167_0","0p833_1_0p167_0"],"t":48,"s":[32,32],"e":[32,32]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.53,0.53],"y":[0,0]},"n":["0p833_0p833_0p53_0","0p833_0p833_0p53_0"],"t":97,"s":[32,32],"e":[105,105]},{"t":135.000137329102}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3,4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":28.0000284830729,"op":124.000126139323,"st":28.0000284830729,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"line mask","parent":19,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.45],"y":[0]},"n":["0p833_0p833_0p45_0"],"t":0,"s":[0],"e":[-90]},{"t":17.0000172932943}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[60,60,0],"ix":2},"a":{"a":0,"k":[-2,-6.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":126,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.14,0.14],"y":[1,1]},"o":{"x":[0.54,0.54],"y":[0,0]},"n":["0p14_1_0p54_0","0p14_1_0p54_0"],"t":-27,"s":[0,0],"e":[200,1]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.45,0.45],"y":[0,0]},"n":["0p833_0p833_0p45_0","0p833_0p833_0p45_0"],"t":0,"s":[200,1],"e":[216,302]},{"t":17.0000172932943}],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('body').content('Rectangle 1').content('Rectangle Path 1').size;"},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.929412004059,0.929412004059,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2,-6.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":-27.0000274658203,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"line","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90.084,"ix":10},"p":{"a":0,"k":[68.999,-5.896,0],"ix":2},"a":{"a":0,"k":[0.5,-56,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-171.5,-56],[165.5,-56]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.59],"y":[1]},"o":{"x":[0.29],"y":[0]},"n":["0p59_1_0p29_0"],"t":16,"s":[50],"e":[0]},{"t":33.0000335693359}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.59],"y":[1]},"o":{"x":[0.29],"y":[0]},"n":["0p59_1_0p29_0"],"t":16,"s":[50],"e":[100]},{"t":33.0000335693359}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.929412004059,0.929412004059,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":16.0000162760417,"op":124.000126139323,"st":16.0000162760417,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"flash mask","parent":19,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.45],"y":[0]},"n":["0p833_0p833_0p45_0"],"t":0,"s":[0],"e":[-90]},{"t":17.0000172932943}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[60,60,0],"ix":2},"a":{"a":0,"k":[-2,-6.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":126,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.14,0.14],"y":[1,1]},"o":{"x":[0.54,0.54],"y":[0,0]},"n":["0p14_1_0p54_0","0p14_1_0p54_0"],"t":-27,"s":[0,0],"e":[200,1]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.45,0.45],"y":[0,0]},"n":["0p833_0p833_0p45_0","0p833_0p833_0p45_0"],"t":0,"s":[200,1],"e":[216,302]},{"t":17.0000172932943}],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('body').content('Rectangle 1').content('Rectangle Path 1').size;"},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.929412004059,0.929412004059,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2,-6.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":-27.0000274658203,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"button","parent":20,"tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90.004,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":29,"s":[70.511],"e":[102.512]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":47,"s":[102.512],"e":[102.512]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":71,"s":[102.512],"e":[92.512]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":74,"s":[92.512],"e":[102.512]},{"i":{"x":[0.823],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p823_1_0p167_0"],"t":77,"s":[102.512],"e":[102.512]},{"i":{"x":[0.745],"y":[1]},"o":{"x":[1],"y":[-0.47]},"n":["0p745_1_1_-0p47"],"t":93,"s":[102.512],"e":[72.512]},{"t":105.000106811523}],"ix":3,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('X Position - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('X Position - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('X Position - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"y":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":29,"s":[-176.891],"e":[-176.421]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":47,"s":[-176.421],"e":[-176.421]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":71,"s":[-176.421],"e":[-176.421]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":74,"s":[-176.421],"e":[-176.421]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":77,"s":[-176.421],"e":[-176.421]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93,"s":[-176.421],"e":[-176.421]},{"t":105.000106811523}],"ix":4}},"a":{"a":0,"k":[94,-107.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"X Position - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"X Position - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"X Position - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":100,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[26,86],"ix":2},"p":{"a":0,"k":[74,24],"ix":3},"r":{"a":0,"k":24,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[94,-107.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":29.0000295003255,"op":106.000107828776,"st":29.0000295003255,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"body mask","parent":19,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.45],"y":[0]},"n":["0p833_0p833_0p45_0"],"t":0,"s":[0],"e":[-90]},{"t":17.0000172932943}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[60,60,0],"ix":2},"a":{"a":0,"k":[-2,-6.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":126,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.14,0.14],"y":[1,1]},"o":{"x":[0.54,0.54],"y":[0,0]},"n":["0p14_1_0p54_0","0p14_1_0p54_0"],"t":-27,"s":[0,0],"e":[200,1]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.45,0.45],"y":[0,0]},"n":["0p833_0p833_0p45_0","0p833_0p833_0p45_0"],"t":0,"s":[200,1],"e":[216,302]},{"t":17.0000172932943}],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('body').content('Rectangle 1').content('Rectangle Path 1').size;"},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.929412004059,0.929412004059,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2,-6.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":-27.0000274658203,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"flash","parent":20,"tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90.004,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":27,"s":[71.498],"e":[129.499]},{"i":{"x":[0.885],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p885_1_0p167_0"],"t":39,"s":[129.499],"e":[129.499]},{"i":{"x":[0.683],"y":[1]},"o":{"x":[0.688],"y":[-0.339]},"n":["0p683_1_0p688_-0p339"],"t":99,"s":[129.499],"e":[69.499]},{"t":110.000111897786}],"ix":3,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('X Position - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('X Position - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('X Position - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"y":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.59],"y":[0]},"n":["0p833_0p833_0p59_0"],"t":27,"s":[-6.965],"e":[-6.42]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39,"s":[-6.42],"e":[-6.42]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":99,"s":[-6.42],"e":[-6.42]},{"t":110.000111897786}],"ix":4,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Y Position - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Y Position - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Y Position - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"}},"a":{"a":0,"k":[94,-107.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Y Position - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Y Position - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Y Position - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":100,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"X Position - Overshoot","np":3,"mn":"ADBE Slider Control","ix":4,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"X Position - Bounce","np":3,"mn":"ADBE Slider Control","ix":5,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"X Position - Friction","np":3,"mn":"ADBE Slider Control","ix":6,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":100,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[79,72.861],"ix":2},"p":{"a":0,"k":[72,22],"ix":3},"r":{"a":0,"k":9,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[94,-107.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":27.0000274658203,"op":107.000108846029,"st":27.0000274658203,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"lens mask 2","parent":19,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.45],"y":[0]},"n":["0p833_0p833_0p45_0"],"t":0,"s":[0],"e":[-90]},{"t":17.0000172932943}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[60,60,0],"ix":2},"a":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-27,"s":[-2,-6.5,0],"e":[-2,-6.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":56,"s":[-2,-6.5,0],"h":1},{"t":66.0000671386719,"s":[-2,-6.5,0],"h":1}],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":126,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.14,0.14],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p14_1_0p167_0p167","0p14_1_0p167_0p167"],"t":-27,"s":[0,0],"e":[200,1]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.45,0.45],"y":[0,0]},"n":["0p833_0p833_0p45_0","0p833_0p833_0p45_0"],"t":0,"s":[200,1],"e":[216,302]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":17,"s":[216,302],"e":[216,302]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":101,"s":[216,302],"e":[0,302]},{"t":110.000111897786}],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('body').content('Rectangle 1').content('Rectangle Path 1').size;"},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.204152006261,0.019608000213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2,-6.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":-27.0000274658203,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"lens","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[-22,-28.5,0],"ix":2},"a":{"a":0,"k":[3,4,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Size - Ellipse Path 1 - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Size - Ellipse Path 1 - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Size - Ellipse Path 1 - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":100,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.54,0.54],"y":[0,0]},"n":["0p833_0p833_0p54_0","0p833_0p833_0p54_0"],"t":21,"s":[0,0],"e":[94,94]},{"i":{"x":[0.833,0.833],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"n":["0p833_1_0p167_0","0p833_1_0p167_0"],"t":41,"s":[94,94],"e":[94,94]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.87,0.87],"y":[0,0]},"n":["0p833_0p833_0p87_0","0p833_0p833_0p87_0"],"t":97,"s":[94,94],"e":[183,183]},{"t":123.00012512207}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Size - Ellipse Path 1 - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Size - Ellipse Path 1 - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Size - Ellipse Path 1 - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3,4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":21.0000213623047,"op":124.000126139323,"st":21.0000213623047,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"lens mask","parent":19,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.45],"y":[0]},"n":["0p833_0p833_0p45_0"],"t":0,"s":[0],"e":[-90]},{"t":17.0000172932943}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[60,60,0],"ix":2},"a":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-27,"s":[-2,-6.5,0],"e":[-2,-6.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":56,"s":[-2,-6.5,0],"h":1},{"t":66.0000671386719,"s":[-2,-6.5,0],"h":1}],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":126,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.14,0.14],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p14_1_0p167_0p167","0p14_1_0p167_0p167"],"t":-27,"s":[0,0],"e":[200,1]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.45,0.45],"y":[0,0]},"n":["0p833_0p833_0p45_0","0p833_0p833_0p45_0"],"t":0,"s":[200,1],"e":[216,302]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":17,"s":[216,302],"e":[216,302]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":101,"s":[216,302],"e":[0,302]},{"t":110.000111897786}],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('body').content('Rectangle 1').content('Rectangle Path 1').size;"},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.204152006261,0.019608000213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2,-6.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":-27.0000274658203,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"lens","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[-22,-28.5,0],"ix":2},"a":{"a":0,"k":[3,4,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Size - Ellipse Path 1 - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Size - Ellipse Path 1 - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Size - Ellipse Path 1 - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":100,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.54,0.54],"y":[0,0]},"n":["0p833_0p833_0p54_0","0p833_0p833_0p54_0"],"t":15,"s":[0,0],"e":[136,136]},{"i":{"x":[0.833,0.833],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"n":["0p833_1_0p167_0","0p833_1_0p167_0"],"t":35,"s":[136,136],"e":[136,136]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.87,0.87],"y":[0,0]},"n":["0p833_0p833_0p87_0","0p833_0p833_0p87_0"],"t":97,"s":[136,136],"e":[212,212]},{"t":123.00012512207}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Size - Ellipse Path 1 - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Size - Ellipse Path 1 - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Size - Ellipse Path 1 - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3,4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15.0000152587891,"op":124.000126139323,"st":15.0000152587891,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".gannon-gram","cl":"gannon-gram","parent":20,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":90.004,"ix":10},"p":{"a":0,"k":[85.672,-6.451,0],"ix":2},"a":{"a":0,"k":[-0.257,-6.362,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.887],[-4.517,0],[-1.575,1.76],[0,0],[0,0],[0,0],[0,0],[0,0],[1.413,0],[0,2.919],[-2.803,0],[-0.718,-1.089],[0,0],[3.196,0]],"o":[[0,4.864],[2.803,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.672,0.602],[-2.803,0],[0,-2.919],[1.621,0],[0,0],[-1.181,-1.83],[-4.517,0]],"v":[[-101.849,-7.713],[-93.626,0.301],[-87.048,-2.617],[-87.048,-8.524],[-94.414,-8.524],[-94.414,-5.698],[-90.291,-5.698],[-90.291,-3.822],[-93.626,-2.641],[-98.467,-7.713],[-93.626,-12.786],[-89.966,-10.84],[-87.233,-12.323],[-93.626,-15.704]],"c":true},"ix":2},"nm":"G","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"G","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[-69.614,0],[-66.024,0],[-71.976,-15.45],[-76.099,-15.45],[-82.075,0],[-78.462,0],[-77.489,-2.664],[-70.587,-2.664]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-74.038,-12.601],[-71.49,-5.513],[-76.609,-5.513]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":5,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-49.766,0],[-46.593,0],[-46.593,-15.45],[-49.882,-15.45],[-49.882,-5.443],[-57.039,-15.45],[-60.421,-15.45],[-60.421,0],[-57.132,0],[-57.132,-10.377]],"c":true},"ix":2},"nm":"N","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"N","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-28.721,0],[-25.548,0],[-25.548,-15.45],[-28.837,-15.45],[-28.837,-5.443],[-35.995,-15.45],[-39.376,-15.45],[-39.376,0],[-36.087,0],[-36.087,-10.377]],"c":true},"ix":2},"nm":"N","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"N","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.656],[-4.656,0],[0,4.656],[4.679,0]],"o":[[0,4.656],[4.679,0],[0,-4.656],[-4.656,0]],"v":[[-19.073,-7.713],[-11.012,0.278],[-2.928,-7.713],[-11.012,-15.704]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-2.895],[2.849,0],[0,2.872],[-2.849,0]],"o":[[0,2.872],[-2.849,0],[0,-2.895],[2.849,0]],"v":[[-6.31,-7.713],[-11.012,-2.641],[-15.691,-7.713],[-11.012,-12.786]],"c":true},"ix":2},"nm":"O","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"O","np":5,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[14.196,0],[17.37,0],[17.37,-15.45],[14.081,-15.45],[14.081,-5.443],[6.923,-15.45],[3.541,-15.45],[3.541,0],[6.831,0],[6.831,-10.377]],"c":true},"ix":2},"nm":"N","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"N","np":3,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.887],[-4.517,0],[-1.575,1.76],[0,0],[0,0],[0,0],[0,0],[0,0],[1.413,0],[0,2.919],[-2.803,0],[-0.718,-1.089],[0,0],[3.196,0]],"o":[[0,4.864],[2.803,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.672,0.602],[-2.803,0],[0,-2.919],[1.621,0],[0,0],[-1.181,-1.83],[-4.517,0]],"v":[[23.845,-7.713],[32.068,0.301],[38.646,-2.617],[38.646,-8.524],[31.28,-8.524],[31.28,-5.698],[35.403,-5.698],[35.403,-3.822],[32.068,-2.641],[27.227,-7.713],[32.068,-12.786],[35.727,-10.84],[38.461,-12.323],[32.068,-15.704]],"c":true},"ix":2},"nm":"G","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"G","np":3,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,2.733],[3.22,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[1.668,-0.394],[0,-2.872],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[54.156,0],[57.932,0],[54.457,-5.883],[57.839,-10.47],[52.651,-15.45],[45.424,-15.45],[45.424,0],[48.713,0],[48.713,-5.536],[51.122,-5.536]],"c":true},"ix":2},"nm":"R","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-1.297],[1.32,0],[0,0],[0,0],[0,0]],"o":[[0,1.297],[0,0],[0,0],[0,0],[1.32,0]],"v":[[54.48,-10.493],[52.164,-8.362],[48.713,-8.362],[48.713,-12.624],[52.164,-12.624]],"c":true},"ix":2},"nm":"R","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"R","np":5,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[75.308,0],[78.898,0],[72.945,-15.45],[68.822,-15.45],[62.846,0],[66.459,0],[67.432,-2.664],[74.335,-2.664]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[70.884,-12.601],[73.431,-5.513],[68.312,-5.513]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":5,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[97.935,0],[101.247,0],[101.247,-15.45],[96.615,-15.45],[92.862,-5.814],[89.11,-15.45],[84.5,-15.45],[84.5,0],[87.79,0],[87.79,-11.118],[92.144,0],[93.58,0],[97.935,-11.118]],"c":true},"ix":2},"nm":"M","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.988235294118,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M","np":3,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false}],"ip":16.0000162760417,"op":110.000111897786,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":3,"nm":".chris-gannon-lottie-animation","cl":"chris-gannon-lottie-animation","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.45],"y":[1]},"o":{"x":[0.55],"y":[0]},"n":["0p45_1_0p55_0"],"t":72,"s":[0],"e":[-2]},{"i":{"x":[0.45],"y":[1]},"o":{"x":[0.55],"y":[0]},"n":["0p45_1_0p55_0"],"t":74,"s":[-2],"e":[0]},{"t":84.0000854492187}],"ix":10},"p":{"a":0,"k":[518,386,0],"ix":2},"a":{"a":0,"k":[178,146,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":124.000126139323,"st":-27.0000274658203,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"body","parent":19,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.45],"y":[0]},"n":["0p833_0p833_0p45_0"],"t":0,"s":[0],"e":[-90]},{"t":17.0000172932943}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[60,60,0],"ix":2},"a":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-27,"s":[-2,-6.5,0],"e":[-2,-6.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":56,"s":[-2,-6.5,0],"h":1},{"t":66.0000671386719,"s":[-2,-6.5,0],"h":1}],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":126,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.14,0.14],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p14_1_0p167_0p167","0p14_1_0p167_0p167"],"t":-27,"s":[0,0],"e":[200,1]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.45,0.45],"y":[0,0]},"n":["0p833_0p833_0p45_0","0p833_0p833_0p45_0"],"t":0,"s":[200,1],"e":[216,302]},{"i":{"x":[0.833,0.833],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"n":["0p833_1_0p167_0","0p833_1_0p167_0"],"t":17,"s":[216,302],"e":[216,302]},{"i":{"x":[0.197,0.45],"y":[1,1]},"o":{"x":[0.872,0.59],"y":[-0.522,0]},"n":["0p197_1_0p872_-0p522","0p45_1_0p59_0"],"t":97,"s":[216,302],"e":[0,200]},{"t":123.00012512207}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156982422,1,0.988234994926,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-2,-6.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":-27.0000274658203,"bm":0}]}],"layers":[{"ddd":0,"ind":3,"ty":0,"nm":".chris-gannon-instagram-lottie","cl":"chris-gannon-instagram-lottie","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,323,0],"ix":2},"a":{"a":0,"k":[400,300,0],"ix":1},"s":{"a":0,"k":[129,129,100],"ix":6}},"ao":0,"w":800,"h":600,"ip":0,"op":124.000126139323,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"blueToPurple","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[800,600],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":5,"k":{"a":0,"k":[0.007,0.298,0.404,0.851,0.307,0.431,0.308,0.735,0.6,0.565,0.212,0.62,0.8,0.565,0.212,0.62,1,0.565,0.212,0.62,0,1,0.199,1,0.397,1,0.592,0.5,0.788,0],"ix":9}},"s":{"a":0,"k":[-258,-522],"ix":5},"e":{"a":0,"k":[-943,-866],"ix":6},"t":2,"h":{"a":0,"k":18.494,"ix":7},"a":{"a":0,"k":-100.276,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"yellowToOrange","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[800,600],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":7,"k":{"a":0,"k":[0.007,0.984,0.847,0.482,0.193,0.969,0.657,0.325,0.375,0.953,0.467,0.169,0.545,0.882,0.263,0.314,0.715,0.812,0.059,0.459,0.857,0.688,0.135,0.539,1,0.565,0.212,0.62,0,1,0.259,1,0.517,1,0.75,0.5,0.983,0],"ix":9}},"s":{"a":0,"k":[-140,330],"ix":5},"e":{"a":0,"k":[-637,989],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"bg","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[800,600],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.811764705882,0.058823529412,0.458823529412,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124.000126139323,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/intelia_logo_animation.json b/external/rlottie/example/resource/intelia_logo_animation.json new file mode 100644 index 000000000..a82c26a53 --- /dev/null +++ b/external/rlottie/example/resource/intelia_logo_animation.json @@ -0,0 +1 @@ +{"v":"5.1.3","fr":24,"ip":0,"op":207,"w":850,"h":850,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_25","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12.372,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":36.085,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":92.997,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":116.71,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":130.938,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":152.281,"s":[0],"e":[100]},{"t":175.994140625}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-45],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[0],"e":[360]},{"t":175.994140625}],"ix":10},"p":{"a":0,"k":[580.426,1041.493,0],"ix":2},"a":{"a":0,"k":[-356.047,-391.199,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":19.484,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":43.199,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":55.056,"s":[0],"e":[67]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":78.77,"s":[67],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":102.482,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":152.281,"s":[0],"e":[100]},{"t":175.994140625}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-468.047,-441.199,0],"ix":2},"a":{"a":0,"k":[-194.047,-395.199,0],"ix":1},"s":{"a":0,"k":[53,53,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3}]},{"id":"comp_26","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35.253,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":71.7,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":127.79,"s":[100],"e":[0]},{"t":165.1826171875}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[742.953,606.801,0],"e":[448.953,366.801,0],"to":[-49,-40,0],"ti":[49,40,0]},{"t":166.0048828125}],"ix":2},"a":{"a":0,"k":[-194.047,-395.199,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 4","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93.365,"s":[100],"e":[0]},{"t":166.0048828125}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-426.047,-547.199,0],"ix":2},"a":{"a":0,"k":[-194.047,-395.199,0],"ix":1},"s":{"a":0,"k":[39,39,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":23.598,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93.365,"s":[100],"e":[0]},{"t":166.0048828125}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-267.047,-558.199,0],"ix":2},"a":{"a":0,"k":[-194.047,-395.199,0],"ix":1},"s":{"a":0,"k":[78,78,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3}]},{"id":"comp_27","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Combined Shape 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":10}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.525,25.765,0],"ix":2},"a":{"a":0,"k":[38.73,33.425,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[20,0],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[21.5,1.5],"ix":2},"a":{"a":0,"k":[21.5,1.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[14,5],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[15.5,6.5],"ix":2},"a":{"a":0,"k":[15.5,6.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 2","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[10,10],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[11.5,11.5],"ix":2},"a":{"a":0,"k":[11.5,11.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 4","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[5,15],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[6.5,16.5],"ix":2},"a":{"a":0,"k":[6.5,16.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 6","np":1,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[0,20],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[1.5,21.5],"ix":2},"a":{"a":0,"k":[1.5,21.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 8","np":1,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[26,6],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[27.5,7.5],"ix":2},"a":{"a":0,"k":[27.5,7.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy","np":1,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[20,11],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[21.5,12.5],"ix":2},"a":{"a":0,"k":[21.5,12.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 3","np":1,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[16,16],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[17.5,17.5],"ix":2},"a":{"a":0,"k":[17.5,17.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 5","np":1,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[11,21],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[12.5,22.5],"ix":2},"a":{"a":0,"k":[12.5,22.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 7","np":1,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[6,26],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[7.5,27.5],"ix":2},"a":{"a":0,"k":[7.5,27.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 9","np":1,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.479,8.174],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[174.15,174.15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Combined Shape","np":11,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3},{"ddd":0,"ind":2,"ty":4,"nm":"Combined Shape","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":10}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.525,25.765,0],"ix":2},"a":{"a":0,"k":[38.73,33.425,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[20,0],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[21.5,1.5],"ix":2},"a":{"a":0,"k":[21.5,1.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[14,5],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[15.5,6.5],"ix":2},"a":{"a":0,"k":[15.5,6.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 2","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[10,10],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[11.5,11.5],"ix":2},"a":{"a":0,"k":[11.5,11.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 4","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[5,15],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[6.5,16.5],"ix":2},"a":{"a":0,"k":[6.5,16.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 6","np":1,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[0,20],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[1.5,21.5],"ix":2},"a":{"a":0,"k":[1.5,21.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 8","np":1,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[26,6],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[27.5,7.5],"ix":2},"a":{"a":0,"k":[27.5,7.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy","np":1,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[20,11],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[21.5,12.5],"ix":2},"a":{"a":0,"k":[21.5,12.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 3","np":1,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[16,16],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[17.5,17.5],"ix":2},"a":{"a":0,"k":[17.5,17.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 5","np":1,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[11,21],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[12.5,22.5],"ix":2},"a":{"a":0,"k":[12.5,22.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 7","np":1,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[6,26],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[7.5,27.5],"ix":2},"a":{"a":0,"k":[7.5,27.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 9","np":1,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.479,8.174],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[174.15,174.15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Combined Shape","np":11,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3}]},{"id":"comp_28","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"top gradient 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[676.793,592.214,0],"ix":2},"a":{"a":0,"k":[161.771,185.625,0],"ix":1},"s":{"a":0,"k":[167.414,156.485,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416]],"o":[[0,0],[35.421,36.573],[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0]],"v":[[145.847,276.337],[188.716,320.16],[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[20.389,22.001],"ix":4},"e":{"a":0,"k":[333.534,351.158],"ix":5},"t":1,"lc":2,"lj":2,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":0,"ix":1}},{"n":"g","nm":"gap","v":{"a":0,"k":6,"ix":2}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[100]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[360]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[360],"e":[432]},{"t":206}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":582,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"bottom gradient 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[704.229,761.465,0],"ix":2},"a":{"a":0,"k":[178.51,145.63,0],"ix":1},"s":{"a":0,"k":[166.241,155.588,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[20.389,22.001],"ix":4},"e":{"a":0,"k":[333.534,351.158],"ix":5},"t":1,"lc":2,"lj":2,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":0,"ix":1}},{"n":"g","nm":"gap","v":{"a":0,"k":6,"ix":2}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[100]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[360]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[360],"e":[432]},{"t":206}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":582,"st":0,"bm":0}]},{"id":"comp_29","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"top gradient 2","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[630.311,697.664,0],"ix":2},"a":{"a":0,"k":[129.266,259.367,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416]],"o":[[0,0],[35.421,36.573],[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0]],"v":[[145.847,276.337],[188.716,320.16],[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[20.389,22.001],"ix":4},"e":{"a":0,"k":[333.534,351.158],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"bottom gradient 2","parent":1,"sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,151.01,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[23.323,352.344],"ix":4},"e":{"a":0,"k":[333.867,22.766],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"bottom left","refId":"comp_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425,425,0],"ix":2},"a":{"a":0,"k":[700,700,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[19.3,-20.909],[-77.841,-87.143],[-26.626,37],[0,0],[0,0],[3.979,-3.943],[21.354,-8.993],[33.25,31.25],[-10.06,22.855],[0,0],[0,0],[0,0],[0,0]],"o":[[-18,19.501],[79.5,89],[4.366,-6.067],[0,0],[0,0],[-27.626,27.375],[-21.341,8.987],[-35.098,-32.987],[10.863,-24.679],[0,0],[0,0],[0,0],[0,0]],"v":[[478,811.999],[484,1028.5],[710.626,1031.25],[906.174,825.585],[828.745,800.692],[708.251,928.75],[636.146,997.493],[543.5,985],[522.637,879.679],[549.5,841.499],[726.796,651.11],[671.014,605.492],[511.727,774.458]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1400,"h":1400,"ip":30,"op":207,"st":30,"bm":3},{"ddd":0,"ind":2,"ty":0,"nm":"Shape Layer 2 Comp 1","refId":"comp_26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425,425,0],"ix":2},"a":{"a":0,"k":[700,700,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[60.5,-58.625],[0,0],[-29.176,-33.894],[0,0],[0,0],[2.138,9.397],[-42.42,36.582],[-11.955,-11.937],[0,0],[0,0],[10.352,8.203]],"o":[[0,0],[-61.774,59.859],[0,0],[15.824,18.981],[0,0],[0,0],[-15.362,-24.603],[39.578,-34.132],[9.545,1.063],[0,0],[0,0],[-24.898,-22.047]],"v":[[627.3,325.45],[491.5,365.625],[442.454,504.046],[478.176,589.519],[603.472,718.436],[649.702,663.18],[528.362,535.103],[543.17,417.168],[643.955,408.437],[868.819,643.157],[915.114,587.104],[693.648,354.297]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1400,"h":1400,"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":3,"ty":0,"nm":"dot dot","refId":"comp_27","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":87.39,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":111.085,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":134.78,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":182.17,"s":[100],"e":[0]},{"t":205.865234375}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[356,425,0],"ix":2},"a":{"a":0,"k":[25.5,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":51,"h":52,"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":4,"ty":0,"nm":"dot dot 3","refId":"comp_27","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":132.41,"s":[100],"e":[0]},{"t":156.10546875}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":49.478,"s":[97],"e":[103]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":54.217,"s":[103],"e":[151]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":66.064,"s":[151],"e":[205]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":82.651,"s":[205],"e":[254]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":103.977,"s":[254],"e":[267]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":118.193,"s":[267],"e":[273]},{"t":156.10546875}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.171,"y":0.523},"o":{"x":0.202,"y":0},"n":"0p171_0p523_0p202_0","t":40,"s":[478.5,197,0],"e":[605.211,514.635,0],"to":[190.990447998047,160.949462890625,0],"ti":[57.1761779785156,-54.6577949523926,0]},{"i":{"x":0.46,"y":1},"o":{"x":0.166,"y":0.528},"n":"0p46_1_0p166_0p528","t":75.542,"s":[605.211,514.635,0],"e":[391,454,0],"to":[-53.2955093383789,50.9480514526367,0],"ti":[55.3542785644531,99.6731643676758,0]},{"t":205.865234375}],"ix":2},"a":{"a":0,"k":[25.5,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":51,"h":52,"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":5,"ty":4,"nm":"circle 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[408.811,344.164,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[141.106,206.717],[110.43,239.196],[145.39,275.784],[176.591,242.256]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":85,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[185.289,276.851],"e":[108.695,204.332],"to":[-12.7656526565552,-12.0863838195801],"ti":[12.7656526565552,12.0863838195801]},{"t":158.474609375}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[34.114,34.114],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[0],"e":[100]},{"t":63.6953125}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":6,"ty":4,"nm":"bottom intersect","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[124.626,32.564],[39.976,108.706],[124.626,184.848],[209.277,108.706]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[310.568,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[23.323,352.344],"ix":4},"e":{"a":0,"k":[333.867,22.766],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[110.862,203.395],[71.706,235.962],[161.474,328.756],[199.493,295.053]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":85,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":87.39,"s":[125.589,217.812],"e":[100.818,262.368],"to":[-4.1284236907959,7.42597246170044],"ti":[4.1284236907959,-7.42597246170044]},{"t":205.865234375}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[34.114,34.114],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":87.39,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":111.085,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":182.17,"s":[100],"e":[0]},{"t":205.865234375}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":8,"ty":0,"nm":"dot dot 2","refId":"comp_27","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":96.868,"s":[100],"e":[0]},{"t":108.7158203125}],"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.21,"y":1},"o":{"x":0.996,"y":0},"n":"0p21_1_0p996_0","t":63.695,"s":[438.5,506,0],"e":[354.5,426,0],"to":[-14,-13.3333330154419,0],"ti":[14,13.3333330154419,0]},{"t":134.7802734375}],"ix":2},"a":{"a":0,"k":[25.5,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":51,"h":52,"ip":50,"op":207,"st":50,"bm":3},{"ddd":0,"ind":9,"ty":4,"nm":"top intersect","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[0],"e":[50]},{"t":30}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[91.194,150.86],[25.552,210.787],[167.942,347.812],[223.269,294.703]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416]],"o":[[0,0],[35.421,36.573],[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0]],"v":[[144.798,275.288],[192.388,323.656],[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":7,"k":{"a":0,"k":[0,0.639,0.294,0.588,0.177,0.32,0.147,0.369,0.354,0,0,0.149,0.528,0,0,0.149,0.701,0,0,0.149,0.85,0.139,0.286,0.437,0.999,0.278,0.573,0.725],"ix":8}},"s":{"a":0,"k":[62.14,189.033],"ix":4},"e":{"a":0,"k":[193.065,322.973],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[177.755,185.625],"ix":2},"a":{"a":0,"k":[177.755,185.625],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"path animation","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"top gradient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416]],"o":[[0,0],[35.421,36.573],[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0]],"v":[[145.847,276.337],[188.716,320.16],[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[20.389,22.001],"ix":4},"e":{"a":0,"k":[333.534,351.158],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"dot dot 4","refId":"comp_27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0,"y":0},"n":"0_1_0_0","t":40,"s":[484,655,0],"e":[455,682.5,0],"to":[-4.83333349227905,4.58333349227905,0],"ti":[-18.1666660308838,18.25,0]},{"i":{"x":0,"y":1},"o":{"x":0.013,"y":0},"n":"0_1_0p013_0","t":87.39,"s":[455,682.5,0],"e":[593,545.5,0],"to":[18.1666660308838,-18.25,0],"ti":[-23,22.8333339691162,0]},{"t":111.0849609375}],"ix":2},"a":{"a":0,"k":[25.5,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":51,"h":52,"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":12,"ty":4,"nm":"botto center shadow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0],"e":[50]},{"t":32}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[222.668,-8.017],[147.58,16.983],[253,122.403],[292.86,67.857]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0,0.149,0.5,0.149,0.278,0.433,1,0.298,0.557,0.718],"ix":8}},"s":{"a":0,"k":[252.962,23.148],"ix":4},"e":{"a":0,"k":[186.511,57.098],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"bottom right shadow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":23,"s":[0],"e":[50]},{"t":33}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[27.966,-20.988]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[-43.954,32.986]],"v":[[229.381,220.652],[163.13,232.882],[245.771,315.523],[345.496,189.019],[355.903,137.559],[314.719,201.432]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.576,0.341,0.612,0.5,0.288,0.171,0.38,1,0,0,0.149],"ix":8}},"s":{"a":0,"k":[209.954,279.226],"ix":4},"e":{"a":0,"k":[289.12,209.59],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"bottom gradient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[23.323,352.344],"ix":4},"e":{"a":0,"k":[333.867,22.766],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"Ub=nder Lines Tones","refId":"comp_28","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.31],"y":[0]},"n":["0_1_0p31_0"],"t":20,"s":[0],"e":[-27]},{"t":40}],"ix":10},"p":{"a":0,"k":[435,415,0],"ix":2},"a":{"a":0,"k":[700,700,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1400,"h":1400,"ip":0,"op":207,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"underTone","refId":"comp_29","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[0],"e":[50]},{"t":30}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[0]},"o":{"x":[0.32],"y":[0]},"n":["0_0_0p32_0"],"t":20,"s":[0],"e":[-30]},{"t":40}],"ix":10},"p":{"a":0,"k":[357,421,0],"ix":2},"a":{"a":0,"k":[632,696,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1400,"h":1400,"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":17,"ty":0,"nm":"underTone","refId":"comp_29","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[0],"e":[100]},{"t":30}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[0]},"o":{"x":[0.32],"y":[0]},"n":["0_0_0p32_0"],"t":20,"s":[0],"e":[-12]},{"t":40}],"ix":10},"p":{"a":0,"k":[357,421,0],"ix":2},"a":{"a":0,"k":[632,696,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1400,"h":1400,"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"pre-top 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[30.168,-34.428],[-34.643,-35.416],[0,0],[0,0],[-32.615,36.219],[38.821,39.666]],"o":[[-34.643,-35.408],[-32.698,37.315],[0,0],[0,0],[35.421,36.573],[33.486,-37.186],[0,0]],"v":[[166.892,47.089],[45.018,50.252],[50.711,177.105],[145.148,276.687],[188.716,320.16],[308.833,322.591],[302.799,191.193]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.226922487745,0.270561427696,0.314200367647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[30]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":41,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"pre-top","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416],[0,0],[0,0]],"o":[[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0],[0,0],[35.421,36.573]],"v":[[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105],[145.148,276.687],[188.716,320.16]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.226922487745,0.270561427696,0.314200367647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[30]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":41,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"pre-bottom 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437],[0,0],[0,0],[-31.766,-33.004]],"o":[[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0],[0,0],[-34.481,35.437],[32.568,33.837]],"v":[[168.402,323.543],[307.278,175.855],[310.568,47.695],[188.989,47.857],[122.383,118.689],[50.12,195.537],[46.83,323.705]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.226922487745,0.270561427696,0.314200367647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[30]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":41,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"pre-bottom","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[310.568,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.226922487745,0.270561427696,0.314200367647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[30]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":41,"st":0,"bm":0}],"markers":[{"tm":0.06944444444444,"cm":"1","dr":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/it's_lunch_time!.json b/external/rlottie/example/resource/it's_lunch_time!.json new file mode 100644 index 000000000..20e5dbb6e --- /dev/null +++ b/external/rlottie/example/resource/it's_lunch_time!.json @@ -0,0 +1 @@ +{"v":"5.1.20","fr":25,"ip":0,"op":74,"w":512,"h":512,"nm":"Layers-estaPronto","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"dente 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[140.225,174.571,0],"ix":2},"a":{"a":0,"k":[2.5,34.346,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,2.5],[2.5,66.191]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.808000033509,0,0.344999994016,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[1],"y":[0]},"n":["0_1_1_0"],"t":18.85,"s":[0],"e":[100]},{"t":37}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":75,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"dente 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[152.553,174.571,0],"ix":2},"a":{"a":0,"k":[2.5,34.346,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,2.5],[2.5,66.191]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.808000033509,0,0.344999994016,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.016],"y":[0.993]},"o":{"x":[1],"y":[-0.014]},"n":["0p016_0p993_1_-0p014"],"t":18.85,"s":[100],"e":[0]},{"t":37}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":75,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"garfo","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[146.389,255.725,0],"ix":2},"a":{"a":0,"k":[30.991,125.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.585,-4.361],[0,-8.218],[2.054,-18.491],[0,-14.382],[-9.077,0],[0,9.077],[2.055,18.491],[0,0],[-4.109,6.163],[-0.109,5.068],[0,0]],"o":[[0,0],[0.109,5.068],[4.109,6.163],[0,0],[-2.055,18.491],[0,9.077],[9.077,0],[0,-14.382],[-2.054,-18.491],[0,-8.218],[2.585,-4.361],[0,0],[0,0]],"v":[[-18.491,-113],[-18.491,-49.309],[-14.382,-34.927],[-6.164,-18.491],[-8.218,26.709],[-16.436,96.564],[0,113],[16.436,96.564],[8.218,26.709],[6.164,-18.491],[14.382,-34.927],[18.491,-49.309],[18.491,-113]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.808000033509,0,0.344999994016,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[30.991,125.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.884],"y":[0.022]},"n":["0p667_1_0p884_0p022"],"t":19,"s":[100],"e":[0]},{"t":40}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":75,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"faca","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[282.826,255.753,0],"ix":2},"a":{"a":0,"k":[116.446,124.473,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[84.5,11.171],[84.5,236.171],[302.392,236.171],[302.392,11.171]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Máscara 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.788,0.039],[2.055,-18.491],[0,-14.381],[-9.077,0],[0,9.078],[2.054,18.491],[0,0],[0,0],[8.218,-22.6],[2.3,-13]],"o":[[2.654,0.856],[0,0],[-2.055,18.491],[0,9.078],[9.078,0],[0,-14.381],[-2.055,-18.491],[0,0],[0,0],[-4.738,12.322],[0,0]],"v":[[-9.091,-8.424],[-0.872,-7.191],[-2.928,38.009],[-11.146,95.536],[5.29,111.973],[21.727,95.536],[13.509,38.009],[11.454,-7.191],[11.454,-111.973],[-11.146,-89.373],[-21.727,-51.302]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.808000033509,0,0.344999994016,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[198.666,124.473],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,11.445],[2.5,75.137]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.808000033509,0,0.344999994016,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":19,"s":[100],"e":[0]},{"t":40}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":75,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"prato int","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[41],"e":[401]},{"t":40}],"ix":10},"p":{"a":0,"k":[257.28,260.671,0],"ix":2},"a":{"a":0,"k":[73.269,73.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[40.327,0],[0,-40.327],[-40.327,0],[0,40.328]],"o":[[-40.327,0],[0,40.328],[40.327,0],[0,-40.327]],"v":[[0,-73.019],[-73.019,-0.001],[0,73.019],[73.019,-0.001]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843137255,0,0.345098039216,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":6,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[73.269,73.269],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.833],"y":[0]},"n":["0p667_1_0p833_0"],"t":0,"s":[0],"e":[100]},{"t":20}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":75,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"prato ext","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-23],"e":[401]},{"t":40}],"ix":10},"p":{"a":0,"k":[257.28,260.671,0],"ix":2},"a":{"a":0,"k":[73.269,73.269,0],"ix":1},"s":{"a":0,"k":[139,139,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[40.327,0],[0,-40.327],[-40.327,0],[0,40.328]],"o":[[-40.327,0],[0,40.328],[40.327,0],[0,-40.327]],"v":[[0,-73.019],[-73.019,-0.001],[0,73.019],[73.019,-0.001]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843137255,0,0.345098039216,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[73.269,73.269],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.829],"y":[0]},"n":["0p667_1_0p829_0"],"t":0,"s":[100],"e":[0]},{"t":20}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":75,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/jolly_walker.json b/external/rlottie/example/resource/jolly_walker.json new file mode 100644 index 000000000..f22036420 --- /dev/null +++ b/external/rlottie/example/resource/jolly_walker.json @@ -0,0 +1 @@ +{"v":"5.1.7","fr":60,"ip":0,"op":64,"w":1000,"h":1000,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 18","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[116,48.775,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[29,21],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.874509803922,0.472901018928,0.332656650917,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-61.5,-268.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-5.37,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 9","parent":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[62,-208.226,0],"ix":2},"a":{"a":0,"k":[66,-203,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.75,-10.109],[50.39,14.18]],"o":[[2.75,10.109],[-199.5,-56.141]],"v":[[22.75,-166.25],[187,-207.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.515529318417,0.158323714312,0.56862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.295640145096,0.337768345253,0.423529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"NULL CONTROL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[473.375,533.528,0],"ix":2},"a":{"a":0,"k":[60,60,0],"ix":1},"s":{"a":0,"k":[64,64,100],"ix":6}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 16","parent":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[112,81.633,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[45.25,43.75],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.149019607843,0.138734346278,0.129734727448,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-26.875,-228.375],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 7","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-722.596,-191.386,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[190.549,190.549,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17.5,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}],"e":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":27.5,"s":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":35,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}],"e":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42.5,"s":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}],"e":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50,"s":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}],"e":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}],"e":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}]},{"t":62.5}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":88,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.980392156863,0.792156862745,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":38,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-34.433,21.811],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17.5,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}],"e":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":27.5,"s":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":35,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}],"e":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42.5,"s":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}],"e":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50,"s":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}],"e":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}],"e":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}]},{"t":62.5}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.3505421358,0.408821913775,0.513725490196,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":38,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-34.433,21.811],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 13","parent":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.5,60.633,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[81,-30.5],[1,-55],[4.822,26.865],[12,-3.5]],"o":[[17,0.5],[-1,55],[-3.5,-19.5],[-12.517,3.651]],"v":[[26,-151],[90.5,-115],[134,-114],[103.5,-116]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.980392156863,0.792156862745,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.333333333333,0.302657961378,0.275817003437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 15","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.5,-15.534,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[7,9],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.980392156863,0.792156862745,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.066666666667,0.06220479853,0.058300654093,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.75,-136.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 17","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-15.876,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[0,0],[-46,-106],[-1,-39],[0.333,-16.457]],"o":[[0,0],[19.372,44.64],[1,39],[-0.264,13.036]],"v":[[-46.5,-199.5],[-26,-73],[-74,-17],[-55,62]],"c":false}],"e":[{"i":[[0,0],[-45,-76.444],[-1,-39],[-7,-11]],"o":[[0,0],[48.57,82.508],[1,39],[7,11]],"v":[[-46.5,-199.5],[-34,-69],[-87,3],[-55,52.667]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16,"s":[{"i":[[0,0],[-45,-76.444],[-1,-39],[-7,-11]],"o":[[0,0],[48.57,82.508],[1,39],[7,11]],"v":[[-46.5,-199.5],[-34,-69],[-87,3],[-55,52.667]],"c":false}],"e":[{"i":[[0,0],[-45.25,-83.833],[-1,-39],[-7,-11]],"o":[[0,0],[53,114.666],[1,39],[7,11]],"v":[[-46.5,-199.5],[-32,-70],[-83.75,-2],[-56,47]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":28,"s":[{"i":[[0,0],[-45.25,-83.833],[-1,-39],[-7,-11]],"o":[[0,0],[53,114.666],[1,39],[7,11]],"v":[[-46.5,-199.5],[-32,-70],[-83.75,-2],[-56,47]],"c":false}],"e":[{"i":[[0,0],[-46,-106],[-1,-39],[7.333,-21.791]],"o":[[0,0],[19.372,44.64],[1,39],[-4.159,12.357]],"v":[[-46.5,-199.5],[-26,-73],[-74,-17],[-54.667,62]],"c":false}]},{"t":64}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Smoke","sr":1,"ks":{"o":{"a":0,"k":80,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[112.981,9.615],[-55.288,-84.135],[31.25,-50.481],[-21.635,-103.365],[0,0],[-60.096,2.404],[36.058,33.654],[-36.058,48.077]],"o":[[-112.981,-9.615],[55.288,84.135],[-31.25,50.481],[21.635,103.365],[0,0],[60.096,-2.404],[-36.058,-33.654],[36.058,-48.077]],"v":[[242.788,-550.481],[55.288,-444.712],[144.231,-322.115],[91.346,-230.769],[114.192,-111.808],[170.673,-230.769],[199.519,-341.346],[225.962,-432.692]],"c":true}],"e":[{"i":[[112.981,9.615],[-96.264,-29.473],[57.824,13.462],[-21.635,-103.365],[0,0],[-48.542,-35.51],[36.058,33.654],[-36.058,48.077]],"o":[[-112.981,-9.615],[80.712,24.712],[-68.231,-15.885],[21.635,103.365],[0,0],[39.327,28.769],[-36.058,-33.654],[36.058,-48.077]],"v":[[242.788,-550.481],[55.288,-444.712],[144.231,-322.115],[91.346,-230.769],[114.192,-80.808],[154.673,-258.769],[201.519,-387.346],[229.962,-470.692]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":8,"s":[{"i":[[112.981,9.615],[-96.264,-29.473],[57.824,13.462],[-21.635,-103.365],[0,0],[-48.542,-35.51],[36.058,33.654],[-36.058,48.077]],"o":[[-112.981,-9.615],[80.712,24.712],[-68.231,-15.885],[21.635,103.365],[0,0],[39.327,28.769],[-36.058,-33.654],[36.058,-48.077]],"v":[[242.788,-550.481],[55.288,-444.712],[144.231,-322.115],[91.346,-230.769],[114.192,-80.808],[154.673,-258.769],[201.519,-387.346],[229.962,-470.692]],"c":true}],"e":[{"i":[[112.981,9.615],[-87.484,-41.186],[41.769,-49.885],[0.654,-89.231],[0,0],[-62.101,24.769],[26.909,45.489],[-2.598,62.232]],"o":[[-112.981,-9.615],[75.264,37.445],[-64.231,34.115],[-0.774,105.602],[0,0],[51.899,-21.231],[-25.112,-42.451],[0.896,-21.451]],"v":[[242.788,-550.481],[33.288,-480.712],[112.231,-358.115],[109.346,-230.769],[114.192,-111.808],[158.101,-346.769],[189.091,-441.489],[297.104,-496.549]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[{"i":[[112.981,9.615],[-87.484,-41.186],[41.769,-49.885],[0.654,-89.231],[0,0],[-62.101,24.769],[26.909,45.489],[-2.598,62.232]],"o":[[-112.981,-9.615],[75.264,37.445],[-64.231,34.115],[-0.774,105.602],[0,0],[51.899,-21.231],[-25.112,-42.451],[0.896,-21.451]],"v":[[242.788,-550.481],[33.288,-480.712],[112.231,-358.115],[109.346,-230.769],[114.192,-111.808],[158.101,-346.769],[189.091,-441.489],[297.104,-496.549]],"c":true}],"e":[{"i":[[112.981,9.615],[-78.703,-52.9],[50.042,-32.703],[-3.126,-89.638],[0,0],[-53.494,-19.261],[103.637,2.208],[-57.183,4.784]],"o":[[-112.981,-9.615],[69.816,50.179],[-54.958,42.297],[5.338,104.992],[0,0],[131.178,5.041],[-45.661,-7.411],[49.753,-19.593]],"v":[[118.788,-608.481],[13.288,-504.893],[126.958,-456.297],[102.437,-230.769],[109.192,-104.808],[217.53,-428.769],[217.026,-526.541],[342.247,-542.407]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[{"i":[[112.981,9.615],[-78.703,-52.9],[50.042,-32.703],[-3.126,-89.638],[0,0],[-53.494,-19.261],[103.637,2.208],[-57.183,4.784]],"o":[[-112.981,-9.615],[69.816,50.179],[-54.958,42.297],[5.338,104.992],[0,0],[131.178,5.041],[-45.661,-7.411],[49.753,-19.593]],"v":[[118.788,-608.481],[13.288,-504.893],[126.958,-456.297],[102.437,-230.769],[109.192,-104.808],[217.53,-428.769],[217.026,-526.541],[342.247,-542.407]],"c":true}],"e":[{"i":[[112.981,9.615],[-69.923,-64.613],[36.032,-50.21],[-11.503,-96.941],[0,0],[-55.97,-11.137],[42.808,17.215],[-49.261,21.019]],"o":[[-112.981,-9.615],[34.962,26.325],[-46.241,43.042],[11.449,104.382],[0,0],[59.791,-10.481],[-42.06,-17.252],[46.571,-21.492]],"v":[[242.788,-550.481],[-8.962,-482.325],[146.435,-431.729],[99.528,-230.769],[114.192,-80.808],[174.209,-325.519],[220.711,-395.843],[317.89,-488.764]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44,"s":[{"i":[[112.981,9.615],[-69.923,-64.613],[36.032,-50.21],[-11.503,-96.941],[0,0],[-55.97,-11.137],[42.808,17.215],[-49.261,21.019]],"o":[[-112.981,-9.615],[34.962,26.325],[-46.241,43.042],[11.449,104.382],[0,0],[59.791,-10.481],[-42.06,-17.252],[46.571,-21.492]],"v":[[242.788,-550.481],[-8.962,-482.325],[146.435,-431.729],[99.528,-230.769],[114.192,-80.808],[174.209,-325.519],[220.711,-395.843],[317.89,-488.764]],"c":true}],"e":[{"i":[[112.981,9.615],[-61.142,-76.326],[-60.613,-54.039],[12.381,-73.231],[0,0],[-60.087,14.469],[38.758,27.078],[-33.533,19.121]],"o":[[-112.981,-9.615],[52.912,36.257],[58.387,63.961],[-3.619,30.769],[0,0],[63.913,-24.531],[-27.996,-27.255],[48.467,-34.879]],"v":[[242.788,-550.481],[29.588,-459.757],[157.613,-402.961],[123.619,-244.769],[116.192,-125.808],[208.087,-297.469],[213.496,-414.245],[295.533,-471.121]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":56,"s":[{"i":[[112.981,9.615],[-61.142,-76.326],[-60.613,-54.039],[12.381,-73.231],[0,0],[-60.087,14.469],[38.758,27.078],[-33.533,19.121]],"o":[[-112.981,-9.615],[52.912,36.257],[58.387,63.961],[-3.619,30.769],[0,0],[63.913,-24.531],[-27.996,-27.255],[48.467,-34.879]],"v":[[242.788,-550.481],[29.588,-459.757],[157.613,-402.961],[123.619,-244.769],[116.192,-125.808],[208.087,-297.469],[213.496,-414.245],[295.533,-471.121]],"c":true}],"e":[{"i":[[112.981,9.615],[-55.288,-84.135],[31.25,-50.481],[-21.635,-103.365],[0,0],[-60.096,2.404],[36.058,33.654],[-36.058,48.077]],"o":[[-112.981,-9.615],[55.288,84.135],[-31.25,50.481],[21.635,103.365],[0,0],[60.096,-2.404],[-36.058,-33.654],[36.058,-48.077]],"v":[[242.788,-550.481],[55.288,-444.712],[144.231,-322.115],[91.346,-230.769],[114.192,-120.808],[170.673,-230.769],[199.519,-341.346],[225.962,-432.692]],"c":true}]},{"t":64}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.980392156863,0.792156862745,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.639215686275,0.572369624119,0.513879274854,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 6","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[-734.029,-245.947,0],"e":[-734.029,-219.947,0],"to":[0,4.33333349227905,0],"ti":[0,-0.16666667163372,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[-734.029,-219.947,0],"e":[-734.029,-244.947,0],"to":[0,0.16666667163372,0],"ti":[0,-0.66666668653488,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[-734.029,-244.947,0],"e":[-734.029,-215.947,0],"to":[0,0.66666668653488,0],"ti":[0,0.16666667163372,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42.5,"s":[-734.029,-215.947,0],"e":[-734.029,-245.947,0],"to":[0,-0.16666667163372,0],"ti":[0,5,0]},{"t":62.5}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[190.549,190.549,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[86,46],[0,81.5]],"o":[[5.25,65.5],[-13.5,23.75]],"v":[[21.75,-128.617],[187.5,-124.617]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745008282,0.11613999909,0.11613999909,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215686275,0.488893965179,0.075693960751,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 5","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.462745008282,0.11613999909,0.11613999909,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039215686,0.369550158931,0.369550158931,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745008282,0.11613999909,0.11613999909,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.202591765161,0.294117647059,0.184544417437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[149,-145.016],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[26,22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745008282,0.11613999909,0.11613999909,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.294117647059,0.18431372549,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[83,-147.016],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[90,10],[-112,-29]],"o":[[-76.632,-8.515],[183,31]],"v":[[103,-245],[75,-101]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745008282,0.11613999909,0.11613999909,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.793133844114,0.6266820571,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8,10],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[93.244,89.796],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 5","parent":12,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-534,-91.727,0],"ix":2},"a":{"a":0,"k":[-534,-93,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-53.354,-5.716],[11.433,4.764]],"o":[[0,0],[53.354,5.716],[-11.433,-4.764]],"v":[[-593.975,-391.175],[-512.039,-350.208],[-472.024,-394.987]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745098039,0.116139939252,0.116139939252,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.819607843137,0.634472895604,0.472479816512,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-70.621,-35.311],[0,0],[53.354,102.896]],"o":[[60.976,30.488],[0,0],[-53.354,-102.896]],"v":[[-612.077,-360.852],[-406.285,-183.642],[-432.961,-362.757]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745098039,0.116139939252,0.116139939252,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.820607503255,0.90875453575,0.909803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[156.945,-46.504],[-81.707,-337.869],[-82.422,-4.303],[-8.438,24.609]],"o":[[-47.894,-0.995],[142.121,77.797],[103.681,2.048],[36.658,-97.977]],"v":[[-541.317,-407.522],[-758.009,-69.107],[-472.491,14.264],[-337.506,-50.217]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745098039,0.116139939252,0.116139939252,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.25731640984,0.296602675494,0.36862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0.635],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745098039,0.116139939252,0.116139939252,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.25731640984,0.296602675494,0.36862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 4","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.64,"y":1},"o":{"x":0.36,"y":0},"n":"0p64_1_0p36_0","t":0,"s":[90.625,22.472,0],"e":[90.625,69.472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.64,"y":1},"o":{"x":0.36,"y":0},"n":"0p64_1_0p36_0","t":10,"s":[90.625,69.472,0],"e":[90.625,1.14,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.64,"y":1},"o":{"x":0.36,"y":0},"n":"0p64_1_0p36_0","t":25,"s":[90.625,1.14,0],"e":[90.625,22.472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.64,"y":1},"o":{"x":0.36,"y":0},"n":"0p64_1_0p36_0","t":32.5,"s":[90.625,22.472,0],"e":[90.625,69.472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.64,"y":1},"o":{"x":0.36,"y":0},"n":"0p64_1_0p36_0","t":40,"s":[90.625,69.472,0],"e":[90.625,1.14,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.64,"y":1},"o":{"x":0.36,"y":0},"n":"0p64_1_0p36_0","t":55,"s":[90.625,1.14,0],"e":[90.625,22.472,0],"to":[0,0,0],"ti":[0,-3.55530524253845,0]},{"t":62.5}],"ix":2},"a":{"a":0,"k":[-534,-71,0],"ix":1},"s":{"a":0,"k":[82,82,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[79.512,-28.718],[128.927,-3.537],[-105.08,0],[-2.52,105.05]],"o":[[-104.42,37.713],[-2.52,105.05],[105.08,0],[-117.463,-15.766]],"v":[[19.512,30.024],[-216.488,6.098],[0,209],[210.39,8.537]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745098039,0.116139939252,0.116139939252,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039215686,0.369550158931,0.369550158931,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-544,-76],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 2","parent":12,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-632.018,37.043,0],"ix":2},"a":{"a":0,"k":[-60,14,0],"ix":1},"s":{"a":0,"k":[121.951,121.951,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.698039215686,0.36862745098,0.36862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":60,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[-211.78,-154.468],[58.25,-115.367]],"o":[[202.25,147.517],[0,0]],"v":[[-90,-8.717],[-32,356.915]],"c":false}],"e":[{"i":[[-133.513,-186.523],[173.558,-170.346]],"o":[[111.25,101.551],[-158.442,143.306]],"v":[[-90,-8.717],[-76.308,313.653]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[{"i":[[-133.513,-186.523],[173.558,-170.346]],"o":[[111.25,101.551],[-158.442,143.306]],"v":[[-90,-8.717],[-76.308,313.653]],"c":false}],"e":[{"i":[[-55.245,-218.577],[164.087,-143.863]],"o":[[57.635,179.132],[-150.018,116.536]],"v":[[-90,-8.717],[-170.15,338.802]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[{"i":[[-55.245,-218.577],[164.087,-143.863]],"o":[[57.635,179.132],[-150.018,116.536]],"v":[[-90,-8.717],[-170.15,338.802]],"c":false}],"e":[{"i":[[-16.111,-234.604],[138.952,-127.777]],"o":[[21.481,187.035],[-125.216,98.487]],"v":[[-90,-22.8],[-191.59,327.852]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[{"i":[[-16.111,-234.604],[138.952,-127.777]],"o":[[21.481,187.035],[-125.216,98.487]],"v":[[-90,-22.8],[-191.59,327.852]],"c":false}],"e":[{"i":[[-65.833,-253.727],[124.101,-98.778]],"o":[[49.727,191.652],[-57.787,45.995]],"v":[[-90,-8.717],[-201.875,297.204]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[{"i":[[-65.833,-253.727],[124.101,-98.778]],"o":[[49.727,191.652],[-57.787,45.995]],"v":[[-90,-8.717],[-201.875,297.204]],"c":false}],"e":[{"i":[[-21.003,-232.601],[107.195,-65.321]],"o":[[99.25,220.522],[-193.086,117.66]],"v":[[-90,-8.717],[-190.937,279.009]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":40,"s":[{"i":[[-21.003,-232.601],[107.195,-65.321]],"o":[[99.25,220.522],[-193.086,117.66]],"v":[[-90,-8.717],[-190.937,279.009]],"c":false}],"e":[{"i":[[-148.188,-180.512],[224.852,-167.321]],"o":[[140.352,98.004],[-61.947,30.61]],"v":[[-90,-8.717],[-40.125,310.123]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[{"i":[[-148.188,-180.512],[224.852,-167.321]],"o":[[140.352,98.004],[-61.947,30.61]],"v":[[-90,-8.717],[-40.125,310.123]],"c":false}],"e":[{"i":[[-211.78,-154.468],[58.25,-115.367]],"o":[[202.25,147.517],[0,0]],"v":[[-90,-8.717],[-32,356.915]],"c":false}]},{"t":64}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.368627458811,0.368627458811,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":84,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[6,-3.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,110.951],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[-211.78,-154.468],[58.25,-115.367]],"o":[[202.25,147.517],[0,0]],"v":[[-90,-8.717],[-32,356.915]],"c":false}],"e":[{"i":[[-55.245,-218.577],[164.087,-143.863]],"o":[[57.635,179.132],[-150.018,116.536]],"v":[[-90,-8.717],[-170.15,338.802]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[{"i":[[-55.245,-218.577],[164.087,-143.863]],"o":[[57.635,179.132],[-150.018,116.536]],"v":[[-90,-8.717],[-170.15,338.802]],"c":false}],"e":[{"i":[[-16.111,-234.604],[138.952,-127.777]],"o":[[21.481,187.035],[-125.216,98.487]],"v":[[-90,-22.8],[-191.59,327.852]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[{"i":[[-16.111,-234.604],[138.952,-127.777]],"o":[[21.481,187.035],[-125.216,98.487]],"v":[[-90,-22.8],[-191.59,327.852]],"c":false}],"e":[{"i":[[42.589,-258.645],[101.25,-103.65]],"o":[[-32.75,198.891],[-51.609,52.833]],"v":[[-90,-8.717],[-201.875,297.204]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[{"i":[[42.589,-258.645],[101.25,-103.65]],"o":[[-32.75,198.891],[-51.609,52.833]],"v":[[-90,-8.717],[-201.875,297.204]],"c":false}],"e":[{"i":[[-21.003,-232.601],[107.195,-65.321]],"o":[[99.25,220.522],[-193.086,117.66]],"v":[[-90,-8.717],[-190.937,279.009]],"c":false}]},{"t":40}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":0,"k":82,"ix":2},"o":{"a":0,"k":3,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.301545565736,0.301545565736,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":85,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[6,-3.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,110.951],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 1","parent":12,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-518.22,-17.104,0],"ix":2},"a":{"a":0,"k":[-15,0,0],"ix":1},"s":{"a":0,"k":[121.951,121.951,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[0,0],[90.037,-113.557]],"o":[[0,0],[-9.963,20.23]],"v":[[-14,-0.605],[-155.438,325.087]],"c":false}],"e":[{"i":[[0,0],[297.769,-151.903]],"o":[[0,0],[-379.918,193.811]],"v":[[-14,-0.605],[-156.769,291.605]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12,"s":[{"i":[[0,0],[297.769,-151.903]],"o":[[0,0],[-379.918,193.811]],"v":[[-14,-0.605],[-156.769,291.605]],"c":false}],"e":[{"i":[[-90.055,-74.065],[232.29,-219.388]],"o":[[112.662,92.658],[-307.839,225.975]],"v":[[-14,-0.605],[33.559,333.973]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":24,"s":[{"i":[[-90.055,-74.065],[232.29,-219.388]],"o":[[112.662,92.658],[-307.839,225.975]],"v":[[-14,-0.605],[33.559,333.973]],"c":false}],"e":[{"i":[[-38.901,-103.432],[102.224,-185.126]],"o":[[97.037,74.012],[-206.978,304.292]],"v":[[-14,-0.605],[74.562,328.242]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":40,"s":[{"i":[[-38.901,-103.432],[102.224,-185.126]],"o":[[97.037,74.012],[-206.978,304.292]],"v":[[-14,-0.605],[74.562,328.242]],"c":false}],"e":[{"i":[[0,0],[196.5,-285.56]],"o":[[0,0],[-196.5,285.56]],"v":[[-14,-0.605],[-154.125,358.267]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[{"i":[[0,0],[196.5,-285.56]],"o":[[0,0],[-196.5,285.56]],"v":[[-14,-0.605],[-154.125,358.267]],"c":false}],"e":[{"i":[[0,0],[128.141,-141.768]],"o":[[0,0],[-72.142,108.673]],"v":[[-14,-0.605],[-160.729,329.106]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[{"i":[[0,0],[128.141,-141.768]],"o":[[0,0],[-72.142,108.673]],"v":[[-14,-0.605],[-160.729,329.106]],"c":false}],"e":[{"i":[[0,0],[90.037,-113.557]],"o":[[0,0],[-9.963,20.23]],"v":[[-14,-0.605],[-155.438,325.087]],"c":false}]},{"t":64}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705908298,0.325536340475,0.325536340475,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":84,"ix":5},"lc":1,"lj":1,"ml":1,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,110.951],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-38.901,-103.432],[160.037,-206.954]],"o":[[97.037,74.012],[-206.978,304.292]],"v":[[-14,-0.605],[74.562,328.242]],"c":false},"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":0,"k":82,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.298039227724,0.257131874561,0.257131874561,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":83,"ix":5},"lc":2,"lj":1,"ml":1,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,110.951],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745098039,0.116139939252,0.116139939252,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":21,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 11","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-473.929,-195.197,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[190.549,190.549,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false},"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":87,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.980392158031,0.792156875134,0.627451002598,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":34,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-23,18],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37.5,"s":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":47.5,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}],"e":[{"i":[[0,0],[-0.628,-24.436],[11.2,-26.205]],"o":[[0,0],[2.298,43.346],[-15.553,37.24]],"v":[[53.75,-76],[33.35,43.5],[152.35,61.2]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":64,"s":[{"i":[[0,0],[-0.628,-24.436],[11.2,-26.205]],"o":[[0,0],[2.298,43.346],[-15.553,37.24]],"v":[[53.75,-76],[33.35,43.5],[152.35,61.2]],"c":false}],"e":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":65,"s":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":72.5,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}],"e":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":80,"s":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}],"e":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":87.5,"s":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}],"e":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":92.5,"s":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}],"e":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}]},{"t":100}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.3505421358,0.408821913775,0.513725490196,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":34,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-23,18],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":98,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":37.5,"op":637.5,"st":37.5,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 10","parent":11,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[100],"e":[0]},{"t":37.5}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-467.26,-195.197,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[190.549,190.549,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-25,"s":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-15,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-7.5,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}],"e":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2.5,"s":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}],"e":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17.5,"s":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}],"e":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}],"e":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}],"e":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}]},{"t":37.5}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":89,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.980392158031,0.792156875134,0.627451002598,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":34,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-33.48,18],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-25,"s":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-15,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-3,30],[65,155]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-7.5,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[21,30],[113,135]],"c":false}],"e":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2.5,"s":[{"i":[[0,0],[-2.031,-21.152],[10,-25.348]],"o":[[0,0],[4,41.652],[-14.837,37.609]],"v":[[54,-76],[35,45],[157,53]],"c":false}],"e":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[{"i":[[0,0],[12,-54],[22,-33.92]],"o":[[0,0],[-13.019,58.587],[-22,33.92]],"v":[[54,-76],[-2,50],[92,115]],"c":false}],"e":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17.5,"s":[{"i":[[0,0],[20,-44.091],[22,-33.92]],"o":[[0,0],[-24.793,54.656],[-22,33.92]],"v":[[54,-76],[-27,23],[20,140]],"c":false}],"e":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[{"i":[[0,0],[11.429,-44.49],[36.429,-47.205]],"o":[[0,0],[-14.932,58.129],[-9.825,31.173]],"v":[[54,-76],[-46.429,16.143],[-59.429,144.857]],"c":false}],"e":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[{"i":[[0,0],[11.657,-48.294],[16.257,-68.462]],"o":[[0,0],[-14.167,58.313],[-13.895,29.104]],"v":[[54,-76],[-33.457,16.086],[-17.257,158.114]],"c":false}],"e":[{"i":[[0,0],[12,-54],[0,-36]],"o":[[0,0],[-13.019,58.587],[0,32.803]],"v":[[54,-76],[-36,25],[21,152]],"c":false}]},{"t":37.5}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.3505421358,0.408821913775,0.513725490196,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":34,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-33.48,18],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":-25,"op":575,"st":-25,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 21","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[819.189,10],"ix":2},"p":{"a":0,"k":[0,40],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.498039215686,0.473137260886,0.462883504232,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3,-269],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[214.09,100],"ix":3},"r":{"a":0,"k":17,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[819.189,25],"ix":2},"p":{"a":0,"k":[0,40],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.364705882353,0.328235312069,0.313218000823,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1,-263],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[214.09,100],"ix":3},"r":{"a":0,"k":17,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 2","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[819.189,10],"ix":2},"p":{"a":0,"k":[0,40],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.498039215686,0.474509803922,0.462745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2.5,-175],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[214.09,100],"ix":3},"r":{"a":0,"k":17,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 4","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[819.189,25],"ix":2},"p":{"a":0,"k":[0,40],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.364705882353,0.329411764706,0.313725490196,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-3,-167],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[214.09,100],"ix":3},"r":{"a":0,"k":17,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 20","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-33.339,76.282,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":2,"s":{"a":0,"k":[53.057,259],"ix":2},"p":{"a":0,"k":[0,14],"ix":3},"r":{"a":0,"k":36,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.347681681315,0.329411764706,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":45,"ix":1},"o":{"a":0,"k":-14,"ix":2},"m":1,"ix":4,"tr":{"ty":"tr","p":{"a":0,"k":[99,30],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[-513,-315],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[75,100],"ix":3},"r":{"a":0,"k":-6,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":4,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 2","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":2,"s":{"a":0,"k":[53.057,259],"ix":2},"p":{"a":0,"k":[0,14],"ix":3},"r":{"a":0,"k":36,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.592156887054,0.511262953281,0.483014255762,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":45,"ix":1},"o":{"a":0,"k":-14,"ix":2},"m":1,"ix":4,"tr":{"ty":"tr","p":{"a":0,"k":[99,30],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[-506,-317],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[75,100],"ix":3},"r":{"a":0,"k":-6,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":4,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Shape Layer 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[484,827,0],"ix":2},"a":{"a":0,"k":[-55,362,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.859,0.859,1.183]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,-0.183]},"n":["0p833_0p859_0p167_0p167","0p833_0p859_0p167_0p167","0p833_1p183_0p167_-0p183"],"t":0,"s":[83,83,100],"e":[74,74,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.873,0.873,1.796]},"o":{"x":[0.167,0.167,0.167],"y":[0.128,0.128,-0.796]},"n":["0p833_0p873_0p167_0p128","0p833_0p873_0p167_0p128","0p833_1p796_0p167_-0p796"],"t":12,"s":[74,74,100],"e":[85,85,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.856,0.856,0.651]},"o":{"x":[0.167,0.167,0.167],"y":[0.142,0.142,0.349]},"n":["0p833_0p856_0p167_0p142","0p833_0p856_0p167_0p142","0p833_0p651_0p167_0p349"],"t":24,"s":[85,85,100],"e":[75,75,100]},{"i":{"x":[0.77,0.77,0.833],"y":[0.809,0.809,0.97]},"o":{"x":[0.186,0.186,0.167],"y":[0.154,0.154,0.03]},"n":["0p77_0p809_0p186_0p154","0p77_0p809_0p186_0p154","0p833_0p97_0p167_0p03"],"t":40,"s":[75,75,100],"e":[87,87,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.868,0.868,0.607]},"o":{"x":[0.167,0.167,0.167],"y":[0.135,0.135,0.393]},"n":["0p833_0p868_0p167_0p135","0p833_0p868_0p167_0p135","0p833_0p607_0p167_0p393"],"t":56,"s":[87,87,100],"e":[83,83,100]},{"t":64}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[520,178],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.3505421358,0.408821913775,0.513725490196,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.57647061348,0.454901963472,0.411764711142,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-54,361],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[92,92],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":16,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[556.846,775.484,0],"e":[182.5,664.5,0],"to":[-62.3910217285156,-18.4974060058594,0],"ti":[62.3910217285156,18.4974060058594,0]},{"t":64}],"ix":2},"a":{"a":0,"k":[-1035,52,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[46,43.579],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.454155117858,0.411441788019,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1430,303],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[67,67],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":-46,"ix":4},"sa":{"a":0,"k":18,"ix":5},"nm":"Transform"}],"nm":"Ellipse 6","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[76,72],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.454155117858,0.411441788019,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-401.563,351.938],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":-46,"ix":4},"sa":{"a":0,"k":18,"ix":5},"nm":"Transform"}],"nm":"Ellipse 10","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[76,72],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.454155117858,0.411441788019,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-776,241],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":-46,"ix":4},"sa":{"a":0,"k":18,"ix":5},"nm":"Transform"}],"nm":"Ellipse 5","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[46.444,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.454155117858,0.411441788019,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-790,-54],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":-46,"ix":4},"sa":{"a":0,"k":18,"ix":5},"nm":"Transform"}],"nm":"Ellipse 4","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[46,43.579],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.454155117858,0.411441788019,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1248,296],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":-46,"ix":4},"sa":{"a":0,"k":18,"ix":5},"nm":"Transform"}],"nm":"Ellipse 3","np":3,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[76,72],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.454155117858,0.411441788019,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1230,134],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[58,58],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":-46,"ix":4},"sa":{"a":0,"k":18,"ix":5},"nm":"Transform"}],"nm":"Ellipse 8","np":3,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[69.667,66],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.454155117858,0.411441788019,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1502,-247],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":-46,"ix":4},"sa":{"a":0,"k":18,"ix":5},"nm":"Transform"}],"nm":"Ellipse 9","np":3,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[69.667,66],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.454155117858,0.411441788019,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1127.625,-136.063],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":-46,"ix":4},"sa":{"a":0,"k":18,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[46.444,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.454155117858,0.411441788019,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-415.562,57],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":-46,"ix":4},"sa":{"a":0,"k":18,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2416,-620],[-2648,8],[864,1156],[1088,444]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901960784,0.416844805549,0.383544802198,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098039216,0.739073211072,0.667128020642,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-256,-165],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":1,"nm":"Medium Turquoise Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,500,0],"ix":2},"a":{"a":0,"k":[1750,519,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":3500,"sh":1038,"sc":"#45d28b","ip":0,"op":600,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/layout.edc b/external/rlottie/example/resource/layout.edc new file mode 100644 index 000000000..4021200f1 --- /dev/null +++ b/external/rlottie/example/resource/layout.edc @@ -0,0 +1,93 @@ +collections { + group { "layout"; + parts { + rect { "bg"; + desc { "default"; + color: 225 225 225 225; + } + } + spacer { "lottie_base"; + desc { "default"; + rel1.to_y: "text"; + rel1.relative: 0.0 1.0; + rel2.to_y: "slider"; + rel2.relative: 1.0 0.0; + } + } + swallow { "lottie"; + desc { "default"; + rel1.to: "lottie_base"; + rel2.to: "lottie_base"; + } + } + text { "text"; + desc { "default"; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 0.0; + rel1.offset: -20 20; + rel2.offset: -20 20; + align: 1.0 0.0; + color: 0 0 0 255; + min: 200 30; + text { + font: "arial"; + size: 25; + align: 1.0 0.5; + } + } + } + swallow { "slider"; + desc { "default"; + min: 0 100; + max: -1 100; + align: 0.5 1.0; + rel1.to_x: "left_pad"; + rel1.relative: 1.0 1.0; + rel2.to_x: "button_left_pad"; + rel2.relative: 0.0 1.0; + fixed: 0 1; + } + } + spacer { "left_pad"; + desc { "default"; + fixed: 1 0; + min: 20 0; + align: 0.0 0.5; + rel2.relative: 0.0 0.0; + } + } + spacer { "right_pad"; + desc { "default"; + fixed: 1 0; + min: 20 0; + align: 1.0 0.5; + rel1.relative: 1.0 0.0; + } + } + swallow { "button"; + desc { "default"; + fixed: 1 1; + min: 80 55; + align: 1.0 0.5; + rel1.to_x: "right_pad"; + rel1.to_y: "slider"; + rel1.relative: 0.0 0.5; + rel2.to_x: "right_pad"; + rel2.to_y: "slider"; + rel2.relative: 0.0 0.5; + } + } + spacer { "button_left_pad"; + desc { "default"; + fixed: 1 0; + min: 20 0; + align: 1.0 0.5; + rel1.to_x: "button"; + rel1.relative: 0.0 0.0; + rel2.to_x: "button"; + rel2.relative: 0.0 1.0; + } + } + } + } +} diff --git a/external/rlottie/example/resource/layout.edj b/external/rlottie/example/resource/layout.edj new file mode 100644 index 000000000..4efc51396 Binary files /dev/null and b/external/rlottie/example/resource/layout.edj differ diff --git a/external/rlottie/example/resource/leap_frog_loader.json b/external/rlottie/example/resource/leap_frog_loader.json new file mode 100644 index 000000000..cac502dfb --- /dev/null +++ b/external/rlottie/example/resource/leap_frog_loader.json @@ -0,0 +1 @@ +{"v":"5.1.10","fr":24,"ip":24,"op":72,"w":600,"h":600,"nm":"Loader 7","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"n":"0p7_1_0p3_0","t":24,"s":[388.699,300,0],"e":[268.699,300,0],"to":[-34,49,0],"ti":[25.30078125,45.5,0]},{"t":36,"s":[268.699,300,0],"h":1},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"n":"0p7_1_0p3_0","t":48,"s":[268.699,300,0],"e":[208.699,300,0],"to":[-19.69921875,-42,0],"ti":[2.5,-26,0]},{"t":60,"s":[208.699,300,0],"h":1},{"t":72,"s":[208.699,300,0],"h":1}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, t, v;\ntry {\n amp = div(effect('Position - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Position - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Position - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"a":{"a":0,"k":[-247.301,-57.301,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Position - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":20,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Overshoot","np":3,"mn":"ADBE Slider Control","ix":4,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":20,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Bounce","np":3,"mn":"ADBE Slider Control","ix":5,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Friction","np":3,"mn":"ADBE Slider Control","ix":6,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[25.398,25.398],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.532643995098,0.532643995098,0.532643995098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.298039215686,0.298039215686,0.298039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-247.301,-57.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"n":"0p7_1_0p3_0","t":24,"s":[328.699,300,0],"e":[388.699,300,0],"to":[15.80078125,-29.5,0],"ti":[-20.4083786010742,-15.2806444168091,0]},{"t":36,"s":[388.699,300,0],"h":1},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"n":"0p7_1_0p3_0","t":48,"s":[388.699,300,0],"e":[268.699,300,0],"to":[-21.9206390380859,-56.3496513366699,0],"ti":[22.5,-58.25,0]},{"t":60,"s":[268.699,300,0],"h":1},{"t":72,"s":[268.699,300,0],"h":1}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, t, v;\ntry {\n amp = div(effect('Position - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Position - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Position - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"a":{"a":0,"k":[-247.301,-57.301,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Position - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":20,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[25.398,25.398],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.532643995098,0.532643995098,0.532643995098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.298039215686,0.298039215686,0.298039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-247.301,-57.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"n":"0p7_1_0p3_0","t":24,"s":[268.699,300,0],"e":[208.699,300,0],"to":[-12,25,0],"ti":[2.80078125,18,0]},{"t":36,"s":[208.699,300,0],"h":1},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"n":"0p7_1_0p3_0","t":48,"s":[208.699,300,0],"e":[328.699,300,0],"to":[30.80078125,67,0],"ti":[-17.5,54,0]},{"t":60,"s":[328.699,300,0],"h":1},{"t":72,"s":[328.699,300,0],"h":1}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, t, v;\ntry {\n amp = div(effect('Position - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Position - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Position - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"a":{"a":0,"k":[-247.301,-57.301,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Position - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":20,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[25.398,25.398],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.532643995098,0.532643995098,0.532643995098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.298039215686,0.298039215686,0.298039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-247.301,-57.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"n":"0p7_1_0p3_0","t":24,"s":[208.699,300,0],"e":[328.699,300,0],"to":[18.30078125,-59.5,0],"ti":[-12,-47.5,0]},{"t":36,"s":[328.699,300,0],"h":1},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"n":"0p7_1_0p3_0","t":48,"s":[328.699,300,0],"e":[388.699,300,0],"to":[7.66105842590332,31.200023651123,0],"ti":[-8.19921875,40,0]},{"t":60,"s":[388.699,300,0],"h":1},{"t":72,"s":[388.699,300,0],"h":1}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, t, v;\ntry {\n amp = div(effect('Position - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Position - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Position - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"a":{"a":0,"k":[-247.301,-57.301,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Position - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":20,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Position - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":40,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[25.398,25.398],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.532643995098,0.532643995098,0.532643995098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.298039215686,0.298039215686,0.298039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-247.301,-57.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/like.json b/external/rlottie/example/resource/like.json new file mode 100644 index 000000000..95c14168e --- /dev/null +++ b/external/rlottie/example/resource/like.json @@ -0,0 +1 @@ +{"assets":[],"layers":[{"ddd":0,"ind":0,"ty":1,"nm":"品蓝色 纯色 1","ks":{"o":{"k":[{"i":{"x":[0.667],"y":[0.667]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_0p667_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.537],"y":[0]},"n":["0p667_1_0p537_0"],"t":5,"s":[100],"e":[0]},{"t":17}]},"r":{"k":0},"p":{"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[400,320,0],"e":[408,274,0],"to":[1.33333337306976,-7.66666650772095,0],"ti":[-1.33333337306976,7.66666650772095,0]},{"t":17}]},"a":{"k":[400,300,0]},"s":{"k":[{"i":{"x":[0.518,0.518,0.667],"y":[1,1,0.667]},"o":{"x":[0.16,0.16,0.333],"y":[0.329,0.329,0.333]},"n":["0p518_1_0p16_0p329","0p518_1_0p16_0p329","0p667_0p667_0p333_0p333"],"t":5,"s":[0,0,100],"e":[160,160,100]},{"t":17}]}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"k":{"i":[[0,0],[3.675,0],[0,0],[2.623,1.039],[10.49,18.686],[8.393,0],[0,0],[5.767,-5.706],[-0.526,-6.747],[8.391,-4.158],[2.101,0],[0,0],[0,-4.152],[0,0],[-4.196,0],[0,0],[-1.574,1.04],[-1.051,-0.52],[-31.47,0],[-9.441,41.527],[-2.097,6.748],[5.768,7.267]],"o":[[-7.342,-8.823],[0,0],[-12.065,0],[14.688,-23.358],[-5.772,-9.866],[0,0],[-3.671,-0.52],[-3.672,3.633],[4.198,46.715],[-1.572,-1.556],[0,0],[-4.198,0],[0,0],[0,4.155],[0,0],[2.097,0],[0.525,1.036],[0,0],[31.47,0],[2.098,-9.345],[3.671,-14.014],[0,0]],"v":[[521.158,276.64],[498.604,267.817],[454.021,267.817],[433.565,265.741],[435.663,188.92],[414.159,173.864],[413.112,173.864],[395.279,178.534],[390.561,194.626],[337.06,270.932],[331.816,268.856],[280.411,268.856],[272.544,276.642],[272.544,419.386],[280.411,427.172],[332.339,427.172],[338.111,425.096],[340.208,427.172],[464.514,426.652],[517.49,333.736],[523.785,308.82],[521.16,276.637]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"蒙版 1"}],"sw":800,"sh":600,"sc":"#00b1ff","ip":0,"op":50,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":1,"nm":"品蓝色 纯色 3","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":11,"s":[0],"e":[100]},{"t":15}]},"r":{"k":0},"p":{"k":[400,300,0]},"a":{"k":[400,300,0]},"s":{"k":[100,100,100]}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"k":{"i":[[0,0],[3.675,0],[0,0],[2.623,1.039],[10.49,18.686],[8.393,0],[0,0],[5.767,-5.706],[-0.526,-6.747],[8.391,-4.158],[2.101,0],[0,0],[0,-4.152],[0,0],[-4.196,0],[0,0],[-1.574,1.04],[-1.051,-0.52],[-31.47,0],[-9.441,41.527],[-2.097,6.748],[5.768,7.267]],"o":[[-7.342,-8.823],[0,0],[-12.065,0],[14.688,-23.358],[-5.772,-9.866],[0,0],[-3.671,-0.52],[-3.672,3.633],[4.198,46.715],[-1.572,-1.556],[0,0],[-4.198,0],[0,0],[0,4.155],[0,0],[2.097,0],[0.525,1.036],[0,0],[31.47,0],[2.098,-9.345],[3.671,-14.014],[0,0]],"v":[[521.158,276.64],[498.604,267.817],[454.021,267.817],[433.565,265.741],[435.663,188.92],[414.159,173.864],[413.112,173.864],[395.279,178.534],[390.561,194.626],[337.06,270.932],[331.816,268.856],[280.411,268.856],[272.544,276.642],[272.544,419.386],[280.411,427.172],[332.339,427.172],[338.111,425.096],[340.208,427.172],[464.514,426.652],[517.49,333.736],[523.785,308.82],[521.16,276.637]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"蒙版 3"},{"inv":false,"mode":"s","pt":{"k":{"i":[[0,0],[2.097,-9.861],[18.887,0],[6.816,0],[0,0],[-1.052,0.52],[5.769,62.291],[0.525,0],[-3.147,0],[0,0],[-2.098,-4.669],[12.067,-18.166],[-1.052,-2.596],[-21.503,0],[0,0],[-2.101,-2.597],[2.618,-8.822]],"o":[[-2.098,7.267],[-7.343,32.183],[-30.419,0],[0,0],[1.047,0],[2.624,-1.036],[0,-2.597],[0.525,-0.52],[0,0],[2.098,0],[8.392,15.571],[-4.199,6.23],[4.198,7.267],[0,0],[2.098,0],[3.671,2.597],[0,0]],"v":[[508.045,304.672],[501.75,330.626],[463.984,411.599],[339.679,412.119],[339.679,287.025],[342.303,286.505],[406.292,193.589],[406.292,189.956],[411.537,189.435],[413.634,189.435],[420.977,196.702],[418.353,259.51],[416.781,273.524],[452.971,283.903],[498.081,283.903],[507.524,286.5],[508.049,304.668]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"蒙版 1"},{"inv":false,"mode":"s","pt":{"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[323.943,411.599],[287.753,411.599],[287.753,284.428],[323.943,284.428]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"蒙版 2"}],"sw":800,"sh":600,"sc":"#00b1ff","ip":0,"op":50,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":1,"nm":"品蓝色 纯色 2","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":11,"s":[0],"e":[27]},{"t":16}]},"r":{"k":0},"p":{"k":[400,300,0]},"a":{"k":[400,300,0]},"s":{"k":[100,100,100]}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"k":{"i":[[0,0],[3.675,0],[0,0],[2.623,1.039],[10.49,18.686],[8.393,0],[0,0],[5.767,-5.706],[-0.526,-6.747],[8.391,-4.158],[2.101,0],[0,0],[0,-4.152],[0,0],[-4.196,0],[0,0],[-1.574,1.04],[-1.051,-0.52],[-31.47,0],[-9.441,41.527],[-2.097,6.748],[5.768,7.267]],"o":[[-7.342,-8.823],[0,0],[-12.065,0],[14.688,-23.358],[-5.772,-9.866],[0,0],[-3.671,-0.52],[-3.672,3.633],[4.198,46.715],[-1.572,-1.556],[0,0],[-4.198,0],[0,0],[0,4.155],[0,0],[2.097,0],[0.525,1.036],[0,0],[31.47,0],[2.098,-9.345],[3.671,-14.014],[0,0]],"v":[[521.158,276.64],[498.604,267.817],[454.021,267.817],[433.565,265.741],[435.663,188.92],[414.159,173.864],[413.112,173.864],[395.279,178.534],[390.561,194.626],[337.06,270.932],[331.816,268.856],[280.411,268.856],[272.544,276.642],[272.544,419.386],[280.411,427.172],[332.339,427.172],[338.111,425.096],[340.208,427.172],[464.514,426.652],[517.49,333.736],[523.785,308.82],[521.16,276.637]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"蒙版 1"}],"sw":800,"sh":600,"sc":"#00b1ff","ip":0,"op":50,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":1,"nm":"灰色 纯色 1","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[400,300,0]},"a":{"k":[400,300,0]},"s":{"k":[100,100,100]}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"k":{"i":[[0,0],[3.675,0],[0,0],[2.623,1.039],[10.49,18.686],[8.393,0],[0,0],[5.767,-5.706],[-0.526,-6.747],[8.391,-4.158],[2.101,0],[0,0],[0,-4.152],[0,0],[-4.196,0],[0,0],[-1.574,1.04],[-1.051,-0.52],[-31.47,0],[-9.441,41.527],[-2.097,6.748],[5.768,7.267]],"o":[[-7.342,-8.823],[0,0],[-12.065,0],[14.688,-23.358],[-5.772,-9.866],[0,0],[-3.671,-0.52],[-3.672,3.633],[4.198,46.715],[-1.572,-1.556],[0,0],[-4.198,0],[0,0],[0,4.155],[0,0],[2.097,0],[0.525,1.036],[0,0],[31.47,0],[2.098,-9.345],[3.671,-14.014],[0,0]],"v":[[521.158,276.64],[498.604,267.817],[454.021,267.817],[433.565,265.741],[435.663,188.92],[414.159,173.864],[413.112,173.864],[395.279,178.534],[390.561,194.626],[337.06,270.932],[331.816,268.856],[280.411,268.856],[272.544,276.642],[272.544,419.386],[280.411,427.172],[332.339,427.172],[338.111,425.096],[340.208,427.172],[464.514,426.652],[517.49,333.736],[523.785,308.82],[521.16,276.637]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"蒙版 3"},{"inv":false,"mode":"s","pt":{"k":{"i":[[0,0],[2.097,-9.861],[18.887,0],[6.816,0],[0,0],[-1.052,0.52],[5.769,62.291],[0.525,0],[-3.147,0],[0,0],[-2.098,-4.669],[12.067,-18.166],[-1.052,-2.596],[-21.503,0],[0,0],[-2.101,-2.597],[2.618,-8.822]],"o":[[-2.098,7.267],[-7.343,32.183],[-30.419,0],[0,0],[1.047,0],[2.624,-1.036],[0,-2.597],[0.525,-0.52],[0,0],[2.098,0],[8.392,15.571],[-4.199,6.23],[4.198,7.267],[0,0],[2.098,0],[3.671,2.597],[0,0]],"v":[[508.045,304.672],[501.75,330.626],[463.984,411.599],[339.679,412.119],[339.679,287.025],[342.303,286.505],[406.292,193.589],[406.292,189.956],[411.537,189.435],[413.634,189.435],[420.977,196.702],[418.353,259.51],[416.781,273.524],[452.971,283.903],[498.081,283.903],[507.524,286.5],[508.049,304.668]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"蒙版 1"},{"inv":false,"mode":"s","pt":{"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[323.943,411.599],[287.753,411.599],[287.753,284.428],[323.943,284.428]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"蒙版 2"}],"sw":800,"sh":600,"sc":"#8c8c8c","ip":0,"op":37,"st":0,"bm":0,"sr":1}],"v":"4.5.4","ddd":0,"ip":0,"op":50,"fr":25,"w":800,"h":600} \ No newline at end of file diff --git a/external/rlottie/example/resource/loader.json b/external/rlottie/example/resource/loader.json new file mode 100644 index 000000000..fe28cdf95 --- /dev/null +++ b/external/rlottie/example/resource/loader.json @@ -0,0 +1 @@ +{"v":"4.5.7","fr":25,"ip":0,"op":250,"w":800,"h":600,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":3,"nm":"Resize","ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[150,150,100]}},"ao":0,"ip":0,"op":250,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"Rectangle","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[-180],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":55,"s":[0],"e":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[5],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":75,"s":[0],"e":[36]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":81,"s":[36],"e":[90]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":85,"s":[90],"e":[95]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":86,"s":[95],"e":[90]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":95,"s":[90],"e":[90]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":105,"s":[90],"e":[270]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":115,"s":[270],"e":[-180]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":116,"s":[-180],"e":[-180]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":135,"s":[-180],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":150,"s":[0],"e":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":151,"s":[5],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":159,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":170,"s":[0],"e":[36]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":176,"s":[36],"e":[90]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[90],"e":[95]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":181,"s":[95],"e":[90]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":190,"s":[90],"e":[90]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":200,"s":[90],"e":[270]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":210,"s":[270],"e":[-180]},{"t":211}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75,"s":[0,0,0],"e":[0,-5,0],"to":[0,-0.83333331346512,0],"ti":[0,0.83333331346512,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":85,"s":[0,-5,0],"e":[0,-5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":105,"s":[0,-5,0],"e":[0,0,0],"to":[0,0.83333331346512,0],"ti":[0.08333333581686,-0.91666668653488,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":115,"s":[0,0,0],"e":[-0.5,0.5,0],"to":[-0.08333333581686,0.91666668653488,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":116,"s":[-0.5,0.5,0],"e":[0,0,0],"to":[0,0,0],"ti":[-0.08333333581686,0.91666668653488,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":170,"s":[0,0,0],"e":[0,-5,0],"to":[0.08333333581686,-0.91666668653488,0],"ti":[0,0.83333331346512,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":180,"s":[0,-5,0],"e":[0,-5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":200,"s":[0,-5,0],"e":[0,0,0],"to":[0,0.83333331346512,0],"ti":[0.08333333581686,-0.91666668653488,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":210,"s":[0,0,0],"e":[-0.5,0.5,0],"to":[-0.08333333581686,0.91666668653488,0],"ti":[0.08333333581686,-0.08333333581686,0]},{"t":211}]},"a":{"a":0,"k":[-0.5,0,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":18,"s":[0,0,100],"e":[80,80,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":23,"s":[80,80,100],"e":[110,110,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":25,"s":[110,110,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":30,"s":[100,100,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":40,"s":[100,100,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":116,"s":[100,100,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":135,"s":[100,100,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":211,"s":[100,100,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":220,"s":[100,100,100],"e":[110,110,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":225,"s":[110,110,100],"e":[80,80,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":228,"s":[80,80,100],"e":[0,0,100]},{"t":231}]}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-35],[-35,-35],[-35,35],[35,35]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-36.5],[-35,-21],[-35,21],[35,36.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-36.5],[-35,-21],[-35,21],[35,36.75]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-38.75],[-35,0],[-35,0],[35,39.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":85,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-38.75],[-35,0],[-35,0],[35,39.375]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-38.75],[-35,0],[-35,0],[35,39.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":105,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-38.75],[-35,0],[-35,0],[35,39.375]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[34,-35.25],[-36,-35],[-36,35],[34,34.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":115,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[34,-35.25],[-36,-35],[-36,35],[34,34.875]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-35],[-35,-35],[-35,35],[35,35]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":170,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-35],[-35,-35],[-35,35],[35,35]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-36.5],[-35,-21],[-35,21],[35,36.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":176,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-36.5],[-35,-21],[-35,21],[35,36.75]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-38.75],[-35,0],[-35,0],[35,39.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":180,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-38.75],[-35,0],[-35,0],[35,39.375]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-38.75],[-35,0],[-35,0],[35,39.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":200,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35,-38.75],[-35,0],[-35,0],[35,39.375]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[34,-35.25],[-36,-35],[-36,35],[34,34.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":210,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[34,-35.25],[-36,-35],[-36,35],[34,34.875]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[34,-35.25],[-36,-35],[-36,35],[34,34.875]],"c":true}]},{"t":220}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0,0,0,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"rd","nm":"Round Corners 1","r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[50],"e":[34]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[34],"e":[27.778]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":45,"s":[27.778],"e":[8.333]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":50,"s":[8.333],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":55,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":75,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":105,"s":[0],"e":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":115,"s":[50],"e":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":116,"s":[50],"e":[34]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":135,"s":[34],"e":[27.778]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":140,"s":[27.778],"e":[8.333]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":145,"s":[8.333],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":150,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":170,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":200,"s":[0],"e":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":210,"s":[50],"e":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":211,"s":[50],"e":[64]},{"t":220}]},"mn":"ADBE Vector Filter - RC"}],"ip":0,"op":250,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/loader_4.json b/external/rlottie/example/resource/loader_4.json new file mode 100644 index 000000000..69248a72b --- /dev/null +++ b/external/rlottie/example/resource/loader_4.json @@ -0,0 +1 @@ +{"v":"4.6.9","fr":29.9700012207031,"ip":0,"op":34.0000013848484,"w":800,"h":600,"nm":"Loader","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,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","ix":1,"ks":{"a":0,"k":{"i":[[36.812,0],[0,-19.33],[-19.33,0],[-37.125,0],[0,-19.33],[19.33,0]],"o":[[-19.33,0],[0,19.33],[36.688,0],[19.33,0],[0,19.33],[-37.25,0]],"v":[[-44.844,-35],[-79.844,0],[-44.844,35],[44.844,-35],[79.844,0],[44.844,35]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.105882,0.105882,0.105882,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":5.834,"s":[0],"e":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17.11,"s":[20],"e":[20]},{"i":{"x":[0.611],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p611_1_0p167_0p167"],"t":23.334,"s":[20],"e":[40]},{"t":35.0000014255792}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[12],"e":[32]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":11.666,"s":[32],"e":[32]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p5_1_0p167_0p167"],"t":17.11,"s":[32],"e":[53]},{"t":29.1662511879657}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":0,"s":[-22],"e":[82.925]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":17.11,"s":[82.925],"e":[193]},{"t":35.0000014255792}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":25},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,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","ix":1,"ks":{"a":0,"k":{"i":[[36.812,0],[0,-19.33],[-19.33,0],[-37.125,0],[0,-19.33],[19.33,0]],"o":[[-19.33,0],[0,19.33],[36.688,0],[19.33,0],[0,19.33],[-37.25,0]],"v":[[-44.844,-35],[-79.844,0],[-44.844,35],[44.844,-35],[79.844,0],[44.844,35]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.105882,0.105882,0.105882,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/loader_animation.json b/external/rlottie/example/resource/loader_animation.json new file mode 100644 index 000000000..c6453f8b2 --- /dev/null +++ b/external/rlottie/example/resource/loader_animation.json @@ -0,0 +1 @@ +{"v":"5.1.1","fr":74,"ip":0,"op":171,"w":128,"h":199,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 12","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":143,"s":[100],"e":[0]},{"t":156}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":47,"s":[67.5,-5,0],"e":[67.5,116.75,0],"to":[0,20.2916660308838,0],"ti":[1.04942238330841,18.8896026611328,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":98,"s":[67.5,116.75,0],"e":[39.5,116.75,0],"to":[-0.04166666790843,-0.75,0],"ti":[7.02829837799072,-5.70764303207397,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":130,"s":[39.5,116.75,0],"e":[15.25,131,0],"to":[-13.0033321380615,10.5599355697632,0],"ti":[0,0,0]},{"t":156}],"ix":2},"a":{"a":0,"k":[1,-1.5,0],"ix":1},"s":{"a":0,"k":[29.167,29.167,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.123029596665,0.123029596665,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1,-1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":47,"op":172,"st":47,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 11","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":98,"s":[1],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":100,"s":[100],"e":[0]},{"t":111}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":100,"s":[71,120,0],"e":[80,116.625,0],"to":[1.5,-0.5625,0],"ti":[-1.5,0.5625,0]},{"t":110}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[14.065,14.065,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":98,"op":172,"st":98,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":98,"s":[1],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":100,"s":[100],"e":[0]},{"t":111}],"ix":11},"r":{"a":0,"k":206.765,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":100,"s":[62.25,119.125,0],"e":[49.25,117.625,0],"to":[-2.16666674613953,-0.25,0],"ti":[2.16666674613953,0.25,0]},{"t":111}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[-11.341,-16.193,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392156863,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":98,"op":172,"st":98,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":125,"s":[100],"e":[0]},{"t":138}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":29,"s":[67.5,-5,0],"e":[67.5,116.75,0],"to":[0,20.2916660308838,0],"ti":[1.04942238330841,18.8896026611328,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":80,"s":[67.5,116.75,0],"e":[33.5,111.25,0],"to":[-0.04166666790843,-0.75,0],"ti":[7.02829837799072,-5.70764303207397,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":112,"s":[33.5,111.25,0],"e":[3,121.75,0],"to":[-13.0033321380615,10.5599355697632,0],"ti":[0,0,0]},{"t":138}],"ix":2},"a":{"a":0,"k":[1,-1.5,0],"ix":1},"s":{"a":0,"k":[29.167,29.167,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.138299740062,0.81568627451,0.047981542699,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1,-1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":29,"op":172,"st":29,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":80,"s":[1],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":82,"s":[100],"e":[0]},{"t":93}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":82,"s":[71,120,0],"e":[80,116.625,0],"to":[1.5,-0.5625,0],"ti":[-1.5,0.5625,0]},{"t":92}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[14.065,14.065,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.81568627451,0.047058823529,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":80,"op":172,"st":80,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":80,"s":[1],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":82,"s":[100],"e":[0]},{"t":93}],"ix":11},"r":{"a":0,"k":206.765,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":82,"s":[62.25,119.125,0],"e":[49.25,117.625,0],"to":[-2.16666674613953,-0.25,0],"ti":[2.16666674613953,0.25,0]},{"t":93}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[-11.341,-16.193,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.81568627451,0.047058823529,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":80,"op":172,"st":80,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":65,"s":[1],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":67,"s":[100],"e":[0]},{"t":78}],"ix":11},"r":{"a":0,"k":206.765,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":67,"s":[62.25,119.125,0],"e":[49.25,117.625,0],"to":[-2.16666674613953,-0.25,0],"ti":[2.16666674613953,0.25,0]},{"t":78}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[-11.341,-16.193,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078431373,0.858823529412,0.090196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":172,"st":65,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":65,"s":[1],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":67,"s":[100],"e":[0]},{"t":78}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":67,"s":[71,120,0],"e":[80,116.625,0],"to":[1.5,-0.5625,0],"ti":[-1.5,0.5625,0]},{"t":77}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[14.065,14.065,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078431373,0.858823529412,0.090196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":172,"st":65,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":111,"s":[100],"e":[0]},{"t":124}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":14,"s":[67.5,-5,0],"e":[67.5,116.75,0],"to":[0,20.2916660308838,0],"ti":[1.04942238330841,18.8896026611328,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":65,"s":[67.5,116.75,0],"e":[34.25,108.5,0],"to":[-0.04166666790843,-0.75,0],"ti":[7.74652624130249,-6.27588701248169,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":97,"s":[34.25,108.5,0],"e":[10.25,114.25,0],"to":[-11.3133344650269,9.16555500030518,0],"ti":[0,0,0]},{"t":123}],"ix":2},"a":{"a":0,"k":[1,-1.5,0],"ix":1},"s":{"a":0,"k":[29.167,29.167,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078431373,0.857477644378,0.089842366237,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1,-1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":14,"op":172,"st":14,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 18","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":152,"s":[100],"e":[0]},{"t":165}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":56,"s":[67.5,-5,0],"e":[67.5,116.75,0],"to":[0,20.2916660308838,0],"ti":[1.04942238330841,18.8896026611328,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":107,"s":[67.5,116.75,0],"e":[91.25,106,0],"to":[-0.04166666790843,-0.75,0],"ti":[-18.7426891326904,-16.4572200775146,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":139,"s":[91.25,106,0],"e":[121.25,105.25,0],"to":[16.5734615325928,14.5525054931641,0],"ti":[0,0,0]},{"t":165}],"ix":2},"a":{"a":0,"k":[1,-1.5,0],"ix":1},"s":{"a":0,"k":[29.167,29.167,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.568120021446,0.007843136787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1,-1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":56,"op":172,"st":56,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 17","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":105,"s":[1],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":107,"s":[100],"e":[0]},{"t":118}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":107,"s":[71,120,0],"e":[80,116.625,0],"to":[1.5,-0.5625,0],"ti":[-1.5,0.5625,0]},{"t":117}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[14.065,14.065,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.56862745098,0.007843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":105,"op":172,"st":105,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 16","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":105,"s":[0],"e":[85]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":107,"s":[85],"e":[0]},{"t":118}],"ix":11},"r":{"a":0,"k":206.765,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":107,"s":[62.25,119.125,0],"e":[49.25,117.625,0],"to":[-2.16666674613953,-0.25,0],"ti":[2.16666674613953,0.25,0]},{"t":118}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[-11.341,-16.193,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.56862745098,0.007843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":105,"op":172,"st":105,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 15","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":134,"s":[100],"e":[0]},{"t":147}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37,"s":[67.5,-5,0],"e":[67.5,116.75,0],"to":[0,20.2916660308838,0],"ti":[1.04942238330841,18.8896026611328,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":88,"s":[67.5,116.75,0],"e":[91.25,106,0],"to":[-0.04166666790843,-0.75,0],"ti":[-12.3503103256226,-21.6702175140381,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":120,"s":[91.25,106,0],"e":[121.25,122.75,0],"to":[10.5734605789185,18.5525054931641,0],"ti":[0,0,0]},{"t":146}],"ix":2},"a":{"a":0,"k":[1,-1.5,0],"ix":1},"s":{"a":0,"k":[29.167,29.167,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.107927718817,0.642268401501,0.949019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1,-1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":37,"op":172,"st":37,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 14","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":86,"s":[1],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":88,"s":[100],"e":[0]},{"t":99}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":88,"s":[71,120,0],"e":[80,116.625,0],"to":[1.5,-0.5625,0],"ti":[-1.5,0.5625,0]},{"t":98}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[14.065,14.065,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.109803921569,0.643137254902,0.949019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":86,"op":172,"st":86,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 13","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":86,"s":[0],"e":[85]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":88,"s":[85],"e":[0]},{"t":99}],"ix":11},"r":{"a":0,"k":206.765,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":88,"s":[62.25,119.125,0],"e":[49.25,117.625,0],"to":[-2.16666674613953,-0.25,0],"ti":[2.16666674613953,0.25,0]},{"t":99}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[-11.341,-16.193,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.109803921569,0.643137254902,0.949019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":86,"op":172,"st":86,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":49,"s":[0],"e":[85]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":51,"s":[85],"e":[0]},{"t":62}],"ix":11},"r":{"a":0,"k":206.765,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":51,"s":[62.25,119.125,0],"e":[49.25,117.625,0],"to":[-2.16666674613953,-0.25,0],"ti":[2.16666674613953,0.25,0]},{"t":62}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[-11.341,-16.193,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925490196078,0,0.549019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":49,"op":172,"st":49,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":49,"s":[1],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":51,"s":[100],"e":[0]},{"t":62}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":51,"s":[71,120,0],"e":[80,116.625,0],"to":[1.5,-0.5625,0],"ti":[-1.5,0.5625,0]},{"t":61}],"ix":2},"a":{"a":0,"k":[19.552,26.661,0],"ix":1},"s":{"a":0,"k":[14.065,14.065,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.5,-0.375],[10.625,-5.625],[0,0],[0.375,0.125]],"o":[[-3.375,-0.5],[-10.625,5.625],[0,0],[7.875,-5.25]],"v":[[28.125,22],[11.75,25.875],[14.5,31.25],[27,27.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925490196078,0,0.549019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":49,"op":172,"st":49,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":96,"s":[100],"e":[0]},{"t":109}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[67.5,-5,0],"e":[67.5,116.75,0],"to":[0,20.2916660308838,0],"ti":[1.04942238330841,18.8896026611328,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51,"s":[67.5,116.75,0],"e":[91.25,106,0],"to":[-0.04166666790843,-0.75,0],"ti":[-16.4489860534668,-18.7499160766602,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":83,"s":[91.25,106,0],"e":[116.75,116,0],"to":[10.5734605789185,12.0525054931641,0],"ti":[0,0,0]},{"t":109}],"ix":2},"a":{"a":0,"k":[1,-1.5,0],"ix":1},"s":{"a":0,"k":[29.167,29.167,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925490196078,0,0.549019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1,-1.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":172,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/loading.json b/external/rlottie/example/resource/loading.json new file mode 100644 index 000000000..b6605b8c7 --- /dev/null +++ b/external/rlottie/example/resource/loading.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":29.9700012207031,"ip":0,"op":900.000036657751,"w":237,"h":237,"nm":"final","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"flight","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.9]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p9_0p167_0p167"],"t":0,"s":[-50],"e":[0]},{"t":180.00000733155}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.894},"o":{"x":0.167,"y":0.167},"n":"0p833_0p894_0p167_0p167","t":0,"s":[-50,141.805,0],"e":[118,38.61,0],"to":[28,-17.1991653442383,0],"ti":[-78,4.31500005722046,0]},{"i":{"x":0.538,"y":0.736},"o":{"x":0.05,"y":1},"n":"0p538_0p736_0p05_1","t":180,"s":[118,38.61,0],"e":[118,38.61,0],"to":[0.02864627912641,-2.52048540115356,0],"ti":[0.00681143719703,0.76931047439575,0]},{"i":{"x":0.833,"y":0.761},"o":{"x":0.422,"y":0.048},"n":"0p833_0p761_0p422_0p048","t":242,"s":[118,38.61,0],"e":[118,33,0],"to":[-0.00714083854109,-0.80651438236237,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.821},"o":{"x":0.167,"y":0.126},"n":"0p833_0p821_0p167_0p126","t":274,"s":[118,33,0],"e":[118,43,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.845},"o":{"x":0.167,"y":0.155},"n":"0p833_0p845_0p167_0p155","t":304,"s":[118,43,0],"e":[118,33,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.179},"n":"0p833_0p833_0p167_0p179","t":330,"s":[118,33,0],"e":[118,43,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.828},"o":{"x":0.167,"y":0.178},"n":"0p833_0p828_0p167_0p178","t":360,"s":[118,43,0],"e":[118,33,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.161},"n":"0p833_0p833_0p167_0p161","t":392,"s":[118,33,0],"e":[118,43,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.831},"o":{"x":0.167,"y":0.172},"n":"0p833_0p831_0p167_0p172","t":422,"s":[118,43,0],"e":[118,33,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.164},"n":"0p833_0p833_0p167_0p164","t":453,"s":[118,33,0],"e":[118,43,0],"to":[0,0,0],"ti":[0,0,0]},{"t":483.000019672993}],"ix":2},"a":{"a":0,"k":[45.5,50.5,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","np":9,"mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":51,"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":135,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":6,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":7,"v":{"a":0,"k":1,"ix":7}}]}],"w":91,"h":101,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"may","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118.233,118.5,0],"ix":2},"a":{"a":0,"k":[219.5,200.5,0],"ix":1},"s":{"a":0,"k":[54.504,54.504,100],"ix":6}},"ao":0,"tm":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[14.114]},{"t":423.000017229143}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"w":439,"h":401,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"loading 2","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[119,221,0],"ix":2},"a":{"a":0,"k":[219.5,200.5,0],"ix":1},"s":{"a":0,"k":[78,78,100],"ix":6}},"ao":0,"w":439,"h":401,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118.5,118.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[237,237],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":true},{"ty":"fl","c":{"a":0,"k":[0.780392169952,0.898039221764,0.941176474094,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"flight Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[45.5,50.5,0],"ix":2},"a":{"a":0,"k":[45.5,50.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.198,-0.314],[6.473,-9.04],[-0.216,0.302],[-5.936,9.402]],"o":[[-5.936,9.401],[-0.215,0.301],[6.472,-9.04],[0.195,-0.31]],"v":[[9.09,-14.003],[-9.523,13.66],[-9.07,14.016],[9.544,-13.648]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.808000033509,0.808000033509,0.808000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[44.956,79.611],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.205,-0.309],[-5.842,-8.82],[0.205,0.308],[5.843,8.821]],"o":[[5.842,8.821],[0.204,0.309],[-5.841,-8.822],[-0.204,-0.309]],"v":[[-8.993,-13.058],[8.533,13.405],[8.993,13.059],[-8.534,-13.404]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.808000033509,0.808000033509,0.808000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[44.114,19.044],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.369,0.039],[0.49,-2.332],[-0.076,0.362],[-1.761,-0.183]],"o":[[-2.103,-0.219],[-0.077,0.364],[0.422,-2.007],[0.368,0.039]],"v":[[2.336,-1.493],[-2.628,1.262],[-2.059,1.35],[2.249,-0.924]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.808000033509,0.808000033509,0.808000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.746,46.668],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.37,0.025],[13.095,0.205],[-0.366,-0.005],[-13.016,-0.89]],"o":[[-13.065,-0.895],[-0.37,-0.005],[13.044,0.203],[0.368,0.025]],"v":[[19.622,0.529],[-19.622,-1.118],[-19.559,-0.544],[19.535,1.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.808000033509,0.808000033509,0.808000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.202,55.706],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.165,0.168],[0,0],[4.254,-5.523]],"o":[[4.098,-5.319],[0,0],[1.888,1.922],[0,0]],"v":[[-3.046,4.854],[-2.941,-4.643],[-1.288,-6.268],[-1.208,6.269]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.513999968884,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[84.149,50.261],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.005,3.843],[0,0],[-3.843,-0.005],[0,0],[0.005,-3.844],[0,0],[2.605,0.003]],"o":[[-3.843,-0.005],[0,0],[0.004,-3.843],[0,0],[2.605,0.003],[0,0],[-0.005,3.844],[0,0]],"v":[[-38.359,6.178],[-45.216,0.139],[-45.216,-0.324],[-38.345,-6.346],[35.679,-8.583],[45.217,-0.223],[45.217,0.241],[35.66,8.579]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.217,50.14],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.985,6.836],[-2.241,-6.833],[-4.654,-6.836],[-4.985,6.722]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.513999968884,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.21,41.265],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.985,-6.447],[-2.27,6.639],[-4.684,6.635],[-4.985,-6.639]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.513999968884,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.206,58.417],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[19.148,21.952],[-9.561,-21.942],[-19.148,-21.952],[-6.827,21.947]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929000016755,0.941000007181,0.957000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.136,21.953],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[19.197,-21.96],[-9.609,21.966],[-19.197,21.955],[-6.778,-21.965]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929000016755,0.941000007181,0.957000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.073,79.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.002,-1.534],[-1.66,-0.002],[0,0],[-0.001,1.534],[1.659,0.002]],"o":[[-1.659,-0.002],[-0.002,1.534],[0,0],[1.66,0.002],[0.002,-1.534],[0,0]],"v":[[-4.503,-2.876],[-7.511,-0.008],[-4.509,2.865],[4.503,2.876],[7.511,0.008],[4.51,-2.866]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.513999968884,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[52.114,70.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.002,-1.534],[-1.66,-0.002],[0,0],[-0.001,1.533],[1.659,0.002]],"o":[[-1.659,-0.002],[-0.001,1.533],[0,0],[1.659,0.001],[0.002,-1.534],[0,0]],"v":[[-4.503,-2.876],[-7.512,-0.008],[-4.51,2.865],[4.504,2.876],[7.51,0.008],[4.51,-2.866]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.513999968884,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[46.54,78.497],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.001,-1.534],[-1.66,-0.002],[0,0],[-0.001,1.534],[1.659,0.002]],"o":[[-1.659,-0.002],[-0.002,1.534],[0,0],[1.659,0.002],[0.002,-1.533],[0,0]],"v":[[-4.503,-2.876],[-7.51,-0.009],[-4.51,2.865],[4.504,2.876],[7.51,0.008],[4.51,-2.866]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.513999968884,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.892,86.626],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.002,1.534],[-1.659,-0.002],[0,0],[0.001,-1.533],[1.659,0.002]],"o":[[-1.659,-0.002],[0.001,-1.533],[0,0],[1.659,0.002],[-0.002,1.534],[0,0]],"v":[[-4.51,3.105],[-7.51,-0.009],[-4.503,-3.115],[4.51,-3.105],[7.512,0.008],[4.503,3.115]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.513999968884,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[52.16,29.937],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.002,1.534],[-1.659,-0.002],[0,0],[0.001,-1.534],[1.659,0.002]],"o":[[-1.659,-0.001],[0.001,-1.534],[0,0],[1.659,0.001],[-0.002,1.534],[0,0]],"v":[[-4.51,2.866],[-7.51,-0.008],[-4.504,-2.876],[4.51,-2.865],[7.512,0.009],[4.503,2.876]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.513999968884,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[46.602,22.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.002,1.533],[-1.659,-0.002],[0,0],[0.001,-1.534],[1.659,0.002]],"o":[[-1.659,-0.002],[0.001,-1.534],[0,0],[1.659,0.002],[-0.002,1.534],[0,0]],"v":[[-4.51,2.626],[-7.51,-0.008],[-4.504,-2.636],[4.51,-2.626],[7.512,0.008],[4.503,2.637]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.513999968884,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.973,14.136],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"may Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[659.5,200.5,0],"e":[219.5,200.5,0],"to":[-73.3333358764648,0,0],"ti":[147.91667175293,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":210,"s":[219.5,200.5,0],"e":[-228,200.5,0],"to":[-147.91667175293,0,0],"ti":[74.5833358764648,0,0]},{"t":422.000017188412}],"ix":2},"a":{"a":0,"k":[219.5,200.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.095,0],[1.385,-0.513],[7.344,0],[2.766,-3.613],[1.865,0],[0,-4.831],[-0.005,-0.121],[0,-5.671],[-6.637,0],[0,0],[0,7.132]],"o":[[-1.562,0],[-1.373,-6.977],[-4.885,0],[-1.417,-1.005],[-4.806,0],[0,0.123],[-5.243,1.3],[0,6.672],[0,0],[7.095,0],[0,-7.132]],"v":[[20.617,-7.197],[16.18,-6.39],[1.346,-18.63],[-10.637,-12.678],[-15.644,-14.279],[-24.347,-5.531],[-24.328,-5.167],[-33.464,6.549],[-21.446,18.63],[20.617,18.63],[33.464,5.716]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[327.953,358.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[18.395,0],[3.59,-1.33],[19.04,0],[7.17,-9.368],[4.838,0],[0,-12.526],[-0.013,-0.316],[0,-14.703],[-17.209,0],[0,0],[0,18.491]],"o":[[-4.049,0],[-3.559,-18.09],[-12.667,0],[-3.674,-2.606],[-12.462,0],[0,0.319],[-13.592,3.37],[0,17.298],[0,0],[18.395,0],[0,-18.49]],"v":[[53.453,-18.66],[41.951,-16.567],[3.492,-48.3],[-27.576,-32.87],[-40.559,-37.02],[-63.123,-14.34],[-63.075,-13.395],[-86.76,16.98],[-55.601,48.3],[53.453,48.3],[86.76,14.82]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":60,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[86.76,129.24],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[10.854,0.878],[0,2.671],[16.764,0],[5.258,-3.936],[2.695,0],[2.314,-7.548],[2.282,0],[0.843,-5.282],[0,-11.883],[-14.669,0],[0,0],[0,10.595]],"o":[[0.792,-2.44],[0,-15.106],[-7.37,0],[-2.342,-0.877],[-9.112,0],[-1.821,-0.989],[-6.095,0],[-12.599,1.871],[0,13.217],[0,0],[11.759,0],[0,-10.01]],"v":[[48.09,-1.622],[49.326,-9.308],[18.972,-36.66],[-0.409,-30.355],[-8.011,-31.722],[-27.093,-18.623],[-33.306,-20.215],[-45.236,-10.86],[-67.455,12.727],[-40.894,36.66],[46.164,36.66],[67.455,17.475]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":60,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[356.554,258.559],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.611,0.849],[0,0.379],[2.987,0],[0.684,-0.314],[5.387,0],[1.96,-3.103],[1.255,0],[0,-3.264],[-0.012,-0.153],[0,-4.09],[-4.849,0],[0,0],[0,3.612]],"o":[[0.073,-0.358],[0,-3.003],[-0.801,0],[-0.98,-5.128],[-3.926,0],[-0.955,-0.674],[-3.247,0],[0,0.156],[-3.756,1],[0,4.874],[0,0],[3.593,0],[0,-2.908]],"v":[[19.483,1.147],[19.595,0.04],[14.186,-5.397],[11.944,-4.903],[1.096,-13.906],[-8.23,-8.737],[-11.6,-9.809],[-17.479,-3.9],[-17.456,-3.439],[-23.984,5.082],[-15.206,13.906],[17.478,13.906],[23.984,7.367]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":28,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[414.784,81.916],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.3,0.748],[0,0.334],[2.63,0],[0.602,-0.277],[4.743,0],[1.725,-2.733],[1.105,0],[0,-2.874],[-0.011,-0.135],[0,-3.602],[-4.27,0],[0,0],[0,3.179]],"o":[[0.064,-0.314],[0,-2.643],[-0.705,0],[-0.862,-4.515],[-3.458,0],[-0.841,-0.593],[-2.859,0],[0,0.136],[-3.308,0.881],[0,4.291],[0,0],[3.164,0],[0,-2.562]],"v":[[17.155,1.009],[17.254,0.034],[12.492,-4.753],[10.517,-4.318],[0.966,-12.245],[-7.247,-7.694],[-10.215,-8.637],[-15.391,-3.434],[-15.37,-3.027],[-21.119,4.475],[-13.389,12.245],[15.39,12.245],[21.119,6.487]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":28,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[57.252,358.911],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.302,1.074],[0,0.48],[3.776,0],[0.864,-0.397],[6.809,0],[2.478,-3.923],[1.586,0],[0,-4.125],[-0.015,-0.193],[0,-5.17],[-6.129,0],[0,0],[0,4.566]],"o":[[0.093,-0.452],[0,-3.795],[-1.012,0],[-1.239,-6.482],[-4.965,0],[-1.207,-0.851],[-4.104,0],[0,0.196],[-4.748,1.264],[0,6.161],[0,0],[4.542,0],[0,-3.676]],"v":[[24.627,1.449],[24.77,0.049],[17.933,-6.822],[15.099,-6.198],[1.387,-17.579],[-10.404,-11.045],[-14.664,-12.4],[-22.095,-4.93],[-22.065,-4.347],[-30.318,6.423],[-19.221,17.578],[22.094,17.578],[30.318,9.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":28,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.451,17.578],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.038,1.313],[0,0.587],[4.619,0],[1.057,-0.485],[8.328,0],[3.032,-4.798],[1.941,0],[0,-5.045],[-0.019,-0.236],[0,-6.324],[-7.496,0],[0,0],[0,5.584]],"o":[[0.114,-0.553],[0,-4.642],[-1.238,0],[-1.515,-7.927],[-6.072,0],[-1.475,-1.041],[-5.019,0],[0,0.241],[-5.808,1.547],[0,7.535],[0,0],[5.556,0],[0,-4.497]],"v":[[30.121,1.772],[30.296,0.061],[21.933,-8.344],[18.467,-7.581],[1.696,-21.501],[-12.726,-13.51],[-17.936,-15.166],[-27.025,-6.031],[-26.988,-5.318],[-37.082,7.856],[-23.51,21.501],[27.023,21.501],[37.082,11.389]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[387.882,97.702],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.89,1.231],[0,2.922],[12.448,0],[3.63,-7.622],[3.085,0],[0,-8.534],[-0.029,-0.39],[0.106,0],[0,-7.229],[-7.192,0],[0,0],[0,6.247]],"o":[[1.002,-2.564],[0,-12.512],[-8.968,0],[-2.408,-1.573],[-8.491,0],[0,0.398],[-0.105,-0.002],[-7.192,0],[0,7.229],[0,0],[6.215,0],[0,-5.297]],"v":[[34.89,4.326],[36.461,-3.943],[13.922,-26.6],[-6.397,-13.699],[-14.758,-16.195],[-30.131,-0.743],[-30.072,0.436],[-30.385,0.421],[-43.407,13.51],[-30.385,26.6],[32.153,26.6],[43.407,15.288]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.97,46.37],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.864,0.973],[0,2.308],[9.837,0],[2.868,-6.024],[2.438,0],[0,-6.744],[-0.023,-0.309],[0.084,0],[0,-5.712],[-5.683,0],[0,0],[0,4.937]],"o":[[0.792,-2.026],[0,-9.888],[-7.087,0],[-1.903,-1.244],[-6.709,0],[0,0.315],[-0.083,-0.002],[-5.683,0],[0,5.713],[0,0],[4.911,0],[0,-4.185]],"v":[[27.571,3.418],[28.813,-3.116],[11.002,-21.019],[-5.054,-10.825],[-11.661,-12.799],[-23.809,-0.588],[-23.762,0.344],[-24.01,0.331],[-34.3,10.675],[-24.01,21.019],[25.408,21.019],[34.3,12.08]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[74.011,377.794],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":4,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":423.000017229143,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"loading 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[-360]},{"t":899.000036617021}],"ix":10},"p":{"a":0,"k":[219.5,200.5,0],"ix":2},"a":{"a":0,"k":[219.5,200.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.817,-12.686],[-0.161,0.161],[-0.619,-0.249],[-0.372,0.747],[0.557,0.56],[-0.248,0.498],[0,0.499],[0.682,0.686],[1.61,0.872],[0.744,0.747],[0.62,0.872],[1.115,0.498],[0.868,0.872],[0.682,0.685],[0.992,0],[0.455,-0.595]],"o":[[0.366,-0.521],[0.42,-0.423],[0.62,0.249],[0.372,-0.748],[-0.558,-0.561],[0.247,-0.499],[0,-0.498],[-0.682,-0.685],[-1.612,-0.873],[-0.743,-0.748],[-0.62,-0.872],[-1.116,-0.499],[-0.867,-0.872],[-0.681,-0.685],[-0.475,0],[5.873,18.33]],"v":[[11.83,24.201],[12.704,23.046],[16.546,23.017],[18.034,21.024],[16.051,16.788],[16.299,13.798],[18.034,9.436],[15.307,5.077],[8.119,-0.155],[1.797,-4.516],[-2.045,-10.869],[-6.011,-13.112],[-8.738,-18.345],[-13.2,-21.709],[-16.918,-24.2],[-18.406,-23.034]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[134.939,259.809],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.079,-0.079],[-0.246,-0.247],[-0.281,0.282],[-0.351,0.494],[-0.069,0.282],[0.633,0.141],[0.099,0.171],[0.673,-1.216]],"o":[[0.175,0.176],[0.246,0.247],[0.281,-0.283],[0.352,-0.495],[0.071,-0.283],[-0.135,-0.03],[-0.717,1.186],[0.231,0.013]],"v":[[-1.315,1.19],[-0.894,2.249],[-0.051,2.249],[0.862,0.344],[1.775,-1.281],[0.581,-2.199],[0.235,-2.531],[-1.846,1.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.84,148.991],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.22,0],[-0.14,0.283],[-0.14,0.141],[-0.176,0.176],[0.07,0.283],[0.211,0.353],[0.405,0.177],[0.836,-1.85]],"o":[[0.421,0],[0.141,-0.282],[0.141,-0.141],[0.176,-0.176],[-0.071,-0.282],[-0.166,-0.281],[-0.935,1.793],[0.562,0.215]],"v":[[-1.029,2.926],[-0.327,1.938],[-0.257,0.243],[2.272,1.161],[1.992,-0.674],[1.429,-2.015],[0.214,-2.926],[-2.448,2.538]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[123.463,155.445],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.479,-0.481],[0,-0.412],[-0.205,0.206],[0,0.344],[0,0.481],[0.342,0],[0,0]],"o":[[0.479,0.481],[0,0.413],[0.205,-0.206],[0,-0.344],[0,-0.481],[0,0],[-0.068,0.206]],"v":[[-0.956,-0.995],[-0.752,1.34],[0.068,2.302],[1.025,1.203],[1.436,-1.82],[0.82,-2.507],[-0.752,-2.507]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[209.388,194.4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.137,0.343],[0.359,-0.328],[0.068,-0.344],[-0.329,0]],"o":[[-0.137,-0.344],[0,0],[-0.068,0.343],[0.329,0]],"v":[[0.786,0.748],[0.102,-1.038],[-0.855,0.061],[-0.227,1.367]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[209.765,189.496],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.41,-0.069],[-0.342,0],[0.136,0.137],[0.479,-0.138],[0.41,-0.619],[-0.41,-0.138]],"o":[[0.41,0.068],[0.341,0],[-0.137,-0.138],[0,0],[0,0],[0.41,0.136]],"v":[[-0.307,0.515],[1.606,0.927],[2.154,0.173],[0.512,-0.103],[-1.88,-0.309],[-1.88,0.653]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[235.393,203.88],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.479,-0.137],[0,0],[0,0.413],[0.41,0],[0.342,0],[0,0],[-0.342,-0.069]],"o":[[0.479,0.137],[0.957,-0.275],[0,-0.412],[-0.41,0],[-0.341,0],[0,0],[0.341,0.069]],"v":[[0.205,0.549],[1.435,1.443],[2.324,-0.275],[1.435,-1.305],[-0.957,-1.442],[-2.392,-1.03],[-1.572,-0.206]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[217.59,199.587],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.544,0.21],[0,0.799],[0.293,0.546],[0.669,-0.042],[0.209,0.294],[0.334,-0.337],[0.502,-0.169],[-0.137,-0.137],[1.004,0.042],[0.167,-0.378],[-0.167,-0.252],[-0.065,-0.252],[0,0],[0,0],[0.23,-0.231],[-0.209,-0.505],[-0.376,0],[-0.419,0.421],[-0.878,0],[-0.418,0.126],[-0.168,0.505],[-0.041,0.421],[0.125,0.463]],"o":[[0.543,-0.21],[0,-0.799],[-0.293,-0.547],[-0.669,0.042],[-0.209,-0.294],[-0.188,0.189],[-0.502,0.168],[0.136,0.137],[-1.004,-0.042],[-0.167,0.378],[0.168,0.252],[0.064,0.252],[0,0],[0,0],[-0.23,0.231],[0.209,0.504],[0.377,0],[0.418,-0.42],[0.879,0],[0.418,-0.126],[0.167,-0.504],[0.042,-0.42],[-0.126,-0.463]],"v":[[2.615,-1.43],[3.576,-2.061],[3.451,-3.532],[2.572,-4.289],[1.317,-3.995],[-0.021,-4.415],[-0.816,-3.49],[-1.276,-2.419],[-1.151,-1.682],[-2.991,-1.598],[-3.033,-0.505],[-3.139,0.168],[-2.531,0.924],[-2.74,1.808],[-3.326,2.691],[-3.535,3.784],[-3.075,4.709],[-1.569,4.33],[-0.482,3.405],[1.401,3.027],[2.238,2.312],[2.53,0.924],[2.405,-0.505]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[183.841,165.018],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.14,0.635],[-0.14,0.847],[0.386,0.388],[0,0.212],[-0.14,0.424],[-0.351,0.353],[-0.07,0.353],[0.14,0.706],[-0.176,0.177],[-0.07,-0.283],[-0.141,-0.353],[0,0],[-0.457,0.459],[-0.211,0.353],[0.351,-0.141],[0.562,0.071],[0.211,0.211],[-0.176,0.176],[0.421,0],[0.211,-0.353],[0.211,-0.212],[-0.07,0.423],[-0.141,0.424],[-0.597,0.6],[-0.632,0.283],[-0.421,0.211],[-0.351,0.494],[-0.246,0.247],[0,0.442],[0.211,0.565],[0.731,0.494],[-0.141,0.424],[0,0.283],[0.28,0.282],[0.312,-0.313],[0.352,0.07],[-0.141,0.424],[0.07,0.212],[0.159,-0.015],[0,-15.127],[-0.033,-1.1],[-0.36,0.726]],"o":[[0.139,-0.636],[0.14,-0.847],[-0.387,-0.388],[0,-0.211],[0.14,-0.423],[0.351,-0.354],[0.071,-0.353],[-0.141,-0.707],[0.176,-0.176],[0.071,0.282],[0.14,0.353],[0,0],[0.456,-0.459],[0.21,-0.353],[-0.351,0.141],[-0.562,-0.07],[-0.21,-0.212],[0.175,-0.177],[-0.421,0],[-0.211,0.353],[-0.21,0.212],[0.071,-0.424],[0.141,-0.424],[0.597,-0.6],[0.632,-0.282],[0.422,-0.212],[0.352,-0.494],[0.246,-0.247],[0,-0.443],[-0.21,-0.565],[-0.731,-0.494],[0.14,-0.424],[0,-0.282],[-0.281,-0.282],[-0.312,0.314],[-0.351,-0.071],[0.14,-0.423],[-0.025,-0.073],[-5.521,13.103],[0,1.107],[0.262,-0.377],[0.632,-1.27]],"v":[[-7.011,19.531],[-6.378,16.989],[-6.869,15.506],[-6.729,14.235],[-5.816,12.823],[-5.465,10.776],[-3.709,9.152],[-3.568,6.822],[-2.023,4.915],[-0.899,4.421],[-0.828,5.974],[0.085,5.339],[1.63,3.503],[2.965,2.514],[2.403,2.02],[0.787,1.949],[-0.197,0.114],[0.717,-2.075],[-0.056,-2.923],[-1.531,-1.299],[-2.655,0.961],[-2.936,-0.451],[-2.093,-3.064],[-0.688,-4.688],[1.068,-5.465],[3.807,-5.888],[5.282,-8.077],[7.671,-9.419],[8.233,-10.991],[7.6,-13.373],[4.762,-15.844],[4.44,-17.609],[4.931,-20.01],[3.878,-21.916],[2.543,-20.937],[1.208,-19.515],[0.647,-20.716],[0.647,-22.905],[0.343,-22.967],[-8.233,19.673],[-8.179,22.982],[-7.221,21.366]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[119.54,183.536],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":4,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.374,-0.15],[0,-0.376],[0.149,-0.528],[-0.599,0],[-0.525,0.15],[-0.3,0.602],[-0.299,0.452],[0,0.602],[0.899,-0.452],[1.198,-0.828],[0.674,-0.301],[0,-0.376],[-0.149,-0.301]],"o":[[-0.375,0.15],[0,0.377],[-0.151,0.526],[0.599,0],[0.523,-0.151],[0.299,-0.602],[0.3,-0.452],[0,-0.602],[0,0],[-1.198,0.827],[-0.674,0.301],[0,0.376],[0.149,0.302]],"v":[[-4.004,3.273],[-5.277,4.552],[-4.902,6.585],[-3.78,7.788],[-1.234,7.036],[2.358,1.844],[4.229,-3.122],[5.277,-5.003],[4.229,-7.335],[2.358,-4.401],[-1.16,-2.595],[-3.481,-0.714],[-3.256,1.317]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.589,286.337],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.219,-0.514],[0.145,-0.146],[-0.584,-0.22],[-0.072,-0.806],[0,-0.513],[0.658,-0.147],[0.657,0.294],[0,0.367],[-0.145,0.293],[0.219,0.586],[0.438,0.953],[0.146,0.733],[0.364,0.366],[-0.511,0.514],[-0.548,0.55],[-1.167,0],[-1.022,0.366],[-0.366,-0.66],[-0.147,-0.807],[-0.729,-0.147],[0.219,-0.514],[0,0],[0.292,0.66],[0.511,0.073],[0.218,-0.367],[-0.146,-0.44],[0,-0.514],[-0.73,-0.22],[-0.219,-0.366],[-0.219,-0.367],[-0.328,0.33],[-0.219,-0.44]],"o":[[-0.219,0.513],[-0.147,0.147],[0.584,0.22],[0.073,0.807],[0,0.513],[-0.656,0.146],[-0.657,-0.293],[0,-0.367],[0.146,-0.293],[-0.219,-0.587],[-0.438,-0.953],[-0.146,-0.733],[-0.365,-0.367],[0.51,-0.513],[0.547,-0.55],[1.167,0],[1.021,-0.367],[0.364,0.66],[0.145,0.806],[0.73,0.147],[-0.219,0.513],[-0.073,-1.027],[-0.292,-0.659],[-0.51,-0.073],[-0.219,0.367],[0.146,0.44],[0,0.513],[0.729,0.22],[0.219,0.367],[0.219,0.366],[0.328,-0.33],[0.219,0.44]],"v":[[31.062,-18.783],[28.655,-18.856],[29.311,-17.902],[30.478,-15.336],[30.406,-11.082],[28.508,-10.495],[24.204,-11.889],[23.329,-13.429],[23.839,-16.802],[24.569,-19.076],[21.286,-23.329],[21.067,-26.262],[19.681,-27.142],[21.578,-29.416],[23.183,-30.882],[25.298,-31.469],[27.706,-32.642],[28.874,-31.762],[29.166,-29.562],[30.478,-29.049],[30.77,-28.095],[29.457,-26.63],[28.363,-28.316],[26.684,-28.462],[26.247,-27.362],[25.736,-26.555],[26.174,-25.455],[27.195,-23.77],[28.363,-22.229],[28.363,-20.542],[29.603,-21.716],[30.916,-20.322]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[17.287,19.368],[0.068,0.023],[0.236,-0.238],[-0.052,-0.476],[-0.183,-0.185],[0.132,0.132],[0.236,0.237],[0.262,-0.106],[0.211,0],[0,0.529],[0.052,-0.158],[0,0],[-0.132,-0.132],[-0.316,-0.159],[-0.052,-0.369],[0.105,-0.211],[0.157,0.159],[-0.105,0.317],[0.053,0.158],[0,0],[-0.106,0.317],[0.159,0.158],[0.368,0],[0.211,-0.211],[0,-0.528],[0.21,-0.211],[-0.21,-0.211],[0.236,-0.237],[-0.342,-0.343],[0,0],[2.863,1.466],[0.918,0.434],[2.647,0.326],[0.055,0.327],[0.055,0.435],[0.918,0.271],[1.08,0.272],[0.378,0.76],[-0.216,0.869],[-0.432,0.435],[-1.135,0.434],[-1.135,0],[-0.324,0.109],[0.054,0.326],[0.432,0],[1.188,0.109],[0.703,-0.109],[1.026,0.109],[0.486,-0.217],[0.135,-0.136],[0.162,-0.543],[0.189,-0.19],[0.378,-0.598],[0.324,-0.815],[-0.756,-0.325],[0.595,-0.109],[-0.378,-0.706],[-0.27,-1.249],[0.35,-0.353],[0.378,0.815],[-0.055,-0.38],[0.216,-0.217],[0.27,0.271],[0.433,-0.217],[0.053,-0.217],[0.109,-0.108],[0.379,0.108],[0.162,-0.272],[-0.431,-0.163],[0.189,-0.189],[0.595,0.163],[0.757,0.435],[0,0.434],[-0.162,0.814],[0.216,0.434],[-0.432,0],[-0.648,-0.163],[-0.919,-0.326],[-0.486,0],[-0.325,0.435],[-0.107,0.489],[0.243,0.244],[0.649,0.38],[0.27,0.108],[0.27,0],[0.135,0.136],[0.81,-0.108],[0.324,0.054],[-0.324,0.162],[-0.298,0.298],[0.324,0.326],[0.702,0],[0.324,0.163],[0.405,-0.408],[0.216,-0.054],[0.27,0.055],[0.325,0],[0.379,-0.217],[0.864,-0.488],[1.08,-0.163],[1.188,-0.435],[0.622,-0.624],[0.676,-0.679],[0.433,-0.76],[0.405,-0.407],[0.54,-0.326],[0.27,-0.651],[-0.054,-0.76],[-0.595,-0.109],[-0.919,0.217],[-0.243,0.244],[-0.648,-0.163],[-0.054,-0.597],[-0.487,-0.489],[-0.27,-0.706],[-0.54,0],[-0.162,0.326],[-0.756,0.163],[-0.486,0.489],[-0.054,1.25],[-0.109,0.761],[-0.487,0.326],[-0.108,0.488],[0,0.272],[0.162,0.163],[0.378,0.108],[0.298,0.299],[0,0.489],[-0.54,0.923],[-0.595,0.381],[-0.486,0.109],[0.216,0.326],[-0.324,0.543],[-0.866,0.271],[-0.54,-0.325],[-0.108,-0.434],[0.323,-0.327],[0.459,-0.462],[0.648,-0.651],[0.188,-0.19],[-0.216,-0.434],[-0.324,-0.163],[-0.702,-0.435],[-0.81,0.054],[-0.81,0.163],[-0.378,0.163],[-0.324,-0.325],[0,-0.434],[0.323,0],[0.648,0],[0.648,0],[0.135,-0.136],[-0.217,-0.325],[-0.593,-0.109],[0.109,-0.489],[0.324,-0.163],[0.136,0.135],[0.19,-0.19],[0.108,-0.597],[-0.054,-0.217],[0.433,0],[0.162,-0.38],[0.378,0],[0.136,0.136],[0.163,-0.162],[0.27,-0.271],[0.54,-0.163],[-0.054,-0.435],[0.216,0.217],[0.109,0.109],[0.324,0],[0.27,-0.109],[0.107,0.489],[0.216,0.217],[0.054,0.434],[-0.243,0.245],[-0.107,0.272],[-0.055,0.325],[0.136,-0.136],[0.54,-0.109],[0.378,-0.489],[0.053,-0.652],[-0.297,-0.298],[-0.108,-0.326],[0.27,-0.543],[0.486,0.108],[0.325,0],[0.593,-0.163],[0.325,-0.435],[0.216,-0.543],[0.756,-0.271],[0.217,-0.326],[0.162,-0.272],[0.271,0],[0.108,-0.271],[0.163,0.163],[0.27,-0.054],[-0.162,-0.327],[0.122,-0.122],[0.324,0.109],[0.324,-0.108],[0.216,-0.326],[0,-0.434],[-0.594,-0.434],[-0.54,0],[-0.215,-0.652],[-0.297,-0.298],[0.054,-0.652],[0.487,-0.325],[1.08,0],[0.649,0.217],[0.378,-0.109],[0.216,-0.217],[0,0],[-0.27,-0.924],[0,-1.086],[0.162,-0.434],[-0.594,-0.706],[-0.108,-0.271],[-0.324,-0.326],[-0.487,-0.108],[-0.189,0.19],[-0.432,-0.055],[0,0.434],[-0.756,0.435],[-0.216,0.434],[0.108,0.489],[-0.27,0.815],[-0.648,0.272],[-0.324,0.543],[0,1.086],[-0.27,0.271],[-0.54,0],[-0.756,0.597],[-0.486,0],[-0.432,-0.651],[-0.297,-0.299],[-0.594,-0.434],[-0.324,-0.326],[-0.405,-0.407],[-0.053,-0.543],[0,-0.163],[-0.378,0],[-0.216,0.543],[-0.162,0.49],[0,0.271],[0.459,0.461],[-0.163,0.38],[-0.431,-0.054],[-0.162,-0.271],[0,0],[0.297,0.299],[0.594,0.327],[0.513,0.516],[0.594,0.598],[0.27,0.652],[0.702,0.543],[-0.054,1.032],[-0.811,0.163],[-0.108,-0.272],[-0.324,0.326],[-0.27,-0.597],[-0.216,-0.488],[-0.972,-0.217],[-0.433,-0.434],[-0.108,-0.977],[-0.432,-0.108],[-0.054,-0.598],[-0.486,-0.272],[0.054,-0.543],[-0.702,-0.163],[-0.216,-0.217],[-0.162,0.272],[-0.109,0.651],[-0.217,0.218],[0.379,0.101],[-0.216,0.326],[0.379,0.489],[-0.108,0.217],[-0.431,-0.055],[-0.054,0.38],[-1.027,0],[-0.379,-0.38],[-0.703,0.49],[-0.541,0],[0.431,0.434],[0.325,0.489],[-0.595,0.598],[-0.162,0.325],[-0.648,0.163],[0.162,0.706],[-0.595,0.38],[-0.702,-0.217],[-0.405,-0.407],[-0.217,-0.434],[-0.055,-0.381],[-0.432,-0.272],[-0.217,0.217],[-0.271,0.272],[0.594,0.38],[-0.162,0.38],[-1.297,0.218],[-0.595,-0.217],[0.271,-0.272],[0.378,0],[0,-0.488],[0.055,-0.217],[-0.486,-0.163],[-0.485,-0.326],[-0.161,-1.574],[0.648,-0.218],[1.189,0.271],[0.716,0.239],[0.299,-0.3],[0.477,0],[0.716,-0.119],[0.478,-0.479],[-0.477,0],[-0.238,-0.839],[-0.835,0],[-0.954,-0.599],[-1.669,0.719],[-0.477,0],[0,-1.079],[0.477,-1.438],[0.954,-0.6],[1.074,0.24],[0.596,-0.6],[1.192,0.24],[0.657,0.659],[1.075,-0.599],[0,-0.6],[1.193,0.359],[0.716,0.719],[1.551,0.36],[0.358,1.439],[-0.357,0.6],[0.716,0],[1.192,-0.36],[1.074,0],[0.835,-0.479],[1.073,0],[0.358,-0.36],[1.312,-1.318],[0.239,-0.48],[0.358,-1.799],[1.073,-1.078],[0.239,-1.079],[0,-1.078],[-0.358,-2.279],[0,-0.96],[-1.074,-1.439],[-0.835,-0.839],[-0.477,0],[-1.312,0],[-1.192,0],[-1.193,-0.359],[-1.67,0.24],[-0.656,-0.66],[-1.431,0],[-1.431,-1.678],[0,-0.959],[-1.55,-1.798],[-0.358,-0.959],[0.239,-1.319],[0,-0.6],[-0.835,-1.799],[-0.358,-1.559],[-1.313,-0.36],[-0.596,-1.079],[-0.476,-0.48],[-1.073,0],[-1.67,0.72],[-0.955,0.959],[0,0],[-0.656,0.659],[0,0.839],[-0.775,0.779],[-1.133,1.14],[0,0.839],[0,0.839],[0,0.481],[-0.835,1.319],[-1.073,1.079],[-1.312,1.559],[-0.238,0.839],[0,0],[0.597,0],[0.596,-0.6],[0.418,0.42],[0.417,0.42],[0.477,0],[0.358,0.72],[0.239,0.72],[0.716,0.72],[0,0.839],[0.536,0.539],[0.238,0.599],[0.477,0.72],[-0.358,0],[0,0],[0,0],[-0.476,-0.479],[-0.597,-0.839],[0,-0.36],[-0.537,-0.539],[-0.477,-1.318],[0,-1.199],[0,0],[-0.357,0.359],[-0.597,0],[-1.073,0.599],[-0.835,0.479],[0,0],[0.418,0.419],[0.716,0.359],[0,0],[0.835,-0.241],[0,0],[0.299,-0.299],[0.536,0.539],[0,0.838],[-1.193,0],[-0.298,-0.3],[-0.715,-0.719],[-1.194,0],[0,0],[-0.716,-0.24],[-1.075,0],[0,0],[-0.537,-0.539],[0.358,-0.36],[0,-0.839],[-0.716,0],[0,0],[0.238,-1.079],[-1.073,-1.798],[0,0],[-0.298,0.3],[0,-0.239],[-0.596,0.6],[0,0],[0,0.48],[0,0.359],[-1.074,0.72],[-0.656,0.66],[0,0],[-0.239,-0.6],[0.358,-0.6],[-0.478,0],[0,0],[0,0],[0,-0.599],[-0.358,-1.079],[-0.002,-0.007],[-0.176,0.457],[0,0.152],[0,0],[0,0],[-0.835,-0.36],[-0.088,-0.109],[0,11.336]],"o":[[-0.124,-0.059],[-0.314,-0.105],[-0.237,0.238],[0.052,0.475],[0.185,0.185],[-0.131,-0.133],[-0.238,-0.238],[-0.263,0.106],[-0.21,0],[0,-0.528],[-0.053,0.159],[0,0],[0.131,0.132],[0.315,0.158],[0.053,0.371],[-0.105,0.212],[-0.158,-0.158],[0.106,-0.317],[-0.052,-0.159],[0,0],[0.104,-0.317],[-0.157,-0.159],[-0.368,0],[-0.21,0.212],[0,0.528],[-0.211,0.212],[0.211,0.211],[-0.237,0.238],[0.341,0.343],[-0.108,0.271],[-2.864,-1.466],[-0.919,-0.435],[-2.648,-0.325],[-0.053,-0.325],[-0.053,-0.434],[-0.919,-0.272],[-1.081,-0.271],[-0.378,-0.761],[0.216,-0.869],[0.433,-0.434],[1.135,-0.435],[1.134,0],[0.324,-0.108],[-0.054,-0.326],[-0.432,0],[-1.189,-0.108],[-0.703,0.109],[-1.027,-0.109],[-0.485,0.217],[-0.135,0.136],[-0.162,0.543],[-0.188,0.19],[-0.378,0.597],[-0.324,0.814],[0.756,0.326],[-0.594,0.108],[0.378,0.706],[0.271,1.249],[-0.352,0.353],[-0.378,-0.815],[0.053,0.38],[-0.216,0.217],[-0.27,-0.272],[-0.432,0.218],[-0.054,0.217],[-0.108,0.109],[-0.378,-0.109],[-0.162,0.271],[0.433,0.163],[-0.189,0.19],[-0.595,-0.162],[-0.756,-0.434],[0,-0.435],[0.162,-0.815],[-0.216,-0.435],[0.433,0],[0.649,0.163],[0.918,0.326],[0.486,0],[0.324,-0.434],[0.108,-0.489],[-0.243,-0.245],[-0.648,-0.38],[-0.27,-0.109],[-0.27,0],[-0.135,-0.136],[-0.811,0.109],[-0.324,-0.055],[0.324,-0.163],[0.297,-0.299],[-0.324,-0.325],[-0.703,0],[-0.324,-0.164],[-0.405,0.407],[-0.215,0.055],[-0.271,-0.054],[-0.323,0],[-0.378,0.217],[-0.864,0.489],[-1.081,0.163],[-1.189,0.434],[-0.621,0.625],[-0.675,0.679],[-0.432,0.76],[-0.405,0.408],[-0.541,0.326],[-0.27,0.652],[0.054,0.76],[0.594,0.108],[0.918,-0.218],[0.243,-0.245],[0.648,0.163],[0.054,0.598],[0.485,0.489],[0.271,0.706],[0.54,0],[0.162,-0.326],[0.757,-0.162],[0.486,-0.489],[0.055,-1.249],[0.107,-0.76],[0.486,-0.325],[0.108,-0.489],[0,-0.271],[-0.162,-0.163],[-0.379,-0.109],[-0.297,-0.299],[0,-0.489],[0.54,-0.923],[0.595,-0.38],[0.486,-0.108],[-0.216,-0.326],[0.324,-0.543],[0.864,-0.272],[0.54,0.327],[0.108,0.435],[-0.324,0.325],[-0.459,0.461],[-0.649,0.652],[-0.19,0.19],[0.216,0.435],[0.324,0.163],[0.702,0.434],[0.811,-0.054],[0.811,-0.163],[0.378,-0.163],[0.324,0.326],[0,0.435],[-0.324,0],[-0.649,0],[-0.648,0],[-0.136,0.136],[0.216,0.326],[0.595,0.108],[-0.107,0.488],[-0.324,0.162],[-0.135,-0.136],[-0.189,0.19],[-0.108,0.597],[0.053,0.217],[-0.432,0],[-0.162,0.38],[-0.378,0],[-0.135,-0.136],[-0.162,0.163],[-0.27,0.272],[-0.54,0.163],[0.054,0.434],[-0.216,-0.218],[-0.107,-0.109],[-0.324,0],[-0.27,0.108],[-0.108,-0.489],[-0.216,-0.217],[-0.054,-0.434],[0.243,-0.244],[0.109,-0.271],[0.053,-0.326],[-0.135,0.136],[-0.541,0.109],[-0.378,0.488],[-0.054,0.651],[0.297,0.299],[0.108,0.326],[-0.27,0.543],[-0.486,-0.109],[-0.324,0],[-0.595,0.163],[-0.323,0.435],[-0.216,0.543],[-0.757,0.272],[-0.216,0.326],[-0.162,0.271],[-0.27,0],[-0.108,0.272],[-0.162,-0.163],[-0.27,0.055],[0.162,0.325],[-0.121,0.122],[-0.324,-0.108],[-0.324,0.109],[-0.216,0.325],[0,0.435],[0.595,0.435],[0.54,0],[0.217,0.651],[0.298,0.299],[-0.054,0.651],[-0.486,0.326],[-1.08,0],[-0.648,-0.217],[-0.378,0.109],[-0.216,0.217],[0,0],[0.27,0.923],[0,1.086],[-0.163,0.434],[0.594,0.706],[0.108,0.272],[0.324,0.326],[0.486,0.108],[0.189,-0.19],[0.433,0.054],[0,-0.435],[0.756,-0.435],[0.216,-0.435],[-0.108,-0.489],[0.27,-0.814],[0.649,-0.271],[0.325,-0.543],[0,-1.086],[0.27,-0.272],[0.541,0],[0.757,-0.598],[0.486,0],[0.432,0.652],[0.297,0.298],[0.594,0.435],[0.324,0.326],[0.405,0.407],[0.055,0.543],[0,0.164],[0.378,0],[0.217,-0.543],[0.162,-0.488],[0,-0.272],[-0.459,-0.462],[0.162,-0.38],[0.433,0.055],[0.163,0.272],[0,0],[-0.298,-0.299],[-0.595,-0.325],[-0.513,-0.515],[-0.595,-0.597],[-0.27,-0.651],[-0.702,-0.543],[0.054,-1.032],[0.81,-0.163],[0.108,0.271],[0.325,-0.326],[0.27,0.597],[0.217,0.489],[0.973,0.217],[0.431,0.435],[0.107,0.978],[0.432,0.109],[0.053,0.597],[0.486,0.272],[-0.054,0.543],[0.703,0.163],[0.217,0.217],[0.162,-0.272],[0.108,-0.652],[0.215,-0.217],[-0.378,-0.101],[0.215,-0.326],[-0.378,-0.488],[0.108,-0.217],[0.433,0.054],[0.054,-0.38],[1.026,0],[0.377,0.38],[0.703,-0.488],[0.54,0],[-0.433,-0.435],[-0.324,-0.489],[0.593,-0.597],[0.162,-0.326],[0.649,-0.163],[-0.162,-0.706],[0.593,-0.38],[0.702,0.217],[0.406,0.407],[0.216,0.435],[0.054,0.38],[0.432,0.271],[0.216,-0.218],[0.27,-0.271],[-0.595,-0.38],[0.162,-0.38],[1.297,-0.217],[0.593,0.218],[-0.269,0.271],[-0.379,0],[0,0.489],[-0.053,0.217],[0.487,0.163],[0.486,0.326],[0.162,1.576],[-0.648,0.217],[-1.188,-0.272],[-0.715,-0.24],[-0.298,0.299],[-0.477,0],[-0.716,0.12],[-0.477,0.48],[0.478,0],[0.24,0.839],[0.835,0],[0.954,0.6],[1.67,-0.72],[0.477,0],[0,1.079],[-0.477,1.44],[-0.954,0.598],[-1.073,-0.24],[-0.597,0.6],[-1.193,-0.24],[-0.655,-0.659],[-1.073,0.6],[0,0.6],[-1.192,-0.361],[-0.715,-0.719],[-1.551,-0.359],[-0.358,-1.439],[0.358,-0.599],[-0.716,0],[-1.193,0.36],[-1.073,0],[-0.834,0.48],[-1.074,0],[-0.357,0.359],[-1.312,1.32],[-0.238,0.48],[-0.358,1.798],[-1.073,1.08],[-0.238,1.078],[0,1.08],[0.357,2.278],[0,0.959],[1.073,1.439],[0.835,0.84],[0.477,0],[1.312,0],[1.193,0],[1.193,0.361],[1.67,-0.24],[0.656,0.659],[1.431,0],[1.431,1.679],[0,0.959],[1.551,1.799],[0.358,0.959],[-0.239,1.318],[0,0.6],[0.835,1.798],[0.358,1.558],[1.311,0.36],[0.596,1.079],[0.478,0.479],[1.073,0],[1.669,-0.719],[0.954,-0.96],[0,0],[0.656,-0.659],[0,-0.839],[0.776,-0.779],[1.133,-1.139],[0,-0.84],[0,-0.839],[0,-0.479],[0.835,-1.319],[1.074,-1.079],[1.312,-1.559],[0.239,-0.84],[0,0],[-0.596,0],[-0.596,0.599],[-0.417,-0.42],[-0.418,-0.42],[-0.477,0],[-0.358,-0.72],[-0.238,-0.72],[-0.716,-0.72],[0,-0.84],[-0.537,-0.54],[-0.239,-0.599],[-0.477,-0.719],[0.358,0],[0,0],[0,0],[0.478,0.48],[0.596,0.839],[0,0.359],[0.536,0.54],[0.478,1.319],[0,1.199],[0,0],[0.358,-0.36],[0.596,0],[1.074,-0.599],[0.835,-0.48],[0,0],[-0.417,-0.42],[-0.716,-0.36],[0,0],[-0.835,0.239],[0,0],[-0.298,0.3],[-0.537,-0.54],[0,-0.84],[1.193,0],[0.298,0.299],[0.716,0.719],[1.192,0],[0,0],[0.716,0.239],[1.073,0],[0,0],[0.537,0.54],[-0.358,0.36],[0,0.84],[0.714,0],[0,0],[-0.238,1.08],[1.073,1.799],[0,0],[0.298,-0.299],[0,0.24],[0.597,-0.6],[0,0],[0,-0.48],[0,-0.36],[1.073,-0.72],[0.656,-0.659],[0,0],[0.239,0.6],[-0.357,0.599],[0.476,0],[0,0],[0,1.079],[0,0.6],[0.002,0.007],[0.181,-0.455],[-0.098,-0.522],[0,0],[0,-0.838],[0,0],[0.13,0.056],[3.184,-10.283],[0,-28.068]],"v":[[51.736,-81.983],[51.435,-82.115],[50.49,-82.062],[50.542,-81.111],[51.382,-80.319],[50.647,-79.896],[49.702,-80.477],[48.283,-80.319],[48.387,-79.051],[46.968,-80.425],[46.496,-81.534],[45.498,-81.111],[45.445,-80.214],[46.443,-79.262],[46.758,-77.467],[46.338,-75.671],[45.235,-75.988],[45.129,-77.942],[44.551,-79.685],[43.658,-80.583],[43.816,-82.485],[43.132,-83.488],[41.556,-84.016],[40.294,-84.546],[40.084,-82.643],[38.824,-82.168],[39.191,-80.847],[39.402,-79.844],[40.663,-77.889],[41.251,-76.796],[37.74,-78.153],[35.525,-79.402],[32.121,-79.837],[31.634,-81.033],[31.256,-82.335],[29.204,-83.312],[27.205,-84.073],[26.07,-85.81],[26.232,-87.711],[26.772,-89.178],[28.555,-90.318],[35.579,-91.404],[38.226,-91.676],[37.902,-92.436],[36.119,-92.925],[33.04,-93.251],[30.338,-93.142],[27.313,-92.979],[25.313,-92.654],[24.233,-91.947],[23.531,-90.861],[22.936,-90.102],[22.18,-88.797],[20.559,-86.516],[22.504,-84.943],[20.559,-84.344],[18.668,-83.149],[19.046,-80.651],[16.832,-78.589],[13.86,-78.153],[12.996,-77.61],[14.4,-75.492],[12.455,-76.253],[9.267,-75.927],[7.539,-74.623],[7.376,-72.615],[3.756,-74.514],[2.676,-73.754],[3.918,-72.559],[4.567,-71.365],[2.352,-71.528],[-0.133,-72.777],[-0.673,-73.809],[-0.62,-75.709],[-1.376,-77.012],[-1.268,-77.882],[0.461,-77.61],[2.623,-76.741],[5.972,-76.198],[8.079,-76.633],[8.727,-78.099],[7.863,-79.999],[4.135,-81.466],[-1.268,-83.909],[-3.591,-84.073],[-3.321,-85.159],[-5.806,-85.159],[-8.183,-85.43],[-8.237,-86.353],[-6.724,-86.68],[-7.697,-87.44],[-10.074,-87.386],[-10.615,-88.471],[-12.181,-87.766],[-13.208,-87.82],[-14.342,-87.386],[-14.451,-88.526],[-15.801,-88.201],[-17.53,-87.06],[-19.907,-86.734],[-22.878,-85.81],[-27.039,-83.421],[-31.199,-79.783],[-33.414,-76.253],[-35.899,-73.483],[-42.76,-68.812],[-44.597,-67.346],[-44.597,-60.123],[-42.922,-58.439],[-40.491,-58.439],[-37.79,-61.643],[-36.277,-61.915],[-35.737,-59.906],[-35.358,-57.679],[-33.198,-54.095],[-32.441,-52.574],[-31.469,-52.954],[-29.686,-54.421],[-27.633,-55.344],[-27.309,-57.572],[-27.092,-59.526],[-25.417,-61.318],[-23.959,-62.512],[-24.175,-63.219],[-24.769,-63.653],[-25.742,-64.141],[-26.823,-65.229],[-27.254,-66.531],[-26.174,-68.975],[-23.689,-71.528],[-20.285,-72.94],[-20.393,-73.754],[-19.961,-75.655],[-17.421,-76.958],[-15.044,-76.633],[-13.964,-74.895],[-14.774,-74.352],[-16.017,-73.048],[-18.34,-71.039],[-20.393,-69.681],[-20.177,-68.921],[-19.637,-64.686],[-18.178,-63.598],[-15.369,-63.49],[-11.911,-64.25],[-8.994,-64.74],[-8.021,-63.816],[-6.67,-62.567],[-9.263,-62.35],[-11.046,-61.806],[-14.126,-61.97],[-16.395,-61.535],[-16.233,-60.069],[-14.991,-59.199],[-14.991,-57.408],[-15.855,-55.995],[-17.476,-57.354],[-19.205,-57.679],[-19.961,-55.725],[-20.177,-52.031],[-21.528,-51.434],[-22.987,-50.565],[-24.067,-50.186],[-25.148,-50.945],[-26.499,-50.729],[-28.119,-49.859],[-30.172,-49.37],[-30.496,-48.229],[-31.523,-48.501],[-32.604,-49.859],[-34.116,-50.076],[-35.845,-48.936],[-36.709,-50.24],[-38.06,-50.783],[-38.222,-52.194],[-37.304,-53.552],[-36.602,-54.638],[-37.195,-56.158],[-37.574,-57.299],[-38.924,-56.757],[-40.545,-55.615],[-41.031,-53.824],[-40.275,-52.466],[-39.681,-51.162],[-40.113,-48.827],[-41.788,-48.393],[-42.977,-47.632],[-45.299,-47.199],[-46.813,-45.677],[-47.569,-43.342],[-50.216,-42.311],[-51.513,-41.604],[-51.891,-39.594],[-53.404,-39.486],[-53.728,-38.4],[-55.187,-38.237],[-56.429,-39.052],[-56.699,-38.182],[-56.916,-36.689],[-58.266,-36.608],[-59.887,-36.608],[-61.021,-36.337],[-61.129,-35.359],[-59.887,-34.327],[-57.942,-34.11],[-57.078,-32.48],[-55.781,-31.177],[-55.781,-28.408],[-57.078,-25.149],[-59.725,-24.931],[-63.345,-25.529],[-65.56,-25.04],[-66.856,-25.203],[-68.423,-24.443],[-68.153,-23.085],[-68.207,-18.306],[-68.963,-16.188],[-68.369,-14.667],[-68.045,-11.844],[-64.371,-11.41],[-63.128,-10.16],[-61.994,-10.867],[-58.645,-10.811],[-57.564,-11.464],[-56.375,-12.821],[-54.484,-14.776],[-54.484,-16.405],[-53.782,-18.904],[-51.513,-20.75],[-49.082,-22.108],[-49.514,-24.117],[-47.947,-25.583],[-45.354,-24.714],[-43.841,-25.094],[-39.627,-27.375],[-37.844,-25.529],[-35.575,-22.596],[-31.793,-20.153],[-30.658,-18.306],[-29.146,-17.22],[-28.66,-15.591],[-28.984,-13.636],[-28.227,-13.311],[-27.471,-13.908],[-27.147,-15.211],[-26.552,-16.405],[-27.201,-17.274],[-27.254,-18.74],[-25.959,-18.632],[-25.04,-17.546],[-24.284,-18.089],[-24.769,-19.066],[-26.876,-20.153],[-28.713,-21.565],[-31.09,-23.303],[-32.063,-25.258],[-34.224,-26.669],[-34.386,-29.059],[-32.711,-30.688],[-32.063,-29.493],[-31.037,-29.602],[-29.848,-28.354],[-28.984,-25.692],[-26.661,-24.66],[-22.932,-21.945],[-22.608,-19.555],[-21.96,-16.949],[-20.879,-16.079],[-19.475,-14.233],[-19.961,-12.658],[-18.665,-11.3],[-17.476,-10.594],[-16.935,-11.083],[-16.503,-12.929],[-15.422,-13.636],[-16.288,-14.551],[-16.881,-15.862],[-17.314,-17.383],[-17.692,-18.849],[-16.666,-18.36],[-16.017,-19.339],[-13.045,-19.772],[-11.586,-18.632],[-10.128,-19.61],[-8.399,-20.098],[-7.588,-20.858],[-9.534,-22.759],[-9.209,-24.823],[-8.021,-26.832],[-6.617,-28.354],[-6.508,-29.711],[-5.049,-32.046],[-2.186,-32.372],[-1.7,-31.177],[-0.241,-30.634],[-0.889,-29.167],[0.137,-28.19],[1.272,-27.701],[3.271,-29.059],[1.974,-29.928],[1.866,-31.829],[5.053,-32.752],[8.62,-33.404],[7.214,-31.938],[6.783,-30.852],[6.404,-29.548],[5.593,-28.733],[6.512,-28.027],[11.104,-24.497],[12.779,-22.108],[10.564,-19.936],[5.972,-19.882],[2.043,-22.579],[-1.774,-21.62],[-4.994,-20.421],[-6.425,-19.104],[-10.481,-17.904],[-10.481,-16.945],[-10.243,-12.868],[-6.187,-9.751],[-2.966,-10.59],[0.85,-10.35],[3.713,-11.189],[4.071,-8.552],[3.117,-3.277],[0.135,-0.158],[-4.279,-0.279],[-7.26,0.201],[-11.554,-0.039],[-15.372,-1.598],[-20.501,-2.438],[-22.05,1.28],[-25.152,0.921],[-29.208,-1.358],[-33.024,-3.158],[-37.795,-5.554],[-36.603,-8.552],[-38.153,-11.91],[-43.043,-11.549],[-49.723,-10.83],[-54.375,-9.751],[-58.549,-8.192],[-63.917,-8.791],[-65.706,-5.436],[-69.165,-2.798],[-70.119,2.359],[-73.22,4.635],[-76.202,9.913],[-79.542,16.266],[-78.11,24.42],[-79.065,28.976],[-74.651,34.37],[-71.073,40.725],[-66.183,44.922],[-63.678,45.882],[-60.1,44.802],[-56.402,45.521],[-51.631,43.603],[-45.906,44.323],[-42.805,46.841],[-38.511,48.159],[-38.988,55.953],[-34.933,59.909],[-32.189,67.582],[-32.547,70.699],[-34.694,75.616],[-32.905,79.332],[-30.4,85.327],[-27.895,87.844],[-25.629,90.962],[-23.244,92.88],[-17.637,92.16],[-11.912,89.763],[-7.379,86.286],[-5.829,83.409],[-2.37,81.729],[-3.205,78.612],[-0.581,75.854],[4.667,72.617],[6.099,67.703],[5.263,63.385],[5.383,60.388],[7.649,56.792],[13.732,50.557],[19.458,44.323],[24.109,36.769],[24.467,34.01],[20.054,35.57],[16.595,36.41],[14.329,35.689],[13.255,33.532],[10.273,29.814],[8.484,28.736],[7.172,23.939],[5.025,22.861],[4.548,17.226],[2.64,14.948],[0.97,10.392],[-1.416,5.236],[-1.416,3.558],[0.97,5.956],[1.924,4.038],[4.309,9.193],[6.099,12.79],[8.842,17.586],[8.842,19.624],[12.42,24.898],[13.852,28.976],[14.209,32.691],[15.879,31.614],[19.816,30.415],[22.797,28.495],[27.21,26.458],[36.157,16.027],[36.633,13.989],[33.89,11.711],[32.458,10.392],[29.119,12.551],[26.853,12.43],[25.779,10.991],[24.229,10.392],[21.843,2.839],[24.109,1.519],[25.541,2.839],[27.449,5.836],[30.074,7.394],[33.89,6.915],[35.56,9.312],[39.616,10.152],[46.175,9.312],[47.249,12.189],[49.754,13.629],[48.442,14.708],[49.874,16.385],[52.378,14.468],[51.901,21.301],[52.974,27.176],[54.763,34.491],[56.791,32.092],[56.791,35.57],[58.103,35.57],[57.268,30.535],[57.865,28.495],[58.938,23.461],[62.159,19.743],[65.737,13.148],[69.434,11.111],[70.508,14.948],[70.269,18.545],[70.747,19.984],[72.178,18.185],[72.178,21.782],[70.747,27.057],[71.701,31.853],[71.706,31.872],[72.243,30.505],[72.058,29.336],[72.058,26.098],[73.251,22.141],[74.325,23.34],[74.643,23.601],[79.542,-8.951]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[249.445,212.16],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":6,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.076,-0.152],[-0.566,0.228],[-0.792,-0.455],[-0.792,0.796],[-1.132,0.683],[-1.019,0.683],[0,0.569],[0.679,0.341],[0,0],[0.202,-0.05],[0.378,-0.077],[0.152,-0.711],[0.48,0.025],[0.151,-0.356],[0.177,0],[0,0.127],[-0.101,0.305],[0.202,0.076],[0.227,-0.102],[0.303,0.076],[0.151,-0.077],[0.051,-0.432],[0,-0.254],[-0.303,-0.076],[-0.253,0.153],[-0.177,-0.076],[0,-0.102],[0.127,0],[0.05,-0.127],[-0.278,0.076],[-0.202,-0.255]],"o":[[0.076,0.152],[0.566,-0.227],[0.792,0.455],[0.793,-0.797],[1.132,-0.682],[1.019,-0.682],[0,-0.569],[-0.679,-0.341],[0,0],[-0.203,0.051],[-0.379,0.076],[-0.151,0.711],[-0.48,-0.026],[-0.152,0.355],[-0.176,0],[0,-0.127],[0.101,-0.304],[-0.202,-0.076],[-0.227,0.102],[-0.303,-0.076],[-0.152,0.076],[-0.05,0.432],[0,0.254],[0.303,0.076],[0.252,-0.152],[0.177,0.076],[0,0.102],[-0.126,0],[-0.051,0.127],[0.278,-0.076],[0.202,0.254]],"v":[[-4.595,2.448],[-3.507,2.389],[-2.149,3.413],[-0.112,2.617],[2.718,1.365],[5.321,-0.228],[6.793,-2.503],[5.208,-3.527],[3.51,-3.755],[2.049,-3.317],[0.887,-3.189],[0.179,-2.174],[-1.437,-1.818],[-2.574,-1.386],[-3.282,-0.777],[-3.559,-1.285],[-3.155,-2.377],[-3.787,-2.834],[-4.671,-2.834],[-5.328,-2.351],[-6.035,-2.554],[-6.187,-1.488],[-6.793,-1.006],[-6.035,-0.574],[-5.075,-0.879],[-4.368,-0.625],[-4.57,0.01],[-5.606,0.365],[-6.136,0.645],[-5.353,0.848],[-4.671,1.331]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[170.849,140.674],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":4,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.251,0.378],[0.335,0],[0.125,0.379],[0.126,0.337],[0.376,0.378],[-0.052,0.505],[0.292,0.042],[0.084,0.084],[-0.146,0.147],[-0.167,0.169],[-0.188,0.189],[0.083,0.168],[0.168,0.042],[0.251,0.126],[-0.272,0.273],[-0.085,0.178],[0,0],[0.167,0],[0.168,-0.042],[0.083,-0.63],[0.229,-0.231],[-0.125,-0.253],[-0.041,-0.253],[-0.083,-0.336],[-0.167,-0.252],[-0.376,-0.21],[0.042,-0.673],[0,-0.504],[-0.418,-0.042],[-0.251,0],[0.125,-0.379],[-0.293,-0.294],[0.167,-0.421],[0.126,0],[0.083,-0.252],[-0.377,-0.378],[0.293,-0.378],[0,-0.211],[-0.46,-0.085],[0.104,-0.105],[0.168,0.042],[0.126,-0.21],[0.084,-0.21],[-0.251,-0.252],[-0.67,0.168],[-0.083,0.21],[-0.377,-0.085],[-0.168,0.252],[-0.334,-0.043],[-0.377,0],[-0.419,-0.084],[0,0.168],[0.334,0.126],[-0.189,0.189]],"o":[[-0.251,-0.378],[-0.334,0],[-0.126,-0.378],[-0.125,-0.336],[-0.377,-0.378],[0.051,-0.504],[-0.293,-0.042],[-0.083,-0.084],[0.147,-0.147],[0.168,-0.168],[0.188,-0.19],[-0.084,-0.168],[-0.287,-0.072],[-0.251,-0.127],[0.209,-0.211],[0.025,-0.052],[0.413,-0.729],[-0.167,0],[-0.167,0.042],[-0.084,0.631],[-0.23,0.232],[0.126,0.252],[0.042,0.252],[0.084,0.337],[0.168,0.253],[0.377,0.21],[-0.042,0.673],[0,0.505],[0.419,0.042],[0.251,0],[-0.126,0.378],[0.293,0.294],[-0.167,0.42],[-0.125,0],[-0.084,0.253],[0.376,0.379],[-0.293,0.379],[0,0.21],[0.46,0.084],[-0.105,0.106],[-0.167,-0.042],[-0.125,0.211],[-0.083,0.21],[0.251,0.253],[0.669,-0.169],[0.084,-0.21],[0.376,0.084],[0.167,-0.252],[0.335,0.042],[0.376,0],[0.418,0.084],[0,-0.169],[-0.335,-0.126],[0.188,-0.189]],"v":[[5.459,3.581],[4.161,3.329],[3.326,2.782],[2.949,1.268],[1.568,-0.708],[0.784,-2.39],[-0.062,-3.189],[-1.527,-3.525],[-1.192,-4.24],[-0.23,-4.871],[0.188,-5.879],[0.773,-6.931],[-0.021,-7.141],[-2.908,-7.351],[-1.904,-8.57],[-1.399,-9.369],[-1.359,-9.454],[-2.699,-9.748],[-3.786,-9.664],[-4.329,-8.613],[-5.249,-7.604],[-5.585,-6.594],[-5.208,-5.879],[-5.041,-5.039],[-4.999,-4.114],[-3.995,-3.735],[-3.911,-2.642],[-4.078,-1.549],[-3.535,-0.918],[-2.154,-1.086],[-2.322,-0.077],[-1.652,1.058],[-1.694,2.446],[-3.242,2.488],[-3.827,2.908],[-3.326,3.959],[-3.702,5.431],[-4.664,6.23],[-2.656,6.861],[-2.113,7.491],[-3.535,7.66],[-3.953,8.584],[-5.041,9.173],[-4.873,9.93],[-3.326,9.636],[-2.531,8.963],[-1.317,8.753],[-0.355,8.206],[0.857,7.618],[2.029,8.122],[4.372,7.744],[5.417,6.987],[4.12,6.692],[5.124,5.137]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[192.416,162.531],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":4,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.042,0.476],[10.285,-12.495],[-0.05,-0.5],[0.227,-0.797],[-0.565,-0.113],[-0.453,-0.113],[0.792,-0.455],[0.453,-0.455],[-0.113,-1.365],[-0.114,-1.024],[-0.906,-0.342],[-0.566,0],[-0.34,1.252],[0,0],[-1.019,0.228],[-0.566,0.228],[-0.567,0.797],[-0.68,0.683],[-0.679,0.682],[-0.679,0.683],[0,0.91],[-0.114,1.252],[0,0],[-0.34,0.57],[0.679,0.341],[-0.34,0.342],[-0.397,0.398],[0.226,0.227],[-0.736,0.74],[-0.679,0.227],[-0.566,0],[0.905,0],[0.906,-0.626],[0.679,0],[0,0],[-0.509,0.512]],"o":[[-14.8,6.914],[0.118,0.526],[0.113,1.138],[-0.226,0.796],[0.566,0.114],[0.452,0.114],[-0.793,0.455],[-0.452,0.455],[0.113,1.365],[0.113,1.024],[0.905,0.341],[0.566,0],[0.339,-1.251],[0,0],[1.019,-0.227],[0.566,-0.227],[0.566,-0.796],[0.679,-0.683],[0.679,-0.683],[0.679,-0.682],[0,-0.91],[0.113,-1.251],[0,0],[0.34,-0.568],[-0.679,-0.341],[0.339,-0.341],[0.396,-0.398],[-0.226,-0.228],[0.736,-0.739],[0.679,-0.228],[0.566,0],[-0.906,0],[-0.905,0.626],[-0.679,0],[0,0],[0.28,-0.282]],"v":[[14.18,-26.157],[-23.904,3.405],[-23.6,4.995],[-24.165,7.271],[-24.279,9.432],[-21.674,8.977],[-23.939,11.48],[-25.523,13.87],[-25.863,17.852],[-25.184,22.403],[-22.807,25.816],[-20.09,26.157],[-18.506,22.971],[-14.658,13.983],[-12.281,12.504],[-7.188,9.546],[-4.471,6.474],[-0.057,4.654],[5.262,0.9],[8.658,-1.49],[8.884,-4.106],[9.904,-6.837],[12.281,-8.999],[13.751,-11.047],[13.298,-13.208],[13.072,-14.915],[15.337,-16.621],[13.751,-17.645],[15.109,-19.466],[19.751,-22.651],[25.41,-25.211],[24.164,-25.95],[19.41,-25.211],[16.354,-24.358],[13.979,-23.561],[13.751,-24.813]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.481999984442,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.155,130.103],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":4,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-60.423],[60.112,0],[0,60.423],[-60.11,0]],"o":[[0,60.423],[-60.11,0],[0,-60.423],[60.112,0]],"v":[[108.84,0],[-0.001,109.406],[-108.84,0],[-0.001,-109.406]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.051000000449,0.340999977261,0.670999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[220.147,203.209],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":4,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[9.496,10.504],[-2.392,-10.504],[-9.495,-6.484],[-2.823,-2.401],[-4.845,-1.258],[1.825,2.824],[0.518,3.563],[5.262,6.466],[4.033,7.161]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.141000007181,0.670999983245,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[282.776,302.485],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":4,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[-9.496,-4.475],[-2.824,-0.392],[-4.846,0.753],[1.824,4.834],[0.518,5.572],[5.261,8.475],[4.032,9.171],[9.495,12.513],[9.441,6.109],[8.214,6.805],[8.167,1.244],[6.861,1.983],[6.796,-5.836],[4.775,-4.693],[4.71,-12.514]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090000002992,0.788000009574,0.008000000785,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[282.776,300.475],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":4,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[-3.833,11.759],[4.551,-8.924],[-2.442,-11.759],[-1.566,-4.58],[-3.555,-5.387],[-2.679,1.79],[-3.965,1.269],[-3.342,6.372],[-4.551,5.882]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.141000007181,0.670999983245,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[176.517,311.743],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":4,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[-5.939,-11.759],[-5.064,-4.58],[-7.053,-5.387],[-6.176,1.79],[-7.462,1.268],[-6.839,6.372],[-8.048,5.882],[-7.331,11.759],[-2.723,8.04],[-3.932,7.55],[0.069,4.321],[-1.217,3.8],[4.41,-0.74],[2.419,-1.547],[8.048,-6.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090000002992,0.788000009574,0.008000000785,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[180.014,311.743],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":4,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[-6.057,14.554],[6.378,-10.349],[-2.042,-14.554],[-1.65,-5.543],[-4.045,-6.739],[-3.653,2.269],[-5.202,1.496],[-4.922,7.903],[-6.378,7.176]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.141000007181,0.670999983245,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[166.017,309.236],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":4,"cix":2,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[-6.252,-14.554],[-5.859,-5.542],[-8.255,-6.739],[-7.863,2.269],[-9.411,1.497],[-9.132,7.903],[-10.589,7.176],[-10.268,14.554],[-4.176,10.378],[-5.632,9.651],[-0.343,6.025],[-1.891,5.252],[5.545,0.153],[3.15,-1.043],[10.589,-6.145]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090000002992,0.788000009574,0.008000000785,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[170.228,309.236],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":4,"cix":2,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[13.814,8.682],[-7.943,-8.681],[-13.814,-1.325],[-4.918,0.174],[-6.589,2.267],[2.302,3.765],[1.223,5.118],[7.546,6.183],[6.531,7.454]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.141000007181,0.670999983245,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[311.184,278.988],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":4,"cix":2,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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.814,2.353],[-4.918,3.852],[-6.589,5.945],[2.302,7.443],[1.223,8.795],[7.546,9.861],[6.531,11.132],[13.814,12.36],[11.001,5.531],[9.987,6.802],[7.545,0.873],[6.465,2.226],[3.033,-6.112],[1.363,-4.019],[-2.072,-12.36]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090000002992,0.788000009574,0.008000000785,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[311.184,275.31],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":4,"cix":2,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[-13.418,-9.441],[7.033,9.442],[13.418,2.527],[4.654,0.392],[6.47,-1.575],[-2.29,-3.709],[-1.116,-4.981],[-7.347,-6.498],[-6.243,-7.693]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.141000007181,0.670999983245,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[129.631,128.631],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":4,"cix":2,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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.418,-0.931],[4.654,-3.066],[6.47,-5.033],[-2.29,-7.166],[-1.116,-8.438],[-7.347,-9.955],[-6.243,-11.151],[-13.418,-12.899],[-11.104,-5.885],[-10,-7.081],[-7.992,-0.991],[-6.818,-2.263],[-3.994,6.3],[-2.177,4.333],[0.648,12.899]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090000002992,0.788000009574,0.008000000785,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[129.631,132.088],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":4,"cix":2,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[-18.781,-14.691],[8.846,14.691],[18.781,5.35],[6.333,1.368],[9.16,-1.289],[-3.285,-5.269],[-1.458,-6.986],[-10.307,-9.816],[-8.59,-11.432]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.141000007181,0.670999983245,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[140.776,111.29],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":4,"cix":2,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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":[[18.782,0.678],[6.333,-3.303],[9.16,-5.96],[-3.285,-9.939],[-1.458,-11.658],[-10.307,-14.488],[-8.589,-16.102],[-18.781,-19.363],[-16.156,-8.989],[-14.438,-10.605],[-12.156,-1.597],[-10.329,-3.314],[-7.124,9.35],[-4.296,6.692],[-1.089,19.363]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090000002992,0.788000009574,0.008000000785,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[140.776,115.962],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":4,"cix":2,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.473,2.159],[0.281,-0.053],[2.266,3.786],[-0.345,-1.85],[-4.577,0.852]],"o":[[-0.274,0.065],[-5.764,1.072],[-1.427,1.317],[0.574,3.086],[3.234,-0.602]],"v":[[7.973,-0.129],[7.141,0.051],[-6.302,-4.736],[-7.866,0.217],[-0.062,4.545]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.689999988032,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[339.28,193.918],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":4,"cix":2,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.577,-0.853],[0.575,3.086],[-4.578,0.852],[-0.574,-3.086]],"o":[[-4.577,0.852],[-0.575,-3.086],[4.577,-0.852],[0.576,3.085]],"v":[[-0.484,5.587],[-8.288,1.259],[-2.564,-5.587],[8.288,-1.827]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.8,0.097999999102,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[339.702,192.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":4,"cix":2,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-3.663,1.391],[-3.919,0.021],[3.664,-1.391],[3.919,-0.02]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.344999994016,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[331.293,194.007],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":4,"cix":2,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.207,1.606],[-0.046,-0.295],[4.024,-2.245],[-1.942,0.301],[0.744,4.805]],"o":[[0.06,0.288],[0.937,6.051],[1.33,1.531],[3.239,-0.502],[-0.526,-3.395]],"v":[[0.249,-8.311],[0.41,-7.437],[-5.014,6.443],[0.106,8.233],[4.872,0.225]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.689999988032,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[215.704,83.975],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":4,"cix":2,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.744,-4.805],[3.24,-0.502],[0.743,4.805],[-3.24,0.501]],"o":[[0.744,4.805],[-3.238,0.501],[-0.745,-4.805],[3.239,-0.502]],"v":[[5.865,0.693],[1.099,8.701],[-5.864,2.509],[-1.594,-8.7]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.8,0.097999999102,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[214.711,83.507],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":4,"cix":2,"ix":32,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.336,3.868],[-0.103,4.092],[-1.336,-3.869],[0.104,-4.092]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.344999994016,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[215.673,92.329],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 33","np":4,"cix":2,"ix":33,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.26,3.274],[0.08,-0.428],[6.617,-1.146],[-2.815,-0.524],[-1.296,6.967]],"o":[[-0.058,0.425],[-1.632,8.773],[1.089,2.748],[4.697,0.873],[0.915,-4.923]],"v":[[5.882,-11.423],[5.681,-10.143],[-8.476,6.328],[-2.299,11.261],[8.12,2.547]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.689999988032,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[232.538,81.807],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 34","np":4,"cix":2,"ix":34,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.296,-6.967],[4.696,0.874],[-1.295,6.967],[-4.696,-0.873]],"o":[[-1.296,6.967],[-4.696,-0.873],[1.296,-6.967],[4.697,0.873]],"v":[[8.504,3.902],[-1.915,12.615],[-8.505,0.739],[2.777,-12.616]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.8,0.097999999102,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[232.155,80.452],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 35","np":4,"cix":2,"ix":35,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.029,5.965],[-2.117,5.578],[0.03,-5.965],[2.117,-5.576]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.344999994016,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[229.993,93.169],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 36","np":4,"cix":2,"ix":36,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.029,-3.263],[-0.256,0.25],[-4.982,-2.353],[1.642,1.679],[4.158,-4.063]],"o":[[0.239,-0.259],[5.235,-5.117],[0.565,-2.357],[-2.739,-2.803],[-2.938,2.872]],"v":[[-9.1,6.738],[-8.361,5.974],[8.912,1.602],[7.094,-4.622],[-4.009,-3.693]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.689999988032,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.579,291.88],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 37","np":4,"cix":2,"ix":37,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.157,4.064],[-2.739,-2.802],[4.158,-4.063],[2.739,2.803]],"o":[[4.158,-4.063],[2.739,2.802],[-4.157,4.065],[-2.739,-2.803]],"v":[[-3.693,-6.263],[7.41,-7.193],[6.227,3.885],[-7.646,7.523]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.8,0.097999999102,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.264,294.45],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 38","np":4,"cix":2,"ix":38,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.835,-3.989],[4.053,-2.743],[-2.834,3.989],[-4.052,2.743]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.344999994016,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[144.887,287.306],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 39","np":4,"cix":2,"ix":39,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.32,-1.556],[-0.3,-0.06],[-0.744,-4.659],[-0.394,1.972],[4.881,0.974]],"o":[[0.298,0.044],[6.146,1.228],[1.939,-0.741],[0.657,-3.29],[-3.449,-0.689]],"v":[[-7.992,-4.259],[-7.095,-4.106],[4.341,5.99],[7.862,1.697],[1.84,-5.7]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.689999988032,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[109.648,153.918],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 40","np":4,"cix":2,"ix":40,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.881,-0.975],[0.657,-3.29],[4.88,0.974],[-0.657,3.29]],"o":[[4.881,0.975],[-0.657,3.291],[-4.881,-0.975],[0.657,-3.29]],"v":[[2.816,-5.957],[8.838,1.44],[0.437,5.958],[-8.837,-2.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.8,0.097999999102,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[108.672,154.174],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 41","np":4,"cix":2,"ix":41,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.189,0.076],[3.896,1.538],[-4.189,-0.076],[-3.897,-1.538]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.344999994016,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[117.579,155.789],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 42","np":4,"cix":2,"ix":42,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.785,-1.197],[-0.231,-0.046],[-0.572,-3.583],[-0.303,1.517],[3.755,0.75]],"o":[[0.229,0.034],[4.728,0.945],[1.492,-0.57],[0.506,-2.531],[-2.652,-0.53]],"v":[[-6.148,-3.276],[-5.458,-3.159],[3.339,4.607],[6.047,1.305],[1.414,-4.385]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.689999988032,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[111.808,163.788],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 43","np":4,"cix":2,"ix":43,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.754,-0.75],[0.505,-2.53],[3.754,0.75],[-0.506,2.531]],"o":[[3.755,0.75],[-0.506,2.531],[-3.754,-0.75],[0.505,-2.531]],"v":[[2.166,-4.583],[6.799,1.107],[0.336,4.583],[-6.798,-1.607]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.8,0.097999999102,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[111.057,163.985],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 44","np":4,"cix":2,"ix":44,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.222,0.058],[2.997,1.183],[-3.222,-0.059],[-2.998,-1.184]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.344999994016,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[117.908,165.227],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 45","np":4,"cix":2,"ix":45,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.864,-2.582],[-0.134,0.267],[-4.569,-0.504],[1.752,0.88],[2.176,-4.335]],"o":[[0.118,-0.269],[2.74,-5.46],[-0.195,-2.014],[-2.922,-1.467],[-1.537,3.063]],"v":[[-6.198,7.009],[-5.823,6.206],[6.617,-1.934],[3.492,-6.352],[-5.015,-2.602]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.689999988032,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[152.53,299.31],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 46","np":4,"cix":2,"ix":46,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.176,4.335],[-2.923,-1.467],[2.176,-4.335],[2.922,1.467]],"o":[[2.176,-4.335],[2.922,1.467],[-2.176,4.335],[-2.922,-1.468]],"v":[[-5.231,-4.1],[3.275,-7.85],[5.352,1.212],[-4.605,7.85]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.8,0.097999999102,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[152.747,300.807],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 47","np":4,"cix":2,"ix":47,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.153,-3.917],[2.452,-3.265],[-1.153,3.917],[-2.452,3.266]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.344999994016,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[156.204,292.938],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 48","np":4,"cix":2,"ix":48,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.045,-0.438],[0.278,0.348],[-3.536,5.89],[2.287,-1.83],[-4.529,-5.659]],"o":[[-0.291,-0.328],[-5.703,-7.127],[-2.856,-0.993],[-3.814,3.053],[3.201,4]],"v":[[7.674,11.722],[6.817,10.711],[3.526,-11.258],[-4.423,-9.771],[-4.639,4.118]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.689999988032,0.081999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[301.735,296.291],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 49","np":4,"cix":2,"ix":49,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.528,5.659],[-3.815,3.053],[-4.529,-5.659],[3.816,-3.052]],"o":[[-4.529,-5.659],[3.815,-3.052],[4.529,5.659],[-3.814,3.053]],"v":[[-7.951,3.642],[-7.735,-10.248],[5.864,-7.413],[8.664,10.247]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.8,0.097999999102,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[305.048,296.768],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 50","np":4,"cix":2,"ix":50,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.599,-4.01],[-2.904,-5.366],[4.599,4.009],[2.903,5.366]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.344999994016,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[297.4,286.261],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 51","np":4,"cix":2,"ix":51,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.372,-7.247],[4.985,3.736],[-5.373,7.247],[-4.986,-3.735]],"o":[[-5.372,7.246],[-4.985,-3.734],[5.372,-7.246],[4.986,3.735]],"v":[[9.027,6.762],[-9.728,13.12],[-9.028,-6.762],[9.727,-13.121]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.375999989229,0.702000038297,0.195999998205,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[321.291,233.272],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 52","np":4,"cix":2,"ix":52,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.181,-8.96],[6.164,0.821],[-1.18,8.96],[-6.165,-0.821]],"o":[[-1.18,8.959],[-6.164,-0.82],[1.18,-8.959],[6.164,0.82]],"v":[[11.16,1.486],[-2.138,16.222],[-11.162,-1.486],[2.137,-16.222]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.375999989229,0.702000038297,0.195999998205,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[323.532,212.715],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 53","np":4,"cix":2,"ix":53,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.648,-4.751],[3.269,5.316],[-7.648,4.751],[-3.269,-5.318]],"o":[[-7.648,4.751],[-3.268,-5.318],[7.649,-4.751],[3.268,5.316]],"v":[[5.918,9.627],[-13.849,8.603],[-5.919,-9.627],[13.848,-8.602]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.375999989229,0.702000038297,0.195999998205,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[312.889,252.882],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 54","np":4,"cix":2,"ix":54,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.176,0.066],[-0.063,1.147],[0,0]],"o":[[0,0],[-0.062,1.149],[-1.175,-0.064],[0,0],[0,0]],"v":[[2.284,-3.182],[2.035,1.389],[-0.206,3.35],[-2.221,1.156],[-1.971,-3.417]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[209.543,357.135],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 55","np":4,"cix":2,"ix":55,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-17.278,-1.892],[17.382,0.013],[17.28,1.892],[-17.382,-0.013]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[210.392,341.086],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 56","np":4,"cix":2,"ix":56,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-17.278,-1.892],[17.382,0.014],[17.28,1.893],[-17.382,-0.012]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.327,323.889],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 57","np":4,"cix":2,"ix":57,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.641,0.091],[-0.087,1.601],[0,0]],"o":[[0,0],[-0.088,1.601],[-1.64,-0.09],[0,0],[0,0]],"v":[[3.187,-4.442],[2.84,1.941],[-0.288,4.677],[-3.1,1.615],[-2.752,-4.768]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.310000011968,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.052,331.91],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 58","np":4,"cix":2,"ix":58,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.64,0.09],[-0.087,1.601],[0,0]],"o":[[0,0],[-0.087,1.601],[-1.64,-0.091],[0,0],[0,0]],"v":[[3.187,-4.442],[2.839,1.941],[-0.288,4.678],[-3.1,1.615],[-2.753,-4.768]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.310000011968,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[210.896,332.451],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 59","np":4,"cix":2,"ix":59,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.641,0.09],[-0.088,1.601],[0,0]],"o":[[0,0],[-0.087,1.601],[-1.64,-0.091],[0,0],[0,0]],"v":[[3.188,-4.441],[2.839,1.941],[-0.289,4.678],[-3.1,1.615],[-2.753,-4.768]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.310000011968,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[220.738,332.992],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 60","np":4,"cix":2,"ix":60,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.199,-21.743],[18.461,-19.838],[16.199,21.743],[-18.461,19.838]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.877999997606,0.532999973671,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.274,324.872],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 61","np":4,"cix":2,"ix":61,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.637,0.035],[-0.034,0.622],[0,0]],"o":[[0,0],[-0.034,0.622],[-0.637,-0.035],[0,0],[0,0]],"v":[[1.238,-1.725],[1.102,0.754],[-0.112,1.816],[-1.204,0.627],[-1.069,-1.851]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.908,320.988],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 62","np":4,"cix":2,"ix":62,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.637,0.035],[-0.034,0.622],[0,0]],"o":[[0,0],[-0.033,0.622],[-0.637,-0.035],[0,0],[0,0]],"v":[[1.238,-1.724],[1.102,0.754],[-0.112,1.816],[-1.204,0.627],[-1.069,-1.851]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[185.605,320.696],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 63","np":4,"cix":2,"ix":63,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.638,0.035],[-0.034,0.622],[0,0]],"o":[[0,0],[-0.034,0.622],[-0.636,-0.035],[0,0],[0,0]],"v":[[1.238,-1.725],[1.102,0.754],[-0.113,1.816],[-1.204,0.628],[-1.069,-1.852]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[180.302,320.405],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 64","np":4,"cix":2,"ix":64,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.637,0.035],[-0.034,0.622],[0,0]],"o":[[0,0],[-0.034,0.622],[-0.637,-0.034],[0,0],[0,0]],"v":[[1.238,-1.724],[1.102,0.754],[-0.112,1.816],[-1.204,0.627],[-1.069,-1.851]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[175,320.113],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 65","np":4,"cix":2,"ix":65,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.579,-2.785],[-1.269,-2.941],[-1.58,2.783],[1.267,2.94]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[192.604,326.537],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 66","np":4,"cix":2,"ix":66,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.58,-2.785],[-1.268,-2.941],[-1.579,2.784],[1.268,2.941]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[187.763,326.271],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 67","np":4,"cix":2,"ix":67,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.579,-2.784],[-1.269,-2.941],[-1.58,2.784],[1.267,2.941]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[182.922,326.004],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 68","np":4,"cix":2,"ix":68,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.579,-2.785],[-1.269,-2.941],[-1.58,2.783],[1.268,2.941]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.08,325.738],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 69","np":4,"cix":2,"ix":69,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.58,-2.784],[-1.268,-2.941],[-1.58,2.784],[1.268,2.941]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[173.239,325.472],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 70","np":4,"cix":2,"ix":70,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.477,-10.777],[-14.215,-12.41],[-15.477,10.778],[14.214,12.41]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[187.307,314.33],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 71","np":4,"cix":2,"ix":71,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.637,-0.035],[-0.033,0.623],[0,0]],"o":[[0,0],[-0.034,0.622],[0.637,0.035],[0,0],[0,0]],"v":[[-1.068,-1.851],[-1.204,0.627],[-0.112,1.816],[1.102,0.753],[1.238,-1.724]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[231.967,323.245],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 72","np":4,"cix":2,"ix":72,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.638,-0.035],[-0.034,0.623],[0,0]],"o":[[0,0],[-0.034,0.622],[0.637,0.035],[0,0],[0,0]],"v":[[-1.068,-1.852],[-1.204,0.628],[-0.112,1.816],[1.102,0.753],[1.238,-1.724]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[237.27,323.536],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 73","np":4,"cix":2,"ix":73,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.637,-0.034],[-0.034,0.623],[0,0]],"o":[[0,0],[-0.033,0.622],[0.637,0.035],[0,0],[0,0]],"v":[[-1.069,-1.851],[-1.204,0.627],[-0.113,1.816],[1.103,0.753],[1.238,-1.724]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[242.572,323.828],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 74","np":4,"cix":2,"ix":74,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.637,-0.035],[-0.034,0.623],[0,0]],"o":[[0,0],[-0.033,0.622],[0.637,0.035],[0,0],[0,0]],"v":[[-1.069,-1.851],[-1.204,0.627],[-0.113,1.816],[1.103,0.753],[1.238,-1.725]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[247.875,324.12],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 75","np":4,"cix":2,"ix":75,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.268,-2.941],[1.58,-2.784],[1.268,2.941],[-1.58,2.785]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[229.653,328.573],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 76","np":4,"cix":2,"ix":76,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.268,-2.941],[1.58,-2.785],[1.268,2.941],[-1.58,2.784]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[234.494,328.84],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 77","np":4,"cix":2,"ix":77,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.268,-2.941],[1.58,-2.784],[1.268,2.941],[-1.58,2.785]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[239.335,329.105],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 78","np":4,"cix":2,"ix":78,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.268,-2.941],[1.58,-2.785],[1.268,2.941],[-1.58,2.784]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[244.176,329.372],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 79","np":4,"cix":2,"ix":79,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.268,-2.941],[1.58,-2.784],[1.268,2.941],[-1.58,2.785]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[249.018,329.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 80","np":4,"cix":2,"ix":80,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-14.214,-12.41],[15.477,-10.777],[14.215,12.41],[-15.477,10.777]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[236.242,317.02],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 81","np":4,"cix":2,"ix":81,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.223,-3.981],[2.643,-3.713],[2.225,3.981],[-2.643,3.713]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.877999997606,0.532999973671,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[195.246,344.844],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 82","np":4,"cix":2,"ix":82,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.224,-3.982],[2.643,-3.714],[2.224,3.982],[-2.643,3.714]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.877999997606,0.532999973671,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[202.695,345.253],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 83","np":4,"cix":2,"ix":83,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.223,-3.982],[2.643,-3.712],[2.225,3.982],[-2.643,3.714]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.877999997606,0.532999973671,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[210.143,345.663],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 84","np":4,"cix":2,"ix":84,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.224,-3.981],[2.643,-3.713],[2.224,3.981],[-2.643,3.713]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.877999997606,0.532999973671,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[217.592,346.072],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 85","np":4,"cix":2,"ix":85,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.223,-3.981],[2.643,-3.713],[2.223,3.982],[-2.643,3.714]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.877999997606,0.532999973671,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[225.04,346.482],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 86","np":4,"cix":2,"ix":86,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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":[[-0.518,4.388],[-14.252,-7.465],[-14.42,-4.386],[-0.685,7.465],[14.253,-2.81],[14.42,-5.888]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[209.559,361.528],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 87","np":4,"cix":2,"ix":87,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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":[[-0.979,14.031],[10.549,6.1],[11.579,-12.815],[0.515,-13.423],[-10.549,-14.031],[-11.579,4.885]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.642999985639,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[210.003,352.197],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 88","np":4,"cix":2,"ix":88,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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":[[-0.418,3.544],[-11.511,-6.029],[-11.647,-3.544],[-0.553,6.029],[11.513,-2.27],[11.647,-4.756]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.877999997606,0.532999973671,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[209.355,364.277],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 89","np":4,"cix":2,"ix":89,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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":[[-0.394,3.329],[-10.817,-5.665],[-10.944,-3.33],[-0.521,5.665],[10.816,-2.134],[10.944,-4.469]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760999971278,0.4,0.136999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[209.257,365.852],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 90","np":4,"cix":2,"ix":90,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.722,0.457],[0.441,0.705],[0,0]],"o":[[0,0],[0.442,0.704],[0.722,-0.457],[0,0],[0,0]],"v":[[-2.622,-1.371],[-0.433,2.122],[1.674,2.57],[2.181,0.466],[-0.01,-3.027]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[293.365,335.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 91","np":4,"cix":2,"ix":91,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.722,0.457],[0.441,0.705],[0,0]],"o":[[0,0],[0.442,0.704],[0.722,-0.457],[0,0],[0,0]],"v":[[-2.622,-1.371],[-0.433,2.122],[1.674,2.57],[2.181,0.466],[-0.01,-3.027]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[297.604,333.161],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 92","np":4,"cix":2,"ix":92,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.722,0.457],[0.441,0.705],[0,0]],"o":[[0,0],[0.442,0.704],[0.722,-0.458],[0,0],[0,0]],"v":[[-2.622,-1.371],[-0.433,2.122],[1.674,2.57],[2.181,0.466],[-0.009,-3.027]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[301.843,330.476],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 93","np":4,"cix":2,"ix":93,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.722,0.457],[0.442,0.705],[0,0]],"o":[[0,0],[0.442,0.704],[0.722,-0.458],[0,0],[0,0]],"v":[[-2.623,-1.371],[-0.433,2.122],[1.674,2.57],[2.181,0.466],[-0.01,-3.027]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[306.083,327.79],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 94","np":4,"cix":2,"ix":94,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.722,0.457],[0.442,0.705],[0,0]],"o":[[0,0],[0.442,0.704],[0.722,-0.458],[0,0],[0,0]],"v":[[-2.623,-1.371],[-0.433,2.122],[1.674,2.57],[2.181,0.466],[-0.009,-3.027]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[310.322,325.105],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 95","np":4,"cix":2,"ix":95,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-12.56,5.379],[9.664,-8.7],[12.56,-7.09],[-12.365,8.7]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[299.853,326.553],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 96","np":4,"cix":2,"ix":96,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-3.406,-2.865],[-1.101,-4.324],[3.406,2.865],[1.101,4.325]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[289.759,319.834],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 97","np":4,"cix":2,"ix":97,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-3.406,-2.865],[-1.101,-4.324],[3.406,2.865],[1.101,4.324]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[297.596,314.869],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 98","np":4,"cix":2,"ix":98,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.457,6.447],[4.294,5.917],[-3.457,-6.447],[-4.294,-5.915]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[285.166,322.52],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 99","np":4,"cix":2,"ix":99,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.457,6.447],[4.294,5.917],[-3.457,-6.447],[-4.294,-5.915]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[287.096,321.297],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 100","np":4,"cix":2,"ix":100,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.137,1.884],[2.613,-1.126],[2.138,-1.884],[-2.613,1.126]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[290.75,329.277],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 101","np":4,"cix":2,"ix":101,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.343,0.919],[1.838,-1.728],[2.344,-0.921],[-1.836,1.728]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[290.259,328.495],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 102","np":4,"cix":2,"ix":102,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.823,-0.197],[1.041,-2.645],[2.823,0.197],[-1.042,2.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[281.365,314.307],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 103","np":4,"cix":2,"ix":103,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.457,6.446],[4.294,5.917],[-3.457,-6.447],[-4.294,-5.916]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[292.612,317.802],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 104","np":4,"cix":2,"ix":104,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.457,6.446],[4.294,5.916],[-3.457,-6.446],[-4.294,-5.916]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[294.542,316.58],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 105","np":4,"cix":2,"ix":105,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.138,1.884],[2.613,-1.126],[2.138,-1.884],[-2.613,1.126]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[298.197,324.559],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 106","np":4,"cix":2,"ix":106,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.344,0.92],[1.837,-1.728],[2.343,-0.921],[-1.837,1.728]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[297.706,323.777],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 107","np":4,"cix":2,"ix":107,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.823,-0.197],[1.042,-2.645],[2.823,0.196],[-1.042,2.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[288.811,309.59],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 108","np":4,"cix":2,"ix":108,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.457,6.446],[4.293,5.917],[-3.457,-6.447],[-4.293,-5.916]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[300.059,313.085],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 109","np":4,"cix":2,"ix":109,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.457,6.447],[4.293,5.917],[-3.457,-6.447],[-4.293,-5.915]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[301.989,311.862],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 110","np":4,"cix":2,"ix":110,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.137,1.884],[2.613,-1.126],[2.138,-1.884],[-2.613,1.126]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[305.643,319.842],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 111","np":4,"cix":2,"ix":111,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.344,0.919],[1.837,-1.728],[2.343,-0.921],[-1.837,1.729]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[305.152,319.059],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 112","np":4,"cix":2,"ix":112,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.823,-0.196],[1.042,-2.645],[2.823,0.197],[-1.042,2.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[296.258,304.872],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 113","np":4,"cix":2,"ix":113,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.272,0.435],[-0.433,0.274],[0,0],[-0.273,-0.435],[0.431,-0.274],[0,0]],"o":[[-0.272,-0.435],[0,0],[0.433,-0.275],[0.272,0.434],[0,0],[-0.432,0.274]],"v":[[-10.149,6.43],[-9.859,5.147],[8.872,-6.719],[10.149,-6.428],[9.86,-5.146],[-8.873,6.72]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[309.021,341.823],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 114","np":4,"cix":2,"ix":114,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.272,0.435],[-0.433,0.273],[0,0],[-0.273,-0.435],[0.431,-0.274],[0,0]],"o":[[-0.272,-0.435],[0,0],[0.432,-0.274],[0.272,0.434],[0,0],[-0.432,0.273]],"v":[[-11.794,7.472],[-11.505,6.19],[10.518,-7.762],[11.794,-7.471],[11.505,-6.189],[-10.519,7.763]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[287.427,307.382],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 115","np":4,"cix":2,"ix":115,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.347,0.854],[0.824,1.316],[0,0]],"o":[[0,0],[0.826,1.316],[1.348,-0.853],[0,0],[0,0]],"v":[[-4.219,-1.482],[-1.483,2.882],[2.449,3.719],[3.396,-0.208],[0.66,-4.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[273.306,300.204],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 116","np":4,"cix":2,"ix":116,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.348,0.854],[0.825,1.317],[0,0]],"o":[[0,0],[0.825,1.316],[1.347,-0.853],[0,0],[0,0]],"v":[[-4.22,-1.482],[-1.484,2.882],[2.449,3.719],[3.394,-0.209],[0.658,-4.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280.108,295.896],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 117","np":4,"cix":2,"ix":117,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.347,0.854],[0.824,1.317],[0,0]],"o":[[0,0],[0.826,1.316],[1.348,-0.853],[0,0],[0,0]],"v":[[-4.219,-1.482],[-1.483,2.882],[2.449,3.719],[3.396,-0.209],[0.66,-4.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[286.909,291.587],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 118","np":4,"cix":2,"ix":118,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.616,9.517],[11.396,-1.893],[6.616,-9.517],[-11.396,1.893]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.638999968884,0.430999995213,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[306.833,338.333],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 119","np":4,"cix":2,"ix":119,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-13.298,3.002],[8.431,-10.764],[13.298,-3.003],[-8.432,10.764]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.702000038297,0.510000011968,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[302.01,330.642],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 120","np":4,"cix":2,"ix":120,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.378,-1.911],[5.352,-15.677],[16.379,1.911],[-5.352,15.678]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.702000038297,0.510000011968,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[292.941,316.177],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 121","np":4,"cix":2,"ix":121,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-15.818,-0.149],[6.69,-14.409],[15.817,0.149],[-6.691,14.409]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.702000038297,0.510000011968,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[282.95,300.241],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 122","np":4,"cix":2,"ix":122,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.942,1.863],[1.801,2.873],[0,0]],"o":[[0,0],[1.8,2.872],[2.942,-1.865],[0,0],[0,0]],"v":[[-7.277,-0.146],[-5.177,3.205],[3.41,5.032],[5.477,-3.544],[3.375,-6.895]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.702000038297,0.510000011968,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[310.038,343.854],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 123","np":4,"cix":2,"ix":123,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-4.478,2.836],[2.741,4.372],[0,0]],"o":[[0,0],[2.741,4.372],[4.476,-2.836],[0,0],[0,0]],"v":[[-11.074,-0.221],[-7.879,4.876],[5.191,7.656],[8.333,-5.395],[5.137,-10.492]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.250999989229,0.122000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[310.924,345.482],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 124","np":4,"cix":2,"ix":124,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.196,0.047],[1.853,-3.785],[4.197,-0.047],[-1.853,3.785]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.702000038297,0.510000011968,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[315.836,352.693],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 125","np":4,"cix":2,"ix":125,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.28,0.81],[0.784,1.251],[0,0]],"o":[[0,0],[0.784,1.251],[1.282,-0.812],[0,0],[0,0]],"v":[[-3.168,-0.063],[-2.254,1.395],[1.484,2.191],[2.384,-1.543],[1.47,-3.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.356999984442,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[316.958,354.662],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 126","np":4,"cix":2,"ix":126,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.021,0.658],[0.533,-0.017],[-0.02,-0.659],[-0.533,0.017]],"o":[[-0.021,-0.657],[-0.534,0.016],[0.021,0.658],[0.533,-0.017]],"v":[[0.966,-0.031],[-0.038,-1.191],[-0.966,0.031],[0.036,1.191]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.702000038297,0.510000011968,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[319.313,360.217],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 127","np":4,"cix":2,"ix":127,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.732,0.381],[-0.308,0.599],[-0.732,-0.381],[0.308,-0.6]],"o":[[-0.732,-0.381],[0.31,-0.6],[0.733,0.381],[-0.309,0.6]],"v":[[-0.559,1.086],[-1.327,-0.69],[0.56,-1.087],[1.327,0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.702000038297,0.510000011968,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[321.627,358.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 128","np":4,"cix":2,"ix":128,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.339,0.216],[-0.214,-0.341],[0,0],[0.339,-0.214],[0.214,0.341]],"o":[[-0.215,-0.341],[0.339,-0.215],[0,0],[0.213,0.341],[-0.34,0.215],[0,0]],"v":[[-1.634,-1.238],[-1.408,-2.247],[-0.406,-2.018],[1.637,1.24],[1.409,2.246],[0.406,2.018]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.702000038297,0.510000011968,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[319.795,358.93],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 129","np":4,"cix":2,"ix":129,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.069,4.668],[3.245,-6.955],[6.069,-4.669],[-3.246,6.955]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.102000000898,0.39199999641,0.451000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[350.065,306.346],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 130","np":4,"cix":2,"ix":130,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-8.401,-6.124],[-7.742,-6.947],[8.401,6.125],[7.742,6.947]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[365.958,314.296],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 131","np":4,"cix":2,"ix":131,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-28.177,-21.734],[-27.124,-23.047],[28.177,21.733],[27.124,23.046]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294000004787,0.564999988032,0.620000023935,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[338.879,290.608],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 132","np":4,"cix":2,"ix":132,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.558,1.943],[0,0],[2.022,1.638],[0,0]],"o":[[0,0],[1.557,-1.943],[0,0],[2.021,1.637]],"v":[[-7.211,14.216],[12.134,-9.924],[11.293,-16.407],[-13.691,14.77]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.102000000898,0.39199999641,0.451000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[300.702,276.136],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 133","np":4,"cix":2,"ix":133,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.965,8.484],[6.551,-9.629],[7.966,-8.483],[-6.549,9.63]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[306.679,285.872],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 134","np":4,"cix":2,"ix":134,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.966,8.483],[6.55,-9.629],[7.965,-8.483],[-6.55,9.629]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[311.184,289.52],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 135","np":4,"cix":2,"ix":135,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.965,8.484],[6.551,-9.629],[7.966,-8.483],[-6.551,9.63]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[315.689,293.168],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 136","np":4,"cix":2,"ix":136,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.966,8.484],[6.55,-9.629],[7.966,-8.483],[-6.55,9.63]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[320.193,296.816],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 137","np":4,"cix":2,"ix":137,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.966,8.483],[6.55,-9.629],[7.966,-8.483],[-6.55,9.629]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[324.698,300.464],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 138","np":4,"cix":2,"ix":138,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.759,8.224],[6.342,-9.371],[7.758,-8.224],[-6.343,9.37]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[329.411,303.852],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 139","np":4,"cix":2,"ix":139,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.344,7.707],[5.927,-8.854],[7.344,-7.707],[-5.928,8.853]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[334.33,306.982],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 140","np":4,"cix":2,"ix":140,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.462,6.608],[5.046,-7.753],[6.462,-6.607],[-5.047,7.754]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[339.716,309.531],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 141","np":4,"cix":2,"ix":141,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.639,5.581],[4.223,-6.727],[5.639,-5.58],[-4.224,6.727]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[345.044,312.152],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 142","np":4,"cix":2,"ix":142,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.388,4.02],[2.973,-5.166],[4.388,-4.019],[-2.974,5.166]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[350.8,314.238],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 143","np":4,"cix":2,"ix":143,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-16.192,5.918],[0,0],[0,0]],"o":[[0,0],[0,0],[19.978,24.842]],"v":[[31.623,17.799],[-19.648,-23.718],[-31.622,-8.777]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294000004787,0.564999988032,0.620000023935,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[328.395,297.61],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 144","np":4,"cix":2,"ix":144,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-19.335,8.236],[0,0],[0,0]],"o":[[0,0],[0,0],[21.613,28.38]],"v":[[36.026,18.967],[-20.992,-27.203],[-36.026,-8.443]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.128999986836,0.486000001197,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[328.586,298.031],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 145","np":4,"cix":2,"ix":145,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-3.261,0.536],[-0.172,-3.318],[3.261,-0.537],[0.173,3.318]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.102000000898,0.39199999641,0.451000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[359.816,310.907],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 146","np":4,"cix":2,"ix":146,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-4.62,2.13],[4.62,-0.918],[4.133,-2.13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.811999990426,0.435000011968,0.187999994615,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.677,258.559],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 147","np":4,"cix":2,"ix":147,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.73,-1.817],[-1.755,0.713],[0,0]],"o":[[0,0],[-1.755,0.713],[0.73,1.816],[0,0],[0,0]],"v":[[3.631,-5.132],[-3.688,-2.158],[-5.544,2.421],[-1.045,4.419],[6.274,1.446]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[114.128,232.659],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 148","np":4,"cix":2,"ix":148,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.668,-6.721],[8.398,0.072],[-7.976,6.721],[-8.398,-1.008]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[107.627,223.141],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 149","np":4,"cix":2,"ix":149,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[9.552,0.54],[6.822,-6.253],[-9.551,0.396],[-4.514,6.253]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[115.071,244.064],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 150","np":4,"cix":2,"ix":150,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.253,-10.624],[11.12,3.975],[-5.253,10.624],[-11.12,-3.975]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.184000007779,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[110.772,233.837],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 151","np":4,"cix":2,"ix":151,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.39,-0.97],[-0.389,-0.97],[0,0],[-0.39,-0.969],[-0.39,-0.97],[0,0],[0.634,1.577],[0,0],[0.634,1.577],[0,0]],"o":[[0.39,0.971],[0.391,0.97],[0,0],[0.39,0.971],[0.39,0.971],[0,0],[-0.633,-1.577],[0,0],[-0.634,-1.576],[0,0]],"v":[[-7.078,-15.726],[-6.952,-7.03],[-3.653,1.175],[-0.355,9.381],[5.563,15.725],[6.733,18.636],[7.614,14.892],[1.294,-0.833],[-5.027,-16.559],[-8.248,-18.636]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.322000002394,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.392,236.736],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 152","np":4,"cix":2,"ix":152,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.529,-1.318],[-1.274,0.517],[0,0]],"o":[[0,0],[-1.274,0.518],[0.53,1.319],[0,0],[0,0]],"v":[[2.635,-3.725],[-2.678,-1.567],[-4.026,1.757],[-0.759,3.208],[4.555,1.049]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[99.08,238.777],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 153","np":4,"cix":2,"ix":153,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.236,-5.234],[5.657,0.79],[-5.282,5.234],[-5.657,-1.622]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[95.152,229.563],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 154","np":4,"cix":2,"ix":154,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[6.68,1.206],[4.259,-4.817],[-6.68,-0.375],[-2.213,4.818]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[101.755,248.118],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 155","np":4,"cix":2,"ix":155,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.868,-8.695],[8.072,4.252],[-2.867,8.695],[-8.072,-4.252]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.184000007779,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[97.942,239.048],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 156","np":4,"cix":2,"ix":156,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.346,-0.86],[-0.345,-0.86],[0,0],[-0.345,-0.861],[-0.346,-0.861],[0,0],[0.562,1.399],[0,0],[0.562,1.398],[0,0]],"o":[[0.346,0.86],[0.346,0.861],[0,0],[0.346,0.86],[0.346,0.86],[0,0],[-0.562,-1.398],[0,0],[-0.562,-1.399],[0,0]],"v":[[-6.277,-13.946],[-6.165,-6.234],[-3.239,1.042],[-0.315,8.32],[4.934,13.947],[5.972,16.527],[6.753,13.207],[1.147,-0.739],[-4.458,-14.685],[-7.315,-16.527]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.322000002394,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[94.074,240.891],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 157","np":4,"cix":2,"ix":157,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.475,-1.184],[-1.143,0.464],[0,0]],"o":[[0,0],[-1.143,0.464],[0.476,1.183],[0,0],[0,0]],"v":[[2.365,-3.342],[-2.403,-1.406],[-3.612,1.577],[-0.681,2.878],[4.087,0.941]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.263,242.744],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 158","np":4,"cix":2,"ix":158,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.903,-4.696],[5.076,0.709],[-4.74,4.696],[-5.076,-1.456]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[85.74,234.477],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 159","np":4,"cix":2,"ix":159,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.994,1.081],[3.822,-4.323],[-5.993,-0.338],[-1.986,4.322]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[91.663,251.126],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 160","np":4,"cix":2,"ix":160,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.573,-7.801],[7.242,3.816],[-2.573,7.802],[-7.242,-3.815]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.184000007779,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[88.242,242.987],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 161","np":4,"cix":2,"ix":161,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.311,-0.772],[-0.31,-0.772],[0,0],[-0.31,-0.773],[-0.31,-0.772],[0,0],[0.504,1.255],[0,0],[0.504,1.255],[0,0]],"o":[[0.31,0.771],[0.31,0.772],[0,0],[0.31,0.772],[0.31,0.772],[0,0],[-0.504,-1.255],[0,0],[-0.504,-1.255],[0,0]],"v":[[-5.632,-12.514],[-5.531,-5.595],[-2.907,0.934],[-0.282,7.465],[4.427,12.512],[5.358,14.829],[6.059,11.849],[1.03,-0.663],[-4,-13.177],[-6.563,-14.83]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.322000002394,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[84.772,244.642],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 162","np":4,"cix":2,"ix":162,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.414,-1.031],[-0.996,0.405],[0,0]],"o":[[0,0],[-0.996,0.405],[0.415,1.031],[0,0],[0,0]],"v":[[2.062,-2.914],[-2.094,-1.226],[-3.148,1.374],[-0.593,2.508],[3.562,0.82]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[80.445,246.303],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 163","np":4,"cix":2,"ix":163,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.531,-4.093],[4.425,0.618],[-4.131,4.093],[-4.425,-1.269]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[77.374,239.096],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 164","np":4,"cix":2,"ix":164,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.225,0.943],[3.331,-3.768],[-5.225,-0.293],[-1.73,3.768]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[82.537,253.609],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 165","np":4,"cix":2,"ix":165,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.243,-6.801],[6.313,3.326],[-2.243,6.801],[-6.313,-3.326]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.184000007779,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[79.555,246.515],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 166","np":4,"cix":2,"ix":166,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.271,-0.673],[-0.27,-0.673],[0,0],[-0.27,-0.673],[-0.27,-0.672],[0,0],[0.439,1.094],[0,0],[0.44,1.094],[0,0]],"o":[[0.271,0.673],[0.271,0.673],[0,0],[0.271,0.673],[0,0],[0,0],[-0.44,-1.093],[0,0],[-0.439,-1.094],[0,0]],"v":[[-4.909,-10.907],[-4.822,-4.876],[-2.534,0.817],[-0.246,6.508],[3.859,10.908],[4.671,12.927],[5.282,10.33],[0.898,-0.577],[-3.487,-11.485],[-5.721,-12.927]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.322000002394,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[76.531,247.956],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 167","np":4,"cix":2,"ix":167,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.364,-0.905],[-0.874,0.355],[0,0]],"o":[[0,0],[-0.874,0.355],[0.363,0.905],[0,0],[0,0]],"v":[[1.809,-2.556],[-1.837,-1.075],[-2.762,1.206],[-0.52,2.201],[3.126,0.72]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[72.684,249.436],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 168","np":4,"cix":2,"ix":168,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.22,-3.591],[3.882,0.543],[-3.625,3.591],[-3.882,-1.112]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[69.99,243.114],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 169","np":4,"cix":2,"ix":169,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.584,0.827],[2.922,-3.307],[-4.584,-0.258],[-1.519,3.306]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[74.52,255.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 170","np":4,"cix":2,"ix":170,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.968,-5.967],[5.539,2.917],[-1.969,5.967],[-5.538,-2.919]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.184000007779,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.904,249.623],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 171","np":4,"cix":2,"ix":171,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.237,-0.59],[-0.237,-0.591],[0,0],[-0.237,-0.591],[-0.237,-0.591],[0,0],[0.386,0.96],[0,0],[0.386,0.96],[0,0]],"o":[[0.237,0.591],[0.237,0.591],[0,0],[0.238,0.591],[0.237,0.59],[0,0],[-0.386,-0.959],[0,0],[-0.386,-0.959],[0,0]],"v":[[-4.307,-9.57],[-4.23,-4.278],[-2.223,0.716],[-0.217,5.709],[3.385,9.57],[4.098,11.341],[4.633,9.063],[0.788,-0.507],[-3.06,-10.077],[-5.02,-11.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.322000002394,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[69.25,250.888],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 172","np":4,"cix":2,"ix":172,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.331,-0.823],[-0.795,0.323],[0,0]],"o":[[0,0],[-0.796,0.323],[0.33,0.823],[0,0],[0,0]],"v":[[1.645,-2.325],[-1.671,-0.978],[-2.512,1.097],[-0.474,2.002],[2.843,0.655]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65.806,252.218],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 173","np":4,"cix":2,"ix":173,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.02,-3.266],[3.531,0.495],[-3.297,3.267],[-3.531,-1.011]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[63.354,246.466],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 174","np":4,"cix":2,"ix":174,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.17,0.753],[2.658,-3.007],[-4.17,-0.234],[-1.381,3.008]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[67.476,258.049],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 175","np":4,"cix":2,"ix":175,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.79,-5.427],[5.038,2.654],[-1.79,5.427],[-5.038,-2.655]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.184000007779,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65.096,252.387],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 176","np":4,"cix":2,"ix":176,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.216,-0.537],[0,0],[-0.216,-0.537],[-0.216,-0.537],[0,0],[0.351,0.872],[0,0],[0.35,0.873],[0,0]],"o":[[0.216,0.537],[0.216,0.538],[0,0],[0.216,0.538],[0,0],[0,0],[-0.351,-0.873],[0,0],[-0.351,-0.872],[0,0]],"v":[[-3.919,-8.705],[-3.848,-3.892],[-2.023,0.65],[-0.197,5.193],[3.079,8.705],[3.728,10.316],[4.215,8.244],[0.715,-0.462],[-2.783,-9.167],[-4.566,-10.316]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.322000002394,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[62.682,253.538],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 177","np":4,"cix":2,"ix":177,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.276,-0.686],[-0.663,0.27],[0,0]],"o":[[0,0],[-0.663,0.27],[0.276,0.687],[0,0],[0,0]],"v":[[1.373,-1.939],[-1.394,-0.816],[-2.096,0.915],[-0.395,1.669],[2.372,0.547]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.426,254.789],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 178","np":4,"cix":2,"ix":178,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.685,-2.725],[2.946,0.412],[-2.751,2.725],[-2.946,-0.844]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[57.381,249.991],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 179","np":4,"cix":2,"ix":179,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.479,0.628],[2.217,-2.509],[-3.479,-0.195],[-1.152,2.509]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.216000007181,0.216000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[60.819,259.654],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 180","np":4,"cix":2,"ix":180,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.493,-4.528],[4.203,2.214],[-1.493,4.528],[-4.203,-2.215]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.184000007779,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[58.834,254.931],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 181","np":4,"cix":2,"ix":181,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.18,-0.448],[-0.181,-0.449],[0,0],[-0.18,-0.449],[-0.179,-0.448],[0,0],[0.293,0.728],[0,0],[0.293,0.729],[0,0]],"o":[[0.18,0.448],[0.179,0.448],[0,0],[0.181,0.448],[0.181,0.449],[0,0],[-0.293,-0.729],[0,0],[-0.293,-0.727],[0,0]],"v":[[-3.269,-7.262],[-3.21,-3.246],[-1.687,0.544],[-0.165,4.333],[2.568,7.262],[3.109,8.606],[3.516,6.878],[0.598,-0.384],[-2.322,-7.647],[-3.81,-8.606]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.322000002394,0.560999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[56.82,255.89],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 182","np":4,"cix":2,"ix":182,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.475,-1.179],[-1.141,0.463],[0,0]],"o":[[0,0],[-1.14,0.463],[0.474,1.181],[0,0],[0,0]],"v":[[1.027,-2.793],[-1.063,-1.943],[-2.269,1.031],[0.655,2.329],[2.744,1.48]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.811999990426,0.435000011968,0.187999994615,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.389,256.789],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 183","np":4,"cix":2,"ix":183,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.2,-1.533],[-1.482,1.172],[0,0]],"o":[[0,0],[-1.482,1.172],[1.201,1.533],[0,0],[0,0]],"v":[[0.871,-5.095],[-3.51,-1.628],[-4.018,3.27],[0.839,3.923],[5.219,0.456]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[109.612,267.586],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 184","np":4,"cix":2,"ix":184,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.2,-1.533],[-1.482,1.172],[0,0]],"o":[[0,0],[-1.481,1.172],[1.201,1.533],[0,0],[0,0]],"v":[[0.87,-5.095],[-3.51,-1.628],[-4.019,3.27],[0.838,3.923],[5.218,0.456]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[134.953,299.937],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 185","np":4,"cix":2,"ix":185,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.779,-0.994],[-0.961,0.761],[0,0]],"o":[[0,0],[-0.96,0.761],[0.779,0.994],[0,0],[0,0]],"v":[[1.059,-3.696],[-2.771,-0.666],[-3.1,2.511],[0.049,2.934],[3.879,-0.095]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[119.347,286.117],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 186","np":4,"cix":2,"ix":186,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.197,-1.528],[-1.477,1.169],[0,0]],"o":[[0,0],[-1.477,1.169],[1.197,1.529],[0,0],[0,0]],"v":[[1.628,-5.681],[-4.258,-1.023],[-4.765,3.861],[0.077,4.512],[5.963,-0.147]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.758,271.513],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 187","np":4,"cix":2,"ix":187,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.95,-2.49],[-2.406,1.905],[0,0]],"o":[[0,0],[-2.406,1.904],[1.95,2.489],[0,0],[0,0]],"v":[[2.968,-9.505],[-7.254,-1.415],[-8.08,6.542],[-0.192,7.601],[10.03,-0.488]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[135.055,273.597],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 188","np":4,"cix":2,"ix":188,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.95,-2.489],[-2.407,1.904],[0,0]],"o":[[0,0],[-2.406,1.904],[1.951,2.49],[0,0],[0,0]],"v":[[7.253,-12.897],[-11.539,1.976],[-12.365,9.932],[-4.476,10.993],[14.315,-3.88]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.870999983245,0.380000005984,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[120.956,284.755],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 189","np":4,"cix":2,"ix":189,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-3.993,-5.098],[-4.927,3.9],[0,0]],"o":[[0,0],[-4.927,3.9],[3.994,5.099],[0,0],[0,0]],"v":[[6.078,-19.465],[-14.855,-2.898],[-16.546,13.395],[-0.392,15.565],[20.54,-1.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.842999985639,0.560999971278,0.411999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[128.245,278.833],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 190","np":4,"cix":2,"ix":190,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.867,-24.393],[19.632,22.206],[16.868,24.393],[-19.632,-22.204]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.128999986836,0.105999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.349,280.632],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 191","np":4,"cix":2,"ix":191,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.712,-25.623],[20.858,22.341],[16.711,25.623],[-20.858,-22.342]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[139.481,270.241],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 192","np":4,"cix":2,"ix":192,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-3.994,-5.099],[-4.927,3.9],[0,0]],"o":[[0,0],[-4.928,3.9],[3.994,5.1],[0,0],[0,0]],"v":[[-2.232,-12.889],[-6.546,-9.475],[-8.237,6.818],[7.917,8.989],[12.23,5.576]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[112.771,291.08],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 193","np":4,"cix":2,"ix":193,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.153,-33.883],[31.792,12.008],[4.153,33.883],[-31.792,-12.008]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[124.555,282.053],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 194","np":4,"cix":2,"ix":194,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-5.499,-7.02],[-6.784,5.369],[0,0]],"o":[[0,0],[-6.784,5.369],[5.498,7.019],[0,0],[0,0]],"v":[[-2.41,-18.27],[-9.674,-12.52],[-12.002,9.913],[10.237,12.901],[17.501,7.152]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.842999985639,0.560999971278,0.411999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[112.506,291.176],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 195","np":4,"cix":2,"ix":195,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-16.003,-24.654],[19.942,21.237],[17.235,24.654],[-19.942,-22.81]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.842999985639,0.560999971278,0.411999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[108.766,294.699],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 196","np":4,"cix":2,"ix":196,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.29,0.229],[-0.228,-0.29],[0,0],[0.289,-0.228],[0.228,0.29],[0,0]],"o":[[0.289,-0.229],[0,0],[0.228,0.291],[-0.289,0.23],[0,0],[-0.227,-0.291]],"v":[[-4.372,-5.582],[-3.436,-5.471],[4.483,4.64],[4.372,5.581],[3.436,5.47],[-4.484,-4.641]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[79.584,291.558],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 197","np":4,"cix":2,"ix":197,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.853,-0.532],[-0.316,-0.958],[0.852,0.533],[0.314,0.958]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[70.542,298.713],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 198","np":4,"cix":2,"ix":198,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.036,-1.258],[1.458,-0.717],[-1.036,1.258],[-1.459,0.717]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[70.811,298.501],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 199","np":4,"cix":2,"ix":199,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.002,-1.714],[1.657,0.404],[0.002,1.714],[-1.657,-0.404]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.842999985639,0.560999971278,0.411999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.47,296.396],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 200","np":4,"cix":2,"ix":200,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.677,-1.469],[1.262,1.007],[0.677,1.469],[-1.262,-1.006]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[72.351,297.282],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 201","np":4,"cix":2,"ix":201,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.475,-1.816],[1.646,0.891],[0.475,1.816],[-1.646,-0.889]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[74.883,295.278],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 202","np":4,"cix":2,"ix":202,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.871,-1.111],[-2.291,1.813],[0,0]],"o":[[0,0],[-2.291,1.812],[0.871,1.112],[0,0],[0,0]],"v":[[-0.055,-3.003],[-0.236,-2.86],[-2.807,2.434],[2.918,1.164],[3.098,1.022]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.451000019148,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.098,292.52],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 203","np":4,"cix":2,"ix":203,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.22,-2.835],[-2.291,1.813],[0,0]],"o":[[0,0],[-2.291,1.812],[2.221,2.835],[0,0],[0,0]],"v":[[-2.758,-6.111],[-2.938,-5.968],[-3.065,2.448],[5.105,4.298],[5.285,4.156]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.842999985639,0.560999971278,0.411999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.356,292.507],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 204","np":4,"cix":2,"ix":204,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.004,-1.282],[-1.239,0.981],[0,0]],"o":[[0,0],[-1.239,0.981],[1.004,1.281],[0,0],[0,0]],"v":[[0.728,-4.26],[-2.934,-1.362],[-3.359,2.734],[0.701,3.279],[4.363,0.381]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[92.219,281.482],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 205","np":4,"cix":2,"ix":205,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.68,-5.34],[3.736,6.681],[5.68,4.3],[-2.921,-6.681]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.842999985639,0.560999971278,0.411999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[84.168,288.028],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 206","np":4,"cix":2,"ix":206,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.286,-7.29],[6.749,2.966],[1.285,7.29],[-6.749,-2.967]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[82.352,289.368],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 207","np":4,"cix":2,"ix":207,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.611,-9.378],[9.212,1.603],[-0.611,9.378],[-9.212,-1.604]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[90.459,282.95],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 208","np":4,"cix":2,"ix":208,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.289,0.229],[-0.229,-0.291],[0,0],[0.289,-0.229],[0.228,0.291],[0,0]],"o":[[0.29,-0.229],[0,0],[0.227,0.291],[-0.29,0.229],[0,0],[-0.228,-0.291]],"v":[[-4.372,-5.582],[-3.435,-5.47],[4.484,4.641],[4.373,5.582],[3.436,5.47],[-4.483,-4.641]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.812,323.766],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 209","np":4,"cix":2,"ix":209,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.852,-0.533],[-0.316,-0.958],[0.853,0.533],[0.316,0.958]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[95.77,330.922],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 210","np":4,"cix":2,"ix":210,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.036,-1.257],[1.459,-0.717],[-1.035,1.257],[-1.459,0.718]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[96.039,330.71],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 211","np":4,"cix":2,"ix":211,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.002,-1.714],[1.657,0.405],[0.002,1.714],[-1.657,-0.404]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.842999985639,0.560999971278,0.411999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[98.699,328.604],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 212","np":4,"cix":2,"ix":212,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.677,-1.469],[1.262,1.006],[0.677,1.469],[-1.262,-1.006]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[97.579,329.491],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 213","np":4,"cix":2,"ix":213,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.475,-1.816],[1.645,0.889],[0.474,1.816],[-1.645,-0.89]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[100.112,327.487],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 214","np":4,"cix":2,"ix":214,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.871,-1.111],[-2.291,1.812],[0,0]],"o":[[0,0],[-2.291,1.812],[0.871,1.113],[0,0],[0,0]],"v":[[-0.056,-3.003],[-0.236,-2.86],[-2.807,2.434],[2.917,1.165],[3.098,1.022]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.451000019148,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[103.327,324.728],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 215","np":4,"cix":2,"ix":215,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.22,-2.835],[-2.291,1.813],[0,0]],"o":[[0,0],[-2.29,1.813],[2.221,2.835],[0,0],[0,0]],"v":[[-2.758,-6.111],[-2.938,-5.969],[-3.065,2.447],[5.105,4.298],[5.285,4.156]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.842999985639,0.560999971278,0.411999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[103.584,324.716],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 216","np":4,"cix":2,"ix":216,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.004,-1.281],[-1.239,0.981],[0,0]],"o":[[0,0],[-1.238,0.981],[1.004,1.281],[0,0],[0,0]],"v":[[0.727,-4.26],[-2.935,-1.363],[-3.36,2.733],[0.702,3.279],[4.363,0.381]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.588000009574,0.224000010771,0.184000007779,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[117.448,313.691],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 217","np":4,"cix":2,"ix":217,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.68,-5.34],[3.736,6.681],[5.68,4.3],[-2.921,-6.681]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.842999985639,0.560999971278,0.411999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[109.397,320.236],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 218","np":4,"cix":2,"ix":218,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.285,-7.29],[6.749,2.966],[1.286,7.29],[-6.749,-2.966]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[107.58,321.576],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 219","np":4,"cix":2,"ix":219,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.611,-9.377],[9.212,1.603],[-0.611,9.377],[-9.212,-1.604]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.298000021542,0.19199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[115.688,315.159],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 220","np":4,"cix":2,"ix":220,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8.038,-2.556],[-1.698,21.509],[8.038,-21.509]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.783999992819,0.722000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[64.603,173.777],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 221","np":4,"cix":2,"ix":221,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-12.322,-3.919],[-2.603,32.971],[12.323,-32.971]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65.901,174.458],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 222","np":4,"cix":2,"ix":222,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.863,-1.797],[1.809,2.861],[-2.863,1.796],[-1.808,-2.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[110.337,159.752],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 223","np":4,"cix":2,"ix":223,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.923,-2.01],[0.869,2.648],[-1.923,2.011],[-0.869,-2.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[79.989,152.831],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 224","np":4,"cix":2,"ix":224,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.31,1.459],[14.492,5.074],[-15.31,-2.014],[-14.617,-5.074]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.783999992819,0.722000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[95.401,156.478],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 225","np":4,"cix":2,"ix":225,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.863,-1.797],[1.809,2.861],[-2.863,1.796],[-1.809,-2.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[108.294,168.779],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 226","np":4,"cix":2,"ix":226,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.924,-2.011],[0.868,2.647],[-1.924,2.01],[-0.869,-2.648]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[77.946,161.858],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 227","np":4,"cix":2,"ix":227,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.31,1.459],[14.492,5.074],[-15.31,-2.014],[-14.617,-5.074]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.783999992819,0.722000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[93.358,165.504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 228","np":4,"cix":2,"ix":228,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.863,-1.797],[1.809,2.861],[-2.863,1.796],[-1.809,-2.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[106.251,177.805],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 229","np":4,"cix":2,"ix":229,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.923,-2.01],[0.869,2.648],[-1.923,2.011],[-0.869,-2.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[75.903,170.884],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 230","np":4,"cix":2,"ix":230,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.31,1.459],[14.492,5.074],[-15.31,-2.014],[-14.617,-5.074]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.783999992819,0.722000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[91.316,174.531],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 231","np":4,"cix":2,"ix":231,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.863,-1.797],[1.809,2.861],[-2.863,1.796],[-1.809,-2.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.208,186.832],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 232","np":4,"cix":2,"ix":232,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.924,-2.01],[0.87,2.648],[-1.924,2.011],[-0.869,-2.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.86,179.911],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 233","np":4,"cix":2,"ix":233,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.31,1.459],[14.492,5.074],[-15.31,-2.014],[-14.617,-5.074]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.783999992819,0.722000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.272,183.557],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 234","np":4,"cix":2,"ix":234,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.863,-1.797],[1.809,2.861],[-2.863,1.796],[-1.808,-2.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[102.165,195.858],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 235","np":4,"cix":2,"ix":235,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.924,-2.011],[0.87,2.647],[-1.924,2.01],[-0.869,-2.648]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.817,188.938],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 236","np":4,"cix":2,"ix":236,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.31,1.459],[14.492,5.074],[-15.31,-2.014],[-14.617,-5.074]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.783999992819,0.722000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.23,192.584],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 237","np":4,"cix":2,"ix":237,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.863,-1.797],[1.808,2.861],[-2.863,1.796],[-1.808,-2.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[100.122,204.885],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 238","np":4,"cix":2,"ix":238,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.924,-2.01],[0.87,2.648],[-1.924,2.011],[-0.869,-2.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.569000004787,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[69.774,197.964],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 239","np":4,"cix":2,"ix":239,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.31,1.46],[14.492,5.074],[-15.31,-2.013],[-14.617,-5.074]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.783999992819,0.722000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[85.187,201.61],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 240","np":4,"cix":2,"ix":240,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[9.137,-29.077],[-4.276,30.186],[-9.138,29.077],[4.275,-30.186]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.783999992819,0.722000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[114.023,184.324],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 241","np":4,"cix":2,"ix":241,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.367,-26.217],[-4.642,26.84],[-7.367,26.219],[4.641,-26.839]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.62400004069,0.658999992819,0.603999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[72.123,174.768],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 242","np":4,"cix":2,"ix":242,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[9.033,-27.251],[-3.583,28.494],[-9.033,27.25],[3.583,-28.494]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.62400004069,0.658999992819,0.603999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[110.29,183.473],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 243","np":4,"cix":2,"ix":243,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.529,-0.369],[0.367,-0.531],[0.529,0.369],[-0.367,0.532]],"o":[[0.529,0.369],[-0.367,0.532],[-0.529,-0.369],[0.367,-0.531]],"v":[[0.665,-0.963],[0.958,0.668],[-0.665,0.963],[-0.958,-0.669]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.689999988032,0.113999998803,0.023999999551,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.582,110.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 244","np":4,"cix":2,"ix":244,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.573,-5.379],[16.13,3.332],[-15.573,5.379],[-16.13,-3.332]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.889999988032,0.654999976065,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[111.641,103.762],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 245","np":4,"cix":2,"ix":245,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.573,-5.379],[16.13,3.332],[-15.573,5.379],[-16.13,-3.332]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.889999988032,0.654999976065,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[67.523,116.24],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 246","np":4,"cix":2,"ix":246,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.015,-0.243],[0.242,-0.015],[0,0],[0.015,0.242],[-0.241,0.015]],"o":[[0.242,-0.016],[0.016,0.242],[0,0],[-0.242,0.016],[-0.015,-0.243],[0,0]],"v":[[38.929,-2.955],[39.394,-2.542],[38.985,-2.075],[-38.929,2.955],[-39.395,2.544],[-38.986,2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.298000021542,0.078000005086,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.582,110.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 247","np":4,"cix":2,"ix":247,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.351,15.654],[-3.315,16.214],[-5.351,-15.654],[3.315,-16.214]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.889999988032,0.654999976065,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[95.788,132.175],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 248","np":4,"cix":2,"ix":248,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.351,15.654],[-3.314,16.214],[-5.351,-15.654],[3.314,-16.214]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.889999988032,0.654999976065,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[83.376,87.827],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 249","np":4,"cix":2,"ix":249,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.242,-0.015],[0.016,0.242],[0,0],[-0.241,0.016],[-0.016,-0.243]],"o":[[0.016,0.243],[-0.242,0.016],[0,0],[-0.016,-0.243],[0.241,-0.016],[0,0]],"v":[[2.939,39.131],[2.53,39.599],[2.064,39.188],[-2.939,-39.132],[-2.53,-39.6],[-2.064,-39.188]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.54900004069,0.298000021542,0.078000005086,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.582,110.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 250","np":4,"cix":2,"ix":250,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.912,-0.636],[0.633,-0.916],[0.912,0.636],[-0.633,0.916]],"o":[[0.911,0.636],[-0.633,0.916],[-0.912,-0.636],[0.633,-0.916]],"v":[[1.146,-1.659],[1.65,1.152],[-1.146,1.659],[-1.651,-1.151]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.582,110.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 251","np":4,"cix":2,"ix":251,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.29,-0.251],[0.566,2.244],[-2.29,0.251],[-0.567,-2.244]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[115.794,125.908],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 252","np":4,"cix":2,"ix":252,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.29,-0.251],[0.566,2.244],[-2.29,0.251],[-0.567,-2.244]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[113.576,129.12],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 253","np":4,"cix":2,"ix":253,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.29,-0.252],[0.567,2.244],[-2.29,0.251],[-0.566,-2.244]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[112.221,123.416],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 254","np":4,"cix":2,"ix":254,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.29,-0.251],[0.566,2.244],[-2.29,0.251],[-0.566,-2.244]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[110.003,126.628],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 255","np":4,"cix":2,"ix":255,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[6.314,-0.868],[1.4,6.25],[-6.314,0.868],[-1.4,-6.25]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.630999995213,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[112.899,126.268],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 256","np":4,"cix":2,"ix":256,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.29,-0.251],[0.566,2.244],[-2.29,0.251],[-0.566,-2.244]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.289,117.882],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 257","np":4,"cix":2,"ix":257,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.29,-0.251],[0.566,2.244],[-2.29,0.251],[-0.567,-2.244]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[102.071,121.094],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 258","np":4,"cix":2,"ix":258,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.29,-0.251],[0.566,2.244],[-2.29,0.251],[-0.567,-2.244]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[100.716,115.389],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 259","np":4,"cix":2,"ix":259,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.29,-0.251],[0.566,2.244],[-2.29,0.251],[-0.566,-2.244]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[98.499,118.601],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 260","np":4,"cix":2,"ix":260,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[6.314,-0.868],[1.399,6.25],[-6.314,0.868],[-1.4,-6.25]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.630999995213,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[101.394,118.242],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 261","np":4,"cix":2,"ix":261,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.396,-0.276],[0.275,-0.398],[0,0],[0.396,0.277],[-0.275,0.398],[0,0]],"o":[[0.396,0.276],[0,0],[-0.275,0.398],[-0.396,-0.276],[0,0],[0.275,-0.398]],"v":[[8.087,-11.714],[8.307,-10.493],[-6.873,11.493],[-8.088,11.713],[-8.307,10.492],[6.873,-11.494]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.638999968884,0.344999994016,0.090000002992,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[93.23,112.546],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 262","np":4,"cix":2,"ix":262,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.078,-3.009],[-4.613,-3.35]],"o":[[-4.736,-3.172],[-2.078,3.01],[0,0]],"v":[[7.165,-3.878],[-5.087,-4.207],[-0.495,7.216]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.830999995213,0.352999997606,0.102000000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.998,110.948],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 263","np":4,"cix":2,"ix":263,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.037,-5.847],[-5.656,-4.202]],"o":[[-5.895,-3.856],[-4.037,5.847],[0,0]],"v":[[10.942,-8.849],[-6.904,-5.331],[-3.941,12.705]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.870999983245,0.470999983245,0.125,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.832,110.689],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 264","np":4,"cix":2,"ix":264,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[19.542,13.634],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[19.542,13.633],[0,0],[0,0],[0,0]],"v":[[-14.505,-19.931],[-18.518,-14.118],[-22.531,-8.306],[8.119,19.931],[15.325,9.493],[22.531,-0.944]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.122000002394,0.027000000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[111.244,126.312],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 265","np":4,"cix":2,"ix":265,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[19.542,13.634],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[19.542,13.634],[0,0],[0,0],[0,0]],"v":[[-12.749,-25.833],[-19.678,-15.798],[-26.607,-5.764],[1.725,25.833],[14.166,7.814],[26.607,-10.206]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[112.403,127.992],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 266","np":4,"cix":2,"ix":266,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.214,-0.15],[0.149,-0.216],[0,0],[0.214,0.149],[-0.149,0.216],[0,0]],"o":[[0.214,0.149],[0,0],[-0.149,0.215],[-0.215,-0.15],[0,0],[0.148,-0.215]],"v":[[3.087,-4.471],[3.206,-3.809],[-2.43,4.353],[-3.087,4.471],[-3.206,3.811],[2.43,-4.351]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.638999968884,0.344999994016,0.090000002992,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[136.061,142.427],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 267","np":4,"cix":2,"ix":267,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[6.169,0.076],[2.228,5.783],[-6.17,-0.076],[-2.23,-5.783]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.579999976065,0.093999997307,0.019999999626,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[132.25,139.769],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 268","np":4,"cix":2,"ix":268,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-5.569,8.065],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[5.569,-8.065],[0,0]],"v":[[4.473,-18.39],[-4.437,-3.484],[-15.213,10.12],[-6.546,18.39],[6.147,3.9],[15.212,-13.121]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.870999983245,0.470999983245,0.125,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[129.891,138.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 269","np":4,"cix":2,"ix":269,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.164,-1.685],[-1.629,-1.211]],"o":[[-1.699,-1.111],[-1.163,1.686],[0,0]],"v":[[3.154,-2.551],[-1.991,-1.537],[-1.137,3.662]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.630999995213,0.141000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[82.974,105.539],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 270","np":4,"cix":2,"ix":270,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.058,-0.129],[0.128,0.058],[0,0],[-0.057,0.129],[-0.128,-0.058],[0,0]],"o":[[-0.058,0.129],[0,0],[-0.128,-0.057],[0.058,-0.13],[0,0],[0.128,0.058]],"v":[[7.781,3.51],[7.444,3.64],[-7.654,-3.173],[-7.781,-3.511],[-7.444,-3.64],[7.652,3.171]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[288.09,18.685],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 271","np":4,"cix":2,"ix":271,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.115,0.908],[-0.598,0.69],[0.115,-0.908],[0.599,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[294.732,22.661],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 272","np":4,"cix":2,"ix":272,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.116,0.908],[-0.598,0.69],[0.114,-0.908],[0.598,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[293.331,22.028],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 273","np":4,"cix":2,"ix":273,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.116,0.908],[-0.598,0.69],[0.115,-0.908],[0.598,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[291.93,21.396],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 274","np":4,"cix":2,"ix":274,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.115,0.908],[-0.598,0.69],[0.115,-0.908],[0.598,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[290.528,20.764],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 275","np":4,"cix":2,"ix":275,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.115,0.908],[-0.598,0.69],[0.115,-0.908],[0.598,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[289.127,20.132],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 276","np":4,"cix":2,"ix":276,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.115,0.908],[-0.598,0.69],[0.115,-0.908],[0.599,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[287.726,19.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 277","np":4,"cix":2,"ix":277,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.116,0.908],[-0.599,0.69],[0.114,-0.908],[0.598,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[286.325,18.867],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 278","np":4,"cix":2,"ix":278,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.116,0.908],[-0.599,0.69],[0.114,-0.908],[0.598,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[284.923,18.235],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 279","np":4,"cix":2,"ix":279,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.116,0.908],[-0.598,0.69],[0.114,-0.908],[0.598,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[283.522,17.603],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 280","np":4,"cix":2,"ix":280,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.116,0.908],[-0.598,0.69],[0.115,-0.908],[0.598,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[282.121,16.97],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 281","np":4,"cix":2,"ix":281,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.115,0.908],[-0.598,0.69],[0.115,-0.908],[0.598,-0.69]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280.719,16.338],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 282","np":4,"cix":2,"ix":282,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.275,4.328],[-8.716,-3.339],[-8.275,-4.328],[8.716,3.339]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[283.362,29.271],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 283","np":4,"cix":2,"ix":283,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.586,0.265],[0.262,-0.589],[0,0]],"o":[[0,0],[0.264,-0.59],[-0.587,-0.264],[0,0],[0,0]],"v":[[-0.116,3.245],[1.974,-1.435],[1.39,-2.981],[-0.148,-2.393],[-2.238,2.287]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[290.316,29.062],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 284","np":4,"cix":2,"ix":284,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.586,0.264],[0.262,-0.59],[0,0]],"o":[[0,0],[0.264,-0.589],[-0.586,-0.265],[0,0],[0,0]],"v":[[-0.115,3.245],[1.975,-1.436],[1.389,-2.98],[-0.147,-2.392],[-2.238,2.288]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[286.477,27.329],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 285","np":4,"cix":2,"ix":285,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.586,0.265],[0.263,-0.589],[0,0]],"o":[[0,0],[0.263,-0.59],[-0.586,-0.264],[0,0],[0,0]],"v":[[-0.115,3.245],[1.975,-1.435],[1.39,-2.981],[-0.148,-2.393],[-2.238,2.287]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[282.637,25.597],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 286","np":4,"cix":2,"ix":286,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.586,0.265],[0.263,-0.589],[0,0]],"o":[[0,0],[0.263,-0.59],[-0.586,-0.264],[0,0],[0,0]],"v":[[-0.116,3.245],[1.975,-1.435],[1.39,-2.981],[-0.148,-2.393],[-2.238,2.287]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[278.799,23.865],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 287","np":4,"cix":2,"ix":287,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.154,5.673],[-11.63,-4.608],[-11.155,-5.673],[11.63,4.608]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[279.016,39.004],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 288","np":4,"cix":2,"ix":288,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.286],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[288.655,39.749],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 289","np":4,"cix":2,"ix":289,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.286],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[284.521,37.883],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 290","np":4,"cix":2,"ix":290,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.286],[0.284,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280.386,36.018],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 291","np":4,"cix":2,"ix":291,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.158,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[276.251,34.152],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 292","np":4,"cix":2,"ix":292,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.125,3.495],[2.126,-1.546],[1.496,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[272.117,32.286],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 293","np":4,"cix":2,"ix":293,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.154,5.673],[-11.63,-4.608],[-11.155,-5.673],[11.63,4.608]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[275.12,47.726],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 294","np":4,"cix":2,"ix":294,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.286],[0.284,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[284.76,48.472],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 295","np":4,"cix":2,"ix":295,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.286],[0.284,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280.625,46.606],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 296","np":4,"cix":2,"ix":296,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.284,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.125,3.495],[2.126,-1.546],[1.496,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[276.491,44.74],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 297","np":4,"cix":2,"ix":297,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.284,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.125,3.495],[2.126,-1.546],[1.496,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[272.356,42.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 298","np":4,"cix":2,"ix":298,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[268.222,41.009],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 299","np":4,"cix":2,"ix":299,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.154,5.673],[-11.631,-4.608],[-11.156,-5.673],[11.63,4.608]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[271.225,56.449],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 300","np":4,"cix":2,"ix":300,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.284,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.125,3.495],[2.126,-1.546],[1.496,-3.21],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280.865,57.194],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 301","np":4,"cix":2,"ix":301,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.284,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.126,-1.546],[1.496,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[276.73,55.329],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 302","np":4,"cix":2,"ix":302,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[272.596,53.463],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 303","np":4,"cix":2,"ix":303,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[268.461,51.597],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 304","np":4,"cix":2,"ix":304,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[264.326,49.732],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 305","np":4,"cix":2,"ix":305,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.155,5.673],[-11.63,-4.608],[-11.156,-5.673],[11.63,4.608]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[267.33,65.172],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 306","np":4,"cix":2,"ix":306,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[276.97,65.917],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 307","np":4,"cix":2,"ix":307,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[272.835,64.051],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 308","np":4,"cix":2,"ix":308,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[268.7,62.186],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 309","np":4,"cix":2,"ix":309,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[264.565,60.32],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 310","np":4,"cix":2,"ix":310,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.286],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[260.431,58.455],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 311","np":4,"cix":2,"ix":311,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.154,5.673],[-11.63,-4.608],[-11.155,-5.673],[11.63,4.608]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[263.435,73.895],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 312","np":4,"cix":2,"ix":312,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[273.074,74.64],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 313","np":4,"cix":2,"ix":313,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[268.939,72.774],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 314","np":4,"cix":2,"ix":314,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[264.805,70.908],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 315","np":4,"cix":2,"ix":315,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.286],[0.284,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[260.67,69.043],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 316","np":4,"cix":2,"ix":316,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.286],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.126,-1.546],[1.496,-3.211],[-0.159,-2.577],[-2.409,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[256.536,67.177],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 317","np":4,"cix":2,"ix":317,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.154,5.673],[-11.63,-4.608],[-11.155,-5.673],[11.63,4.608]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[259.539,82.617],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 318","np":4,"cix":2,"ix":318,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.179,83.362],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 319","np":4,"cix":2,"ix":319,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.284,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[265.044,81.497],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 320","np":4,"cix":2,"ix":320,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.286],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.211],[-0.158,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[260.909,79.631],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 321","np":4,"cix":2,"ix":321,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.284,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.125,3.495],[2.126,-1.546],[1.496,-3.21],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[256.775,77.766],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 322","np":4,"cix":2,"ix":322,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.125,3.495],[2.127,-1.546],[1.496,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[252.641,75.9],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 323","np":4,"cix":2,"ix":323,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.154,5.673],[-11.63,-4.608],[-11.155,-5.673],[11.63,4.608]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.779999976065,0.556999954523,0.39199999641,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[255.644,91.34],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 324","np":4,"cix":2,"ix":324,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.286],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.124,3.495],[2.126,-1.546],[1.496,-3.211],[-0.159,-2.577],[-2.409,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[265.284,92.086],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 325","np":4,"cix":2,"ix":325,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.286],[0.283,-0.635],[0,0]],"o":[[0,0],[0.284,-0.634],[-0.631,-0.284],[0,0],[0,0]],"v":[[-0.125,3.495],[2.126,-1.546],[1.496,-3.211],[-0.159,-2.577],[-2.41,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[261.149,90.22],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 326","np":4,"cix":2,"ix":326,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.632,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.284,-0.634],[-0.631,-0.285],[0,0],[0,0]],"v":[[-0.125,3.495],[2.126,-1.546],[1.496,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[257.015,88.354],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 327","np":4,"cix":2,"ix":327,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[252.88,86.488],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 328","np":4,"cix":2,"ix":328,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.631,0.285],[0.283,-0.635],[0,0]],"o":[[0,0],[0.283,-0.634],[-0.632,-0.285],[0,0],[0,0]],"v":[[-0.124,3.495],[2.127,-1.546],[1.497,-3.21],[-0.159,-2.577],[-2.41,2.464]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.505999995213,0.33300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[248.745,84.623],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 329","np":4,"cix":2,"ix":329,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.677,0.305],[0.305,-0.681],[0,0]],"o":[[0,0],[0.304,-0.681],[-0.677,-0.306],[0,0],[0,0]],"v":[[-0.133,3.75],[2.282,-1.658],[1.606,-3.444],[-0.171,-2.765],[-2.586,2.643]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.689999988032,0.470999983245,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.242,103.539],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 330","np":4,"cix":2,"ix":330,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.678,0.306],[0.304,-0.68],[0,0]],"o":[[0,0],[0.305,-0.681],[-0.677,-0.306],[0,0],[0,0]],"v":[[-0.134,3.75],[2.281,-1.658],[1.605,-3.444],[-0.171,-2.765],[-2.586,2.644]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.689999988032,0.470999983245,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[257.201,101.265],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 331","np":4,"cix":2,"ix":331,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.678,0.306],[0.304,-0.68],[0,0]],"o":[[0,0],[0.304,-0.68],[-0.677,-0.306],[0,0],[0,0]],"v":[[-0.133,3.75],[2.282,-1.658],[1.606,-3.444],[-0.17,-2.765],[-2.585,2.644]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.689999988032,0.470999983245,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[252.16,98.99],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 332","np":4,"cix":2,"ix":332,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.677,0.305],[0.305,-0.681],[0,0]],"o":[[0,0],[0.304,-0.681],[-0.677,-0.306],[0,0],[0,0]],"v":[[-0.133,3.75],[2.282,-1.658],[1.606,-3.444],[-0.171,-2.765],[-2.586,2.643]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.689999988032,0.470999983245,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[247.118,96.715],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 333","np":4,"cix":2,"ix":333,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.677,0.306],[0.305,-0.68],[0,0]],"o":[[0,0],[0.304,-0.681],[-0.677,-0.306],[0,0],[0,0]],"v":[[-0.133,3.75],[2.282,-1.658],[1.606,-3.444],[-0.171,-2.765],[-2.586,2.644]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.689999988032,0.470999983245,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[242.077,94.44],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 334","np":4,"cix":2,"ix":334,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.927,-0.418],[0.156,-0.961],[0,0],[0,0],[-0.926,-0.418],[0.156,-0.962],[0,0],[0,0],[-0.927,-0.418],[-0.031,-0.015],[-0.031,-0.015],[0.156,-0.962],[0,0],[0,0],[-0.927,-0.418],[0.157,-0.962],[0,0],[0,0],[-0.927,-0.418],[0.156,-0.963],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.612,-0.757],[0.927,0.419],[0,0],[0,0],[0.611,-0.757],[0.927,0.418],[0,0],[0,0],[0.611,-0.757],[0.031,0.014],[0.032,0.013],[0.927,0.418],[0,0],[0,0],[0.611,-0.758],[0.926,0.418],[0,0],[0,0],[0.612,-0.756],[0.927,0.418],[0,0],[0,0],[0,0]],"v":[[8.541,2.335],[3.223,-0.064],[0.564,-1.264],[-2.094,-2.463],[-7.411,-4.863],[-12.729,-7.262],[-13.857,-4.734],[-13.222,-4.447],[-10.623,-5.07],[-9.358,-2.705],[-8.54,-2.335],[-7.904,-2.048],[-5.306,-2.67],[-4.041,-0.305],[-3.223,0.064],[-2.587,0.351],[0.012,-0.271],[0.1,-0.222],[0.195,-0.188],[1.459,2.177],[2.094,2.464],[2.913,2.834],[5.512,2.211],[6.775,4.576],[7.411,4.863],[8.23,5.232],[10.829,4.61],[12.093,6.976],[12.729,7.262],[13.857,4.734]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.689999988032,0.470999983245,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[254.841,93.137],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 335","np":4,"cix":2,"ix":335,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.589,-0.266],[0.1,-0.611],[0,0],[0,0],[-0.589,-0.266],[0.1,-0.612],[0,0],[0,0],[-0.589,-0.265],[-0.02,-0.01],[-0.02,-0.009],[0.1,-0.611],[0,0],[0,0],[-0.59,-0.266],[0.1,-0.611],[0,0],[0,0],[-0.589,-0.266],[0.099,-0.612],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.389,-0.48],[0.589,0.266],[0,0],[0,0],[0.389,-0.482],[0.589,0.266],[0,0],[0,0],[0.388,-0.481],[0.021,0.009],[0.019,0.007],[0.589,0.266],[0,0],[0,0],[0.389,-0.481],[0.589,0.266],[0,0],[0,0],[0.388,-0.482],[0.589,0.266],[0,0],[0,0],[0,0]],"v":[[5.429,1.484],[2.049,-0.041],[0.36,-0.804],[-1.331,-1.566],[-4.711,-3.092],[-8.091,-4.617],[-8.809,-3.01],[-8.404,-2.827],[-6.753,-3.222],[-5.949,-1.719],[-5.428,-1.485],[-5.024,-1.301],[-3.373,-1.697],[-2.569,-0.193],[-2.049,0.041],[-1.645,0.223],[0.007,-0.173],[0.064,-0.141],[0.124,-0.119],[0.927,1.383],[1.331,1.566],[1.852,1.8],[3.504,1.406],[4.307,2.908],[4.711,3.092],[5.232,3.326],[6.884,2.93],[7.688,4.434],[8.092,4.617],[8.809,3.01]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.689999988032,0.470999983245,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[287.01,21.102],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 336","np":4,"cix":2,"ix":336,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.876,5.852],[-11.578,-4.28],[-10.876,-5.852],[11.578,4.28]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.689999988032,0.470999983245,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[282.79,30.551],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 337","np":4,"cix":2,"ix":337,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.789,35.576],[-24.593,25.739],[2.789,-35.576],[24.593,-25.738]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.830999995213,0.651000019148,0.481999984442,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[268.816,61.843],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 338","np":4,"cix":2,"ix":338,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.659,10.784],[-15.1,-0.839],[-10.658,-10.784],[15.099,0.838]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.830999995213,0.651000019148,0.481999984442,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[253.02,97.214],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 339","np":4,"cix":2,"ix":339,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.339,9.721],[-10.774,2.452],[-5.338,-9.721],[10.775,-2.451]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.830999995213,0.651000019148,0.481999984442,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[284.613,26.47],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 340","np":4,"cix":2,"ix":340,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.14,14.106],[0,0],[0.352,-1.079],[2.671,-17.61],[-0.014,-1.135],[0,0]],"o":[[2.14,-14.106],[0,0],[-0.351,1.078],[-2.671,17.611],[0.017,1.135],[0,0]],"v":[[-0.242,-0.126],[5.604,-33.1],[4.004,-31.835],[-1.159,-0.267],[-5.59,31.414],[-4.437,33.1]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.216000007181,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[361.935,234.045],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 341","np":4,"cix":2,"ix":341,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.213,2.202],[-3.368,-3.364],[4.213,-2.202],[3.369,3.364]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.380000005984,0.216000007181,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[366.562,234.665],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 342","np":4,"cix":2,"ix":342,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.008,6.288],[-0.053,-6.604],[2.007,-6.288],[0.052,6.604]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.380000005984,0.216000007181,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[370.166,235.216],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 343","np":4,"cix":2,"ix":343,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.738,31.241],[0,0],[0.747,-1.137],[3.297,-21.738],[-1.122,-3.907],[0,0]],"o":[[4.738,-31.241],[0,0],[-2.23,3.393],[-3.296,21.737],[0.376,1.31],[0,0]],"v":[[-2.773,-0.646],[8.13,-40.957],[5.202,-39.961],[-4.833,-0.961],[-6.816,39.271],[-4.315,41.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.564999988032,0.670999983245,0.62400004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[376.684,236.437],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 344","np":4,"cix":2,"ix":344,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-5.124,12.31],[0.689,-0.76],[2.484,-16.374],[-0.434,-0.933],[0,0]],"o":[[0,0],[0,0],[-0.691,0.762],[-2.483,16.373],[0.434,0.932],[-1.241,-13.285]],"v":[[-1.989,-0.544],[7.506,-39.145],[4.405,-38.273],[-4.423,-0.917],[-7.071,37.385],[-4.369,39.146]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.380000005984,0.216000007181,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[374.776,236.163],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 345","np":4,"cix":2,"ix":345,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.76,12.173],[0.623,-0.675],[2.041,-13.457],[-0.393,-0.831],[0,0]],"o":[[0,0],[0,0],[-0.622,0.676],[-2.041,13.456],[0.395,0.831],[-0.935,-13.046]],"v":[[-1.123,-0.437],[6.991,-34.723],[3.536,-33.905],[-4.173,-0.904],[-6.598,32.907],[-3.542,34.723]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.216000007181,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[372.092,235.776],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 346","np":4,"cix":2,"ix":346,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.584,11.015],[0.613,-0.605],[1.854,-12.221],[-0.404,-0.761],[0,0]],"o":[[0,0],[0,0],[-0.611,0.606],[-1.853,12.221],[0.406,0.761],[-1.109,-11.889]],"v":[[-0.69,-0.419],[6.94,-31.518],[2.667,-30.949],[-3.741,-0.886],[-6.536,29.73],[-2.627,31.554]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.830999995213,0.172999991623,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[369.039,235.357],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 347","np":4,"cix":2,"ix":347,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.2,0.03],[0.012,-0.075],[0,0],[-0.201,-0.03],[-0.011,0.075],[0,0]],"o":[[-0.201,-0.031],[0,0],[-0.011,0.075],[0.201,0.031],[0,0],[0.011,-0.075]],"v":[[0.281,-1.853],[-0.104,-1.772],[-0.624,1.661],[-0.281,1.853],[0.103,1.772],[0.624,-1.661]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.380000005984,0.216000007181,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[349.386,251.729],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 348","np":4,"cix":2,"ix":348,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.243,0.038],[0.024,-0.159],[0,0],[-0.243,-0.038],[-0.024,0.159],[0,0]],"o":[[-0.243,-0.037],[0,0],[-0.025,0.159],[0.243,0.037],[0,0],[0.025,-0.159]],"v":[[0.589,-3.885],[0.106,-3.664],[-0.985,3.529],[-0.589,3.885],[-0.105,3.664],[0.985,-3.53]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.380000005984,0.216000007181,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[348.809,251.641],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 349","np":4,"cix":2,"ix":349,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.001,0.153],[0.764,0.117],[0,0],[0,0],[0,0],[-0.762,-0.118],[-1.002,-0.154],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.002,-0.153],[-0.763,-0.117],[0,0],[0,0],[0,0],[0.764,0.117],[1.002,0.154],[0,0]],"v":[[14.155,-0.799],[15.576,-0.581],[15.138,2.296],[14.702,5.174],[13.281,4.956],[12.681,4.079],[-8.835,0.781],[-11.091,1.173],[-15.576,0.484],[-15.147,-2.344],[-14.717,-5.174],[-10.233,-4.486],[-8.195,-3.439],[13.323,-0.141]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.216000007181,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[333.302,249.288],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 350","np":4,"cix":2,"ix":350,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.757,-2.967],[-1.602,2.605],[0.757,2.967],[1.601,-2.605]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.216000007181,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[362.83,250.742],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 351","np":4,"cix":2,"ix":351,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-21.609,-4.707],[-22.023,-1.98],[21.609,4.706],[22.023,1.98]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.830999995213,0.172999991623,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[340.424,247.309],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 352","np":4,"cix":2,"ix":352,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.2,0.031],[-0.011,0.075],[0,0],[-0.201,-0.031],[0.012,-0.075],[0,0]],"o":[[-0.201,-0.03],[0,0],[0.011,-0.075],[0.201,0.03],[0,0],[-0.012,0.075]],"v":[[-0.281,1.853],[-0.624,1.661],[-0.103,-1.772],[0.281,-1.853],[0.623,-1.661],[0.103,1.772]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.380000005984,0.216000007181,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[355.225,213.229],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 353","np":4,"cix":2,"ix":353,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.243,0.037],[-0.024,0.159],[0,0],[-0.243,-0.037],[0.025,-0.159],[0,0]],"o":[[-0.243,-0.037],[0,0],[0.024,-0.159],[0.243,0.038],[0,0],[-0.024,0.159]],"v":[[-0.59,3.885],[-0.986,3.53],[0.105,-3.664],[0.589,-3.885],[0.985,-3.529],[-0.106,3.664]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.380000005984,0.216000007181,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[354.65,213.141],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 354","np":4,"cix":2,"ix":354,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.002,0.155],[0.764,0.117],[0,0],[0,0],[0,0],[-0.764,-0.117],[-1.002,-0.153],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.002,-0.153],[-0.763,-0.118],[0,0],[0,0],[0,0],[0.764,0.116],[1.002,0.154],[0,0]],"v":[[13.281,4.956],[14.702,5.174],[15.138,2.297],[15.575,-0.58],[14.154,-0.798],[13.322,-0.141],[-8.195,-3.439],[-10.233,-4.486],[-14.717,-5.174],[-15.147,-2.345],[-15.575,0.484],[-11.091,1.173],[-8.835,0.782],[12.682,4.079]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.216000007181,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[339.142,210.788],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 355","np":4,"cix":2,"ix":355,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.602,2.605],[-0.757,-2.966],[1.602,-2.605],[0.756,2.966]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.216000007181,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[367.766,218.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 356","np":4,"cix":2,"ix":356,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-22.023,-1.98],[-21.61,-4.707],[22.023,1.981],[21.61,4.707]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.830999995213,0.172999991623,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[345.36,214.765],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 357","np":4,"cix":2,"ix":357,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.944,31.167],[6.43,-30.633],[2.943,-31.167],[-6.43,30.633]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.902000038297,0.2,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[359.584,233.595],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 358","np":4,"cix":2,"ix":358,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.163,0.311],[-1.017,-0.645],[1.164,-0.311],[1.018,0.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.788000009574,0.626999978458,0.313999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[362.181,235.895],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 359","np":4,"cix":2,"ix":359,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.163,0.311],[-1.018,-0.645],[1.163,-0.311],[1.019,0.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.788000009574,0.626999978458,0.313999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[362.745,232.178],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 360","np":4,"cix":2,"ix":360,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.146,-0.117],[-0.092,-0.117],[0,0],[-0.145,0.116],[0.093,0.117],[0,0]],"o":[[-0.146,0.117],[0,0],[0.093,0.117],[0.147,-0.117],[0,0],[-0.093,-0.117]],"v":[[-6.637,-8.401],[-6.734,-7.977],[6.204,8.401],[6.637,8.402],[6.733,7.978],[-6.204,-8.4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[283.964,119.033],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 361","np":4,"cix":2,"ix":361,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.073,-0.058],[0.047,0.058],[0,0],[-0.073,0.059],[-0.046,-0.058],[0,0]],"o":[[-0.073,0.059],[0,0],[-0.046,-0.059],[0.073,-0.059],[0,0],[0.047,0.059]],"v":[[5.209,6.593],[4.992,6.593],[-5.258,-6.382],[-5.209,-6.594],[-4.993,-6.594],[5.257,6.382]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[291.843,124.362],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 362","np":4,"cix":2,"ix":362,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.073,0.059],[0.046,0.059],[0,0],[0.074,-0.058],[-0.047,-0.058],[0,0]],"o":[[0.073,-0.058],[0,0],[-0.047,-0.059],[-0.073,0.059],[0,0],[0.047,0.058]],"v":[[3.613,4.572],[3.661,4.361],[-3.396,-4.573],[-3.613,-4.574],[-3.66,-4.362],[3.396,4.572]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[288.573,114.486],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 363","np":4,"cix":2,"ix":363,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.11,0.087],[0.07,0.088],[0,0],[0.11,-0.088],[-0.07,-0.087],[0,0]],"o":[[0.109,-0.087],[0,0],[-0.069,-0.088],[-0.109,0.087],[0,0],[0.069,0.088]],"v":[[5.251,6.647],[5.323,6.329],[-4.927,-6.645],[-5.252,-6.646],[-5.324,-6.329],[4.926,6.646]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[293.466,113.44],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 364","np":4,"cix":2,"ix":364,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.109,0.087],[-0.069,-0.088],[0,0],[0.11,-0.087],[0.07,0.088],[0,0]],"o":[[0.109,-0.087],[0,0],[0.07,0.087],[-0.11,0.088],[0,0],[-0.07,-0.088]],"v":[[-2.1,-2.659],[-1.776,-2.658],[2.173,2.341],[2.101,2.658],[1.776,2.657],[-2.172,-2.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[302.492,119.675],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 365","np":4,"cix":2,"ix":365,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.109,-0.087],[0.07,0.088],[0,0],[-0.11,0.088],[-0.069,-0.088],[0,0]],"o":[[-0.11,0.088],[0,0],[-0.069,-0.089],[0.109,-0.087],[0,0],[0.07,0.089]],"v":[[5.419,6.859],[5.094,6.858],[-5.492,-6.541],[-5.419,-6.86],[-5.095,-6.859],[5.491,6.541]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[300.296,111.976],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 366","np":4,"cix":2,"ix":366,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.109,-0.087],[-0.07,-0.088],[0,0],[-0.11,0.087],[0.069,0.088],[0,0]],"o":[[-0.109,0.087],[0,0],[0.07,0.088],[0.109,-0.087],[0,0],[-0.069,-0.088]],"v":[[-3.654,-4.626],[-3.727,-4.308],[3.331,4.625],[3.656,4.626],[3.728,4.308],[-3.331,-4.625]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[306.496,113.269],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 367","np":4,"cix":2,"ix":367,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.073,-0.059],[0.047,0.059],[0,0],[-0.073,0.058],[-0.046,-0.059],[0,0]],"o":[[-0.073,0.058],[0,0],[-0.046,-0.059],[0.073,-0.058],[0,0],[0.047,0.059]],"v":[[2.899,3.669],[2.682,3.668],[-2.947,-3.457],[-2.898,-3.669],[-2.682,-3.668],[2.947,3.457]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[306.605,107.805],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 368","np":4,"cix":2,"ix":368,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.109,-0.087],[0.069,0.088],[0,0],[-0.109,0.087],[-0.069,-0.089],[0,0]],"o":[[-0.109,0.087],[0,0],[-0.07,-0.088],[0.11,-0.088],[0,0],[0.07,0.088]],"v":[[2.94,3.722],[2.616,3.722],[-3.013,-3.403],[-2.941,-3.721],[-2.617,-3.721],[3.013,3.404]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[312.688,107.718],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 369","np":4,"cix":2,"ix":369,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[16.782,-28.377],[-16.781,10.519],[-2.672,28.377]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[309.207,129.334],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 370","np":4,"cix":2,"ix":370,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[30.833,-28.377],[-30.833,-25.055],[11.379,28.377]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.713999968884,0.365000017952,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[295.155,129.334],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 371","np":4,"cix":2,"ix":371,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.12,-0.096],[-0.076,-0.097],[0,0],[-0.12,0.096],[0.076,0.097],[0,0]],"o":[[-0.12,0.095],[0,0],[0.076,0.096],[0.119,-0.095],[0,0],[-0.076,-0.096]],"v":[[-5.456,-6.907],[-5.534,-6.559],[5.103,6.905],[5.457,6.906],[5.535,6.559],[-5.103,-6.906]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[304.841,147.293],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 372","np":4,"cix":2,"ix":372,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.061,-0.048],[0.038,0.048],[0,0],[-0.06,0.048],[-0.038,-0.049],[0,0]],"o":[[-0.06,0.047],[0,0],[-0.038,-0.048],[0.06,-0.048],[0,0],[0.038,0.048]],"v":[[4.282,5.421],[4.105,5.42],[-4.322,-5.246],[-4.282,-5.42],[-4.105,-5.419],[4.322,5.247]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[311.311,151.68],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 373","np":4,"cix":2,"ix":373,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.06,0.048],[0.038,0.049],[0,0],[0.059,-0.048],[-0.038,-0.048],[0,0]],"o":[[0.061,-0.048],[0,0],[-0.038,-0.048],[-0.06,0.048],[0,0],[0.038,0.048]],"v":[[2.97,3.759],[3.01,3.585],[-2.792,-3.759],[-2.969,-3.76],[-3.009,-3.586],[2.793,3.758]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[308.613,143.568],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 374","np":4,"cix":2,"ix":374,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.09,0.072],[0.057,0.073],[0,0],[0.09,-0.072],[-0.058,-0.073],[0,0]],"o":[[0.09,-0.071],[0,0],[-0.058,-0.073],[-0.09,0.071],[0,0],[0.058,0.072]],"v":[[4.317,5.464],[4.376,5.203],[-4.05,-5.463],[-4.317,-5.464],[-4.375,-5.203],[4.05,5.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[312.624,142.718],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 375","np":4,"cix":2,"ix":375,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.09,0.072],[-0.057,-0.072],[0,0],[0.09,-0.072],[0.056,0.072],[0,0]],"o":[[0.09,-0.072],[0,0],[0.056,0.073],[-0.09,0.071],[0,0],[-0.056,-0.073]],"v":[[-1.726,-2.186],[-1.46,-2.184],[1.786,1.924],[1.727,2.187],[1.462,2.185],[-1.786,-1.924]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[320.036,147.849],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 376","np":4,"cix":2,"ix":376,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.09,-0.071],[0.058,0.072],[0,0],[-0.09,0.072],[-0.056,-0.073],[0,0]],"o":[[-0.09,0.072],[0,0],[-0.056,-0.072],[0.09,-0.072],[0,0],[0.056,0.073]],"v":[[4.454,5.639],[4.188,5.638],[-4.515,-5.378],[-4.455,-5.639],[-4.19,-5.637],[4.514,5.378]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[318.222,141.527],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 377","np":4,"cix":2,"ix":377,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.09,-0.071],[-0.057,-0.073],[0,0],[-0.09,0.072],[0.057,0.073],[0,0]],"o":[[-0.09,0.072],[0,0],[0.057,0.072],[0.09,-0.071],[0,0],[-0.058,-0.072]],"v":[[-3.004,-3.804],[-3.064,-3.542],[2.738,3.801],[3.004,3.802],[3.064,3.541],[-2.737,-3.803]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[323.309,142.599],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 378","np":4,"cix":2,"ix":378,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.06,-0.048],[0.038,0.047],[0,0],[-0.06,0.048],[-0.038,-0.049],[0,0]],"o":[[-0.061,0.048],[0,0],[-0.039,-0.049],[0.06,-0.048],[0,0],[0.038,0.049]],"v":[[2.384,3.016],[2.206,3.016],[-2.422,-2.842],[-2.383,-3.016],[-2.206,-3.015],[2.422,2.842]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[323.389,138.115],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 379","np":4,"cix":2,"ix":379,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.09,-0.072],[0.058,0.072],[0,0],[-0.09,0.072],[-0.057,-0.072],[0,0]],"o":[[-0.089,0.072],[0,0],[-0.056,-0.073],[0.09,-0.071],[0,0],[0.056,0.073]],"v":[[2.417,3.059],[2.151,3.059],[-2.477,-2.799],[-2.417,-3.061],[-2.151,-3.06],[2.477,2.798]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[328.377,138.054],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 380","np":4,"cix":2,"ix":380,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[13.729,-23.276],[-13.729,8.593],[-2.13,23.275]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.616000007181,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[325.543,155.801],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 381","np":4,"cix":2,"ix":381,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[25.281,-23.276],[-25.281,-20.651],[9.422,23.275]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.713999968884,0.365000017952,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[313.991,155.801],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 382","np":4,"cix":2,"ix":382,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.216,0.812],[0.807,-0.216],[0,0]],"o":[[0,0],[0.807,-0.217],[-0.217,-0.812],[0,0],[0,0]],"v":[[-0.587,1.668],[0.085,1.488],[1.155,-0.375],[-0.699,-1.452],[-1.371,-1.271]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435000011968,0.603999956916,0.620000023935,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[403.621,156.959],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 383","np":4,"cix":2,"ix":383,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.347,6.395],[-3.484,-5.365],[0.347,-6.394],[3.484,5.366]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.365000017952,0.552999997606,0.569000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[351.999,170.762],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 384","np":4,"cix":2,"ix":384,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.465,2.385],[-1.59,-1.833],[0.465,-2.385],[1.59,1.834]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[401.614,157.434],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 385","np":4,"cix":2,"ix":385,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.44,5.775],[-2.495,-5.223],[-0.439,-5.775],[2.495,5.223]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[354.942,169.971],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 386","np":4,"cix":2,"ix":386,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.713,10.552],[-3.768,-10],[-1.714,-10.552],[3.768,10]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[338.772,174.315],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 387","np":4,"cix":2,"ix":387,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-53.848,15.365],[0,0],[0,0],[0,0],[0,0],[0,0],[8.542,-5.382],[0,0]],"o":[[0,0],[0,0],[-54.296,13.685],[0,0],[10.078,0.379],[0,0],[0,0],[0,0]],"v":[[32.053,-10.041],[31.604,-11.721],[31.156,-13.4],[-32.052,-3.88],[-30.35,1.063],[2.001,-3.77],[-28.43,8.264],[-27.443,13.4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435000011968,0.603999956916,0.620000023935,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[368.983,169.431],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 388","np":4,"cix":2,"ix":388,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.087,0.328],[0,0],[0.326,-0.088],[0,0]],"o":[[0,0],[0.327,-0.087],[0,0],[-0.087,-0.328],[0,0],[0,0]],"v":[[0.283,3.88],[1.179,3.639],[1.612,2.886],[-0.054,-3.357],[-0.803,-3.792],[-1.699,-3.552]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[325.957,191.789],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 389","np":4,"cix":2,"ix":389,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.087,0.328],[0,0],[0.326,-0.088],[0,0]],"o":[[0,0],[0.327,-0.087],[0,0],[-0.087,-0.328],[0,0],[0,0]],"v":[[0.283,3.88],[1.179,3.639],[1.612,2.886],[-0.054,-3.357],[-0.803,-3.792],[-1.699,-3.552]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[318.986,165.65],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 390","np":4,"cix":2,"ix":390,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[8.104,2.135],[0,0],[-2.291,-8.591],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[2.291,8.59],[0,0],[5.957,-5.913]],"v":[[10.713,6.111],[8.044,-3.893],[5.376,-13.898],[-10.713,-15.985],[-9.118,-10.004],[2.42,-2.382],[-3.781,10.005],[-2.185,15.986]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435000011968,0.603999956916,0.620000023935,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[329.7,178.485],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 391","np":4,"cix":2,"ix":391,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.037,0.137],[-0.137,0.037],[0,0],[-0.037,-0.137],[0.135,-0.036]],"o":[[-0.136,0.037],[-0.037,-0.136],[0,0],[0.135,-0.037],[0.036,0.137],[0,0]],"v":[[-4.193,1.391],[-4.505,1.21],[-4.325,0.896],[4.194,-1.391],[4.506,-1.21],[4.326,-0.897]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[405.537,156.38],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 392","np":4,"cix":2,"ix":392,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.716,0.496],[-0.456,0.745],[-0.715,-0.496],[0.457,-0.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[194.855,50.699],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 393","np":4,"cix":2,"ix":393,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.715,0.496],[-0.457,0.745],[-0.716,-0.496],[0.456,-0.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[192.387,51.221],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 394","np":4,"cix":2,"ix":394,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.715,0.496],[-0.457,0.745],[-0.716,-0.496],[0.456,-0.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[189.919,51.742],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 395","np":4,"cix":2,"ix":395,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.715,0.496],[-0.457,0.745],[-0.716,-0.497],[0.456,-0.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[187.451,52.263],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 396","np":4,"cix":2,"ix":396,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.715,0.496],[-0.457,0.745],[-0.716,-0.496],[0.456,-0.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[184.982,52.784],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 397","np":4,"cix":2,"ix":397,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.716,0.496],[-0.456,0.745],[-0.716,-0.497],[0.457,-0.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[182.514,53.306],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 398","np":4,"cix":2,"ix":398,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.716,0.496],[-0.456,0.745],[-0.715,-0.496],[0.457,-0.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[180.046,53.827],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 399","np":4,"cix":2,"ix":399,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.268,-1.287],[-8.084,2.166],[-8.268,1.287],[8.084,-2.166]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[187.85,54.178],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 400","np":4,"cix":2,"ix":400,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.261,-0.393],[-7.721,2.982],[-8.261,0.393],[7.72,-2.982]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.528999956916,0.455000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[187.851,54.178],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 401","np":4,"cix":2,"ix":401,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.869,3.23],[-2.248,4.523],[-3.868,-3.231],[2.248,-4.523]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.322000002394,0.26699999641,0.231000010173,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[188.814,58.788],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 402","np":4,"cix":2,"ix":402,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.581,-0.292],[-7.057,2.799],[-7.581,0.291],[7.057,-2.799]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.62400004069,0.54900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[188.847,58.946],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 403","np":4,"cix":2,"ix":403,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.272,3.015],[-6.366,6.106],[-8.272,-3.015],[6.365,-6.106]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[188.671,58.103],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 404","np":4,"cix":2,"ix":404,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.038,0.608],[-6.04,1.838],[6.039,-0.712],[5.546,-1.838]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[192.11,73.996],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 405","np":4,"cix":2,"ix":405,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.317,0.878],[-7.318,2.108],[7.318,-0.982],[6.825,-2.108]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[193.382,80.083],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 406","np":4,"cix":2,"ix":406,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.678,0.743],[-6.679,1.973],[6.679,-0.847],[6.185,-1.973]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[192.746,77.04],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 407","np":4,"cix":2,"ix":407,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.12,0.203],[-4.121,1.433],[4.121,-0.307],[3.628,-1.433]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.202,64.866],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 408","np":4,"cix":2,"ix":408,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.399,0.473],[-5.4,1.703],[5.4,-0.577],[4.906,-1.703]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[191.474,70.953],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 409","np":4,"cix":2,"ix":409,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.759,0.338],[-4.76,1.568],[4.76,-0.442],[4.266,-1.568]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.838,67.91],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 410","np":4,"cix":2,"ix":410,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.957,1.013],[-7.958,2.243],[7.958,-1.117],[7.464,-2.243]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[194.018,83.127],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 411","np":4,"cix":2,"ix":411,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[12.434,-2.063],[11.94,-3.188],[-12.434,1.959],[-12.435,3.188]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.47,104.43],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 412","np":4,"cix":2,"ix":412,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.794,1.823],[-11.795,3.053],[11.794,-1.927],[11.3,-3.053]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[197.835,101.387],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 413","np":4,"cix":2,"ix":413,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.154,1.688],[-11.155,2.919],[11.155,-1.792],[10.661,-2.919]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[197.198,98.343],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 414","np":4,"cix":2,"ix":414,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-8.596,1.148],[-8.597,2.378],[8.597,-1.252],[8.104,-2.378]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[194.654,86.17],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 415","np":4,"cix":2,"ix":415,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-10.515,1.553],[-10.516,2.783],[10.516,-1.658],[10.022,-2.783]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[196.562,95.3],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 416","np":4,"cix":2,"ix":416,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-9.236,1.283],[-9.237,2.513],[9.237,-1.388],[8.743,-2.513]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[195.291,89.214],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 417","np":4,"cix":2,"ix":417,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-9.875,1.418],[-9.876,2.648],[9.876,-1.522],[9.383,-2.648]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[195.926,92.257],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 418","np":4,"cix":2,"ix":418,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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.638,-23.681],[-9.178,-22.932],[-12.719,-22.185],[-12.768,23.681],[0,20.984],[12.768,18.289]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.528999956916,0.455000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.802,85.596],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 419","np":4,"cix":2,"ix":419,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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.355,-24.304],[-9.178,-23.286],[-14.001,-22.267],[-17.392,24.304],[0,20.631],[17.393,16.959]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.62400004069,0.54900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.802,85.949],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 420","np":4,"cix":2,"ix":420,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[14.949,-1.88],[-14.438,4.326],[-14.949,1.88],[14.438,-4.326]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.528999956916,0.455000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[189.88,63.886],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 421","np":4,"cix":2,"ix":421,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.349,0.034],[-14.038,6.24],[-15.349,-0.034],[14.038,-6.24]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.279,65.801],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 422","np":4,"cix":2,"ix":422,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[19.908,-2.927],[-19.396,5.373],[-19.908,2.927],[19.396,-5.373]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.528999956916,0.455000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[191.191,70.16],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 423","np":4,"cix":2,"ix":423,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[20.266,-1.215],[-19.038,7.085],[-20.266,1.215],[19.038,-7.085]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[191.633,72.276],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 424","np":4,"cix":2,"ix":424,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[23.637,-3.715],[-23.127,6.16],[-23.637,3.715],[23.126,-6.16]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.528999956916,0.455000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[192.502,76.434],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 425","np":4,"cix":2,"ix":425,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[23.995,-2.003],[-22.768,7.872],[-23.995,2.003],[22.768,-7.872]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[192.944,78.55],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 426","np":4,"cix":2,"ix":426,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[27.52,-4.534],[-27.009,6.98],[-27.52,4.535],[27.008,-6.98]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.528999956916,0.455000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[193.813,82.708],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 427","np":4,"cix":2,"ix":427,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[27.878,-2.823],[-26.65,8.693],[-27.878,2.823],[26.65,-8.693]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[194.255,84.824],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 428","np":4,"cix":2,"ix":428,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[31.832,-5.445],[-31.321,7.891],[-31.832,5.445],[31.321,-7.891]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.528999956916,0.455000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[195.124,88.982],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 429","np":4,"cix":2,"ix":429,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[32.189,-3.733],[-30.963,9.603],[-32.189,3.733],[30.962,-9.603]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[195.566,91.098],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 430","np":4,"cix":2,"ix":430,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35.752,-6.273],[-35.241,8.718],[-35.752,6.272],[35.24,-8.718]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.528999956916,0.455000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[196.436,95.256],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 431","np":4,"cix":2,"ix":431,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[36.109,-4.561],[-34.883,10.431],[-36.11,4.561],[34.882,-10.431]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[196.878,97.372],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 432","np":4,"cix":2,"ix":432,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[40.16,-7.204],[-39.65,9.65],[-40.161,7.203],[39.648,-9.65]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.528999956916,0.455000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[197.747,101.53],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 433","np":4,"cix":2,"ix":433,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[40.518,-5.492],[-39.292,11.362],[-40.519,5.491],[39.291,-11.362]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.490000017952,0.411999990426,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.189,103.646],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 434","np":4,"cix":2,"ix":434,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.113,0.029],[-0.028,-0.114],[0,0],[0.114,-0.027],[0.027,0.114]],"o":[[-0.027,-0.114],[0.115,-0.027],[0,0],[0.028,0.114],[-0.114,0.028],[0,0]],"v":[[-0.977,-3.079],[-0.822,-3.339],[-0.564,-3.182],[0.975,3.079],[0.82,3.337],[0.563,3.182]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[272.868,377.794],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 435","np":4,"cix":2,"ix":435,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.114,0.029],[-0.028,-0.114],[0,0],[0.113,-0.028],[0.028,0.114]],"o":[[-0.028,-0.114],[0.115,-0.028],[0,0],[0.028,0.115],[-0.114,0.028],[0,0]],"v":[[-0.976,-3.079],[-0.821,-3.338],[-0.563,-3.182],[0.976,3.079],[0.821,3.338],[0.563,3.182]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[274.348,377.426],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 436","np":4,"cix":2,"ix":436,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.114,0.029],[-0.027,-0.114],[0,0],[0.113,-0.028],[0.028,0.114]],"o":[[-0.028,-0.114],[0.115,-0.028],[0,0],[0.027,0.114],[-0.114,0.028],[0,0]],"v":[[-0.975,-3.079],[-0.82,-3.338],[-0.564,-3.182],[0.977,3.08],[0.822,3.338],[0.563,3.183]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[275.828,377.058],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 437","np":4,"cix":2,"ix":437,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.114,0.029],[-0.028,-0.114],[0,0],[0.114,-0.028],[0.028,0.114]],"o":[[-0.028,-0.115],[0.114,-0.028],[0,0],[0.028,0.114],[-0.113,0.028],[0,0]],"v":[[-0.975,-3.079],[-0.82,-3.338],[-0.563,-3.182],[0.976,3.079],[0.821,3.338],[0.564,3.182]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[277.308,376.691],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 438","np":4,"cix":2,"ix":438,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.114,0.029],[-0.028,-0.114],[0,0],[0.114,-0.028],[0.028,0.114]],"o":[[-0.028,-0.114],[0.114,-0.028],[0,0],[0.028,0.114],[-0.114,0.028],[0,0]],"v":[[-0.975,-3.079],[-0.82,-3.338],[-0.564,-3.182],[0.975,3.08],[0.82,3.338],[0.563,3.183]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[278.789,376.323],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 439","np":4,"cix":2,"ix":439,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.113,0.029],[-0.028,-0.115],[0,0],[0.114,-0.028],[0.028,0.114]],"o":[[-0.028,-0.115],[0.115,-0.028],[0,0],[0.028,0.114],[-0.114,0.028],[0,0]],"v":[[-0.976,-3.079],[-0.821,-3.338],[-0.563,-3.182],[0.976,3.079],[0.821,3.338],[0.563,3.182]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280.269,375.955],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 440","np":4,"cix":2,"ix":440,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.084,0.343],[-0.34,0.084],[0,0],[-0.084,-0.343],[0.339,-0.084],[0,0]],"o":[[-0.085,-0.342],[0,0],[0.341,-0.084],[0.084,0.341],[0,0],[-0.34,0.084]],"v":[[-0.97,0.241],[-0.507,-0.531],[0.203,-0.707],[0.971,-0.241],[0.508,0.53],[-0.202,0.707]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752999997606,0.62400004069,0.416000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[281.451,396.734],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 441","np":4,"cix":2,"ix":441,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.801,8.642],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[6.483,6.337]],"v":[[3.407,8.54],[3.849,8.43],[4.292,8.319],[5.288,-8.54],[0.001,-7.227],[-5.287,-5.913]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[277.615,388.357],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 442","np":4,"cix":2,"ix":442,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-2.655,4.555],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[4.46,2.788]],"v":[[-3.119,5.734],[1.911,4.486],[2.02,4.458],[7.05,3.21],[8.905,-5.734],[0.055,-3.536],[-0.055,-3.508],[-8.905,-1.31]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[273.524,368.015],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 443","np":4,"cix":2,"ix":443,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-8.516,1.53],[8.245,-2.633],[8.515,-1.53],[-8.245,2.634]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.811999990426,0.709999952129,0.552999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[273.388,363.942],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 444","np":4,"cix":2,"ix":444,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.149,0.037],[-0.037,-0.149],[0,0],[0.149,-0.037],[0.037,0.15]],"o":[[-0.037,-0.15],[0.15,-0.037],[0,0],[0.037,0.151],[-0.151,0.037],[0,0]],"v":[[-0.859,-2.327],[-0.656,-2.666],[-0.318,-2.462],[0.859,2.328],[0.656,2.667],[0.318,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[265.898,361.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 445","np":4,"cix":2,"ix":445,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.149,0.037],[-0.037,-0.15],[0,0],[0.149,-0.037],[0.037,0.15]],"o":[[-0.036,-0.15],[0.15,-0.037],[0,0],[0.036,0.151],[-0.15,0.037],[0,0]],"v":[[-0.86,-2.328],[-0.656,-2.667],[-0.318,-2.463],[0.86,2.327],[0.656,2.666],[0.318,2.461]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[267.522,361.108],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 446","np":4,"cix":2,"ix":446,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.149,0.037],[-0.037,-0.15],[0,0],[0.149,-0.037],[0.037,0.15]],"o":[[-0.037,-0.15],[0.151,-0.037],[0,0],[0.037,0.15],[-0.15,0.037],[0,0]],"v":[[-0.859,-2.327],[-0.657,-2.667],[-0.319,-2.462],[0.859,2.328],[0.655,2.667],[0.317,2.462]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.147,360.704],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 447","np":4,"cix":2,"ix":447,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.149,0.037],[-0.036,-0.15],[0,0],[0.15,-0.037],[0.037,0.15]],"o":[[-0.037,-0.15],[0.15,-0.037],[0,0],[0.037,0.151],[-0.15,0.037],[0,0]],"v":[[-0.859,-2.327],[-0.655,-2.667],[-0.318,-2.462],[0.86,2.327],[0.656,2.667],[0.319,2.462]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[270.771,360.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 448","np":4,"cix":2,"ix":448,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.149,0.037],[-0.037,-0.15],[0,0],[0.149,-0.037],[0.037,0.15]],"o":[[-0.037,-0.15],[0.15,-0.037],[0,0],[0.037,0.151],[-0.15,0.037],[0,0]],"v":[[-0.859,-2.327],[-0.655,-2.667],[-0.317,-2.462],[0.86,2.327],[0.657,2.667],[0.319,2.462]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[272.395,359.898],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 449","np":4,"cix":2,"ix":449,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.149,0.037],[-0.037,-0.15],[0,0],[0.149,-0.037],[0.037,0.15]],"o":[[-0.037,-0.149],[0.15,-0.037],[0,0],[0.037,0.151],[-0.15,0.037],[0,0]],"v":[[-0.859,-2.328],[-0.656,-2.667],[-0.318,-2.462],[0.86,2.327],[0.656,2.667],[0.318,2.462]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[274.02,359.494],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 450","np":4,"cix":2,"ix":450,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.15,0.037],[-0.037,-0.15],[0,0],[0.149,-0.037],[0.036,0.15]],"o":[[-0.037,-0.15],[0.15,-0.037],[0,0],[0.037,0.151],[-0.15,0.037],[0,0]],"v":[[-0.859,-2.327],[-0.655,-2.666],[-0.318,-2.461],[0.86,2.328],[0.656,2.667],[0.319,2.463]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[275.644,359.091],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 451","np":4,"cix":2,"ix":451,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.149,0.037],[-0.036,-0.15],[0,0],[0.149,-0.037],[0.037,0.15]],"o":[[-0.037,-0.15],[0.15,-0.037],[0,0],[0.037,0.151],[-0.151,0.037],[0,0]],"v":[[-0.859,-2.328],[-0.656,-2.667],[-0.319,-2.463],[0.859,2.327],[0.656,2.666],[0.318,2.461]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[277.268,358.687],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 452","np":4,"cix":2,"ix":452,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.149,0.037],[-0.037,-0.15],[0,0],[0.149,-0.037],[0.037,0.15]],"o":[[-0.036,-0.15],[0.15,-0.037],[0,0],[0.036,0.15],[-0.15,0.037],[0,0]],"v":[[-0.86,-2.327],[-0.656,-2.667],[-0.318,-2.462],[0.86,2.328],[0.656,2.667],[0.318,2.462]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.470999983245,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[278.892,358.284],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 453","np":4,"cix":2,"ix":453,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.06,-0.103],[0.102,-0.06],[0,0],[0.059,0.103],[-0.103,0.06]],"o":[[0.103,-0.06],[0.059,0.104],[0,0],[-0.103,0.06],[-0.06,-0.103],[0,0]],"v":[[0.706,-0.659],[0.999,-0.58],[0.921,-0.285],[-0.706,0.659],[-0.999,0.581],[-0.921,0.286]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.049,349.477],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 454","np":4,"cix":2,"ix":454,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.097,0.069],[-0.068,-0.098],[0,0],[0.097,-0.069],[0.067,0.098]],"o":[[-0.067,-0.098],[0.097,-0.068],[0,0],[0.067,0.098],[-0.098,0.068],[0,0]],"v":[[-0.715,-0.649],[-0.663,-0.95],[-0.363,-0.897],[0.716,0.649],[0.663,0.95],[0.363,0.897]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[270.401,349.776],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 455","np":4,"cix":2,"ix":455,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.041,0.026],[-0.026,0.041],[0,0],[-0.041,-0.024],[0.025,-0.042]],"o":[[-0.025,0.041],[-0.041,-0.024],[0,0],[0.026,-0.042],[0.041,0.025],[0,0]],"v":[[-0.226,0.547],[-0.346,0.576],[-0.375,0.456],[0.227,-0.548],[0.347,-0.578],[0.377,-0.457]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[268.029,351.99],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 456","np":4,"cix":2,"ix":456,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.042,0.026],[-0.026,0.041],[0,0],[-0.041,-0.025],[0.024,-0.042]],"o":[[-0.024,0.041],[-0.041,-0.025],[0,0],[0.026,-0.042],[0.042,0.025],[0,0]],"v":[[-0.227,0.548],[-0.347,0.577],[-0.376,0.457],[0.226,-0.547],[0.346,-0.577],[0.377,-0.456]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[271.593,346.055],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 457","np":4,"cix":2,"ix":457,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.025,0.042],[-0.041,-0.026],[0,0],[0.026,-0.042],[0.042,0.026]],"o":[[-0.042,-0.025],[0.025,-0.041],[0,0],[0.041,0.025],[-0.024,0.042],[0,0]],"v":[[-0.544,-0.227],[-0.574,-0.348],[-0.454,-0.377],[0.545,0.228],[0.574,0.349],[0.454,0.378]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[266.86,347.231],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 458","np":4,"cix":2,"ix":458,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.025,0.042],[-0.041,-0.026],[0,0],[0.026,-0.041],[0.042,0.025]],"o":[[-0.041,-0.025],[0.025,-0.041],[0,0],[0.041,0.024],[-0.024,0.042],[0,0]],"v":[[-0.546,-0.228],[-0.575,-0.349],[-0.455,-0.378],[0.544,0.228],[0.573,0.348],[0.453,0.379]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[272.763,350.813],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 459","np":4,"cix":2,"ix":459,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.01,0.046],[-0.047,0.012],[0,0],[-0.011,-0.047],[0.047,-0.012]],"o":[[-0.047,0.012],[-0.012,-0.047],[0,0],[0.047,-0.012],[0.012,0.047],[0,0]],"v":[[-0.546,0.226],[-0.651,0.162],[-0.588,0.055],[0.545,-0.226],[0.65,-0.162],[0.587,-0.055]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[266.464,349.854],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 460","np":4,"cix":2,"ix":460,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.011,0.047],[-0.047,0.011],[0,0],[-0.011,-0.047],[0.047,-0.012]],"o":[[-0.047,0.012],[-0.012,-0.047],[0,0],[0.048,-0.011],[0.012,0.047],[0,0]],"v":[[-0.545,0.225],[-0.651,0.161],[-0.587,0.055],[0.545,-0.227],[0.651,-0.163],[0.587,-0.056]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[273.158,348.191],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 461","np":4,"cix":2,"ix":461,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.046,0.011],[-0.011,-0.048],[0,0],[0.047,-0.012],[0.012,0.047]],"o":[[-0.012,-0.047],[0.047,-0.012],[0,0],[0.012,0.048],[-0.046,0.012],[0,0]],"v":[[-0.224,-0.548],[-0.161,-0.654],[-0.056,-0.59],[0.224,0.548],[0.16,0.654],[0.055,0.591]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[268.984,345.658],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 462","np":4,"cix":2,"ix":462,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.046,0.011],[-0.012,-0.047],[0,0],[0.047,-0.012],[0.012,0.047]],"o":[[-0.011,-0.047],[0.047,-0.012],[0,0],[0.012,0.047],[-0.047,0.012],[0,0]],"v":[[-0.225,-0.548],[-0.161,-0.654],[-0.055,-0.59],[0.225,0.549],[0.161,0.655],[0.055,0.591]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[270.639,352.387],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 463","np":4,"cix":2,"ix":463,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.609,2.478],[-2.463,0.613],[-0.61,-2.477],[2.464,-0.612]],"o":[[-0.608,-2.477],[2.464,-0.612],[0.608,2.477],[-2.463,0.612]],"v":[[-4.462,1.108],[-1.103,-4.485],[4.462,-1.108],[1.102,4.485]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.933000033509,0.882000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.73,349.055],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 464","np":4,"cix":2,"ix":464,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.691,2.813],[-2.797,0.696],[-0.692,-2.812],[2.798,-0.695]],"o":[[-0.691,-2.813],[2.798,-0.695],[0.691,2.813],[-2.797,0.695]],"v":[[-5.066,1.259],[-1.252,-5.092],[5.066,-1.258],[1.252,5.092]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.729,349.055],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 465","np":4,"cix":2,"ix":465,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.06,8.892],[7.714,5.967],[4.06,-8.892],[-7.714,-5.967]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.811999990426,0.709999952129,0.552999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.729,349.056],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 466","np":4,"cix":2,"ix":466,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.18,9.171],[8.833,5.691],[5.179,-9.17],[-8.833,-5.689]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752999997606,0.62400004069,0.416000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.73,349.055],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 467","np":4,"cix":2,"ix":467,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.22,9.428],[9.873,5.431],[6.219,-9.428],[-9.873,-5.431]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.811999990426,0.709999952129,0.552999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.73,349.055],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 468","np":4,"cix":2,"ix":468,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.715,2.687],[5.417,0.17],[4.715,-2.687],[-5.417,-0.17]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.811999990426,0.709999952129,0.552999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[277.264,379.702],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 469","np":4,"cix":2,"ix":469,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-3.914,5.941],[6.217,3.424],[3.914,-5.941],[-6.217,-3.424]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752999997606,0.62400004069,0.416000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[276.463,376.448],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 470","np":4,"cix":2,"ix":470,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.924,6.565],[9.169,2.568],[6.925,-6.564],[-9.168,-2.566]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752999997606,0.62400004069,0.416000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[272.165,358.96],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 471","np":4,"cix":2,"ix":471,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.003,9.623],[10.655,5.236],[7.002,-9.624],[-10.655,-5.237]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752999997606,0.62400004069,0.416000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.73,349.056],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 472","np":4,"cix":2,"ix":472,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-9.001,1.492],[8.657,-2.893],[9.001,-1.492],[-8.656,2.893]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.630999995213,0.510000011968,0.313999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[267.73,340.925],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 473","np":4,"cix":2,"ix":473,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-8.598,1.876],[8.478,-2.366],[8.598,-1.875],[-8.478,2.366]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.40800000359,0.344999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[265.541,332.02],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 474","np":4,"cix":2,"ix":474,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-8.598,1.876],[8.478,-2.366],[8.598,-1.875],[-8.477,2.366]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.40800000359,0.344999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.068,317.892],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 475","np":4,"cix":2,"ix":475,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.693,-18.09],[-4.229,-18.205],[4.694,18.089],[4.229,18.205]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[258.47,323.303],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 476","np":4,"cix":2,"ix":476,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.694,-18.09],[-4.229,-18.205],[4.694,18.09],[4.229,18.205]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[260.328,322.841],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 477","np":4,"cix":2,"ix":477,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.693,-18.089],[-4.228,-18.204],[4.694,18.09],[4.23,18.204]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.186,322.38],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 478","np":4,"cix":2,"ix":478,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.694,-18.09],[-4.229,-18.205],[4.694,18.09],[4.229,18.205]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[264.044,321.918],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 479","np":4,"cix":2,"ix":479,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.693,-18.089],[-4.228,-18.205],[4.694,18.09],[4.229,18.205]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[265.901,321.457],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 480","np":4,"cix":2,"ix":480,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.693,-18.09],[-4.228,-18.205],[4.694,18.089],[4.23,18.205]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[267.76,320.995],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 481","np":4,"cix":2,"ix":481,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.493,0.953],[5.302,-1.729],[5.493,-0.951],[-5.302,1.73]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[258.275,302.464],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 482","np":4,"cix":2,"ix":482,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-10.802,-18.167],[1.14,-21.134],[10.802,18.167],[-1.141,21.134]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.811999990426,0.709999952129,0.552999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.9,321.275],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 483","np":4,"cix":2,"ix":483,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-10.049,0.893],[9.305,-3.915],[10.048,-0.894],[-9.307,3.914]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[258.287,302.509],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 484","np":4,"cix":2,"ix":484,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-13.133,-16.569],[3.943,-20.811],[13.133,16.569],[-3.944,20.811]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752999997606,0.62400004069,0.416000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[263.136,322.235],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 485","np":4,"cix":2,"ix":485,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.017,0.073],[-0.072,0.018],[0,0],[-0.019,-0.072],[0.072,-0.018]],"o":[[-0.071,0.018],[-0.018,-0.072],[0,0],[0.072,-0.017],[0.017,0.072],[0,0]],"v":[[-0.716,0.316],[-0.878,0.217],[-0.78,0.055],[0.717,-0.318],[0.88,-0.219],[0.781,-0.056]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[281.947,398.753],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 486","np":4,"cix":2,"ix":486,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.073,0.018],[-0.018,-0.073],[0,0],[0.072,-0.018],[0.018,0.072]],"o":[[-0.018,-0.072],[0.071,-0.018],[0,0],[0.019,0.072],[-0.073,0.017],[0,0]],"v":[[-0.867,-2.958],[-0.768,-3.122],[-0.607,-3.023],[0.866,2.973],[0.77,3.136],[0.607,3.037]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.255000005984,0.234999997008,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[281.5,396.928],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 487","np":4,"cix":2,"ix":487,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-10.651,3.533],[1.644,9.921],[10.651,-0.57],[-7.347,-9.921]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[165.606,301.3],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 488","np":4,"cix":2,"ix":488,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.465,2.06],[4.32,10.259],[11.465,-0.909],[-6.533,-10.26]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.328999986836,0.161000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[164.793,301.639],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 489","np":4,"cix":2,"ix":489,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.253,0.198],[-0.389,-0.126],[-0.526,-0.35],[1.083,-0.046],[0.665,0.473],[0.23,-0.006],[-0.022,0.191]],"o":[[0.253,-0.198],[0.389,0.126],[0.527,0.349],[0,0],[0,0],[-0.231,0.007],[0.023,-0.19]],"v":[[-1.934,-0.974],[-0.74,-1.089],[0.986,-0.421],[1.204,1.215],[-1.285,-0.029],[-1.872,0.427],[-2.266,-0.182]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[111.566,344.783],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 490","np":4,"cix":2,"ix":490,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.374,0.814],[0,0],[0,0],[-2.154,0.469],[-0.197,-0.101],[0,0],[0,0],[0,0],[0.995,-0.357],[0.045,0.023],[0.413,0.215],[0,0]],"o":[[0,0],[0,0],[0,0],[2.155,-0.47],[0.197,0.103],[0,0],[0,0],[0,0],[-0.181,-0.091],[-0.149,-0.077],[-0.23,-0.12],[0,0]],"v":[[-2.229,-3.073],[1.021,-1.386],[-3.163,0.037],[1.442,-0.748],[4.695,-1.25],[6.673,-0.163],[-2.276,1.71],[4.044,0.825],[-1.896,3.073],[-2.259,2.89],[-3.569,2.042],[-6.673,0.555]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[120.398,346.308],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 491","np":4,"cix":2,"ix":491,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.804,0.641],[-0.068,0.132],[-0.221,0.428],[0,0],[0,0],[0,0],[-0.136,0.263],[0,0],[0,0],[0,0],[0.127,0.4],[0.063,0.2],[0.064,0.201],[-0.374,0.12],[0,0],[0.234,-0.129],[0,0],[0,0],[0.196,0.102],[0,0],[-0.672,0.216],[-0.068,0.132],[0.055,0.175],[0.699,-0.389],[0,0],[0.098,0.051],[0.638,0.321],[0,0]],"o":[[2.404,-0.549],[0.068,-0.132],[0.221,-0.43],[0,0],[0,0],[0,0],[0.135,-0.265],[0,0],[0,0],[0,0],[-0.127,-0.401],[-0.064,-0.2],[-0.063,-0.2],[0.373,-0.119],[0,0],[-0.232,0.13],[0,0],[0,0],[-0.198,-0.102],[0,0],[0.672,-0.214],[0.068,-0.132],[-0.056,-0.175],[-0.7,0.389],[0,0],[-0.069,-0.036],[0.256,-0.019],[6.179,-1.304]],"v":[[-3.785,5.051],[-0.005,4.171],[0.521,3.15],[9.954,-16.41],[10.873,-15.932],[-2.68,12.691],[-2.349,12.697],[11.128,-15.216],[13.298,-14.256],[-1.396,16.41],[-3.98,14.734],[-4.968,13.258],[-6.189,11.913],[-5.521,11.34],[-2.832,10.48],[-2.678,10.016],[-5.948,11.118],[-6.794,11.146],[-7.454,10.085],[-8.11,9.66],[-3.115,8.116],[-1.854,7.768],[-1.244,6.663],[-5.876,8.229],[-8.29,9.526],[-11.639,7.869],[-13.298,7.039],[-12.768,6.99]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[131.994,342.438],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 492","np":4,"cix":2,"ix":492,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.851,0.088],[0.002,-0.186],[0,0],[0.27,0.077],[-0.027,0.111]],"o":[[0.851,-0.088],[-0.002,0.186],[-0.175,0.159],[-0.27,-0.078],[0.026,-0.111]],"v":[[-0.483,-1.315],[1.894,-1.358],[0.577,1.384],[-1.062,1.438],[-1.869,-0.789]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[145.428,325.224],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 493","np":4,"cix":2,"ix":493,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.428,-1.157],[1.013,-0.221]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.002,-1.388],[1.554,1.072],[-1.554,1.389]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[146.014,321.895],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 494","np":4,"cix":2,"ix":494,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.212,-7.204],[3.989,-6.8],[-3.211,7.204],[-3.989,6.8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[150.583,313.526],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 495","np":4,"cix":2,"ix":495,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.372,-7.514],[4.149,-7.111],[-3.371,7.514],[-4.149,7.111]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[151.485,314.389],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 496","np":4,"cix":2,"ix":496,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.473,-7.711],[4.249,-7.307],[-3.473,7.711],[-4.249,7.308]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[152.568,315.2],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 497","np":4,"cix":2,"ix":497,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.738,-7.987],[4.32,-7.685],[-3.739,7.987],[-4.32,7.685]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[153.46,316.078],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 498","np":4,"cix":2,"ix":498,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.238,-3.904],[0,0],[2.561,3.698],[0.096,-4.467],[0.267,0.263],[0.027,-0.173],[0,0],[3.749,7.255],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[-0.268,-0.264],[-0.027,0.173],[0,0],[0,0],[0,0]],"v":[[3.639,-0.208],[2.236,2.458],[-0.561,-3.917],[0.488,6.16],[-0.529,5.727],[-1.075,6.004],[-2.708,9.361],[-3.639,-8.6],[-3.185,-9.361]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[151.564,333.341],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 499","np":4,"cix":2,"ix":499,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.756,-8.517],[4.74,-8.006],[-3.756,8.517],[-4.74,8.006]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[157.471,319.074],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 500","np":4,"cix":2,"ix":500,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.079,-8.784],[4.77,-8.426],[-4.079,8.785],[-4.77,8.426]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[158.714,320.155],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 501","np":4,"cix":2,"ix":501,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.393,-9.161],[4.895,-8.9],[-4.392,9.161],[-4.895,8.901]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.546,321.126],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 502","np":4,"cix":2,"ix":502,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.312,0.289],[0,0],[0.957,0.99]],"v":[[4.152,-5.349],[-3.169,7.303],[-3.202,7.368],[-4.152,6.999],[3.018,-7.658]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.536,348.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 503","np":4,"cix":2,"ix":503,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.083,-0.162],[0.18,-0.192],[0,0]],"o":[[0,0],[-0.083,0.162],[-0.181,0.192],[0,0]],"v":[[3.159,-6.43],[3.993,-5.914],[-3.028,6.238],[-4.076,5.898]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[148.625,350.599],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 504","np":4,"cix":2,"ix":504,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.435,-0.989],[0,0],[0,0],[-0.095,-0.3],[0,0],[0,0],[-0.867,-1.372],[0,0],[0.08,0.387],[-0.004,-0.001],[-0.005,-0.023],[0,0],[0,0],[-0.035,-0.111],[0,0],[0,0],[-0.246,-0.286],[0,0],[0.662,0.345],[0.229,0.013],[0.966,0.212],[0.03,0.095],[0.057,0.346],[0.09,0.284],[0.165,0.139],[0,0],[-0.281,-0.014],[-1.035,-1.249]],"o":[[0.435,0.99],[0,0],[0,0],[0.095,0.3],[0,0],[0,0],[0.867,1.373],[0,0],[-0.011,-0.027],[0.004,0.002],[0.17,0.396],[0,0],[0,0],[0.036,0.11],[0,0],[0,0],[0.247,0.286],[0,0],[-0.662,-0.344],[-0.229,-0.014],[-0.965,-0.212],[-0.03,-0.094],[-0.058,-0.347],[-0.09,-0.283],[-0.165,-0.138],[0,0],[0.281,0.014],[1.036,1.25]],"v":[[-1.037,0.488],[-0.18,2.646],[0.193,0.389],[1.105,2.287],[1.546,2.858],[0.654,-0.61],[2.266,1.15],[3.941,4.523],[3.616,0.883],[3.604,0.843],[3.616,0.883],[5.512,4.576],[4.314,-0.131],[6.152,2.669],[7.292,3.92],[5.096,-2.518],[8.378,-0.997],[9.223,7.506],[3.447,4.82],[0.217,3.249],[-1.919,3.272],[-3.654,2.264],[-3.982,1.119],[-6.036,-2.689],[-7.69,-5.182],[-9.223,-7.506],[-6.374,-7.08],[-4.18,-5.282]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[149.103,363.486],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 505","np":4,"cix":2,"ix":505,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.222,0.108],[0,0],[0,0]],"o":[[-0.702,-0.343],[2.719,2.639],[-0.309,0.116]],"v":[[0.227,3.168],[-2.071,-3.796],[2.071,3.68]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[142.854,361.943],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 506","np":4,"cix":2,"ix":506,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.257,0.368],[0,0],[0,0],[-0.149,-0.291],[0,0]],"o":[[-0.257,-0.369],[0,0],[0,0],[0.148,0.291],[-0.881,0.099]],"v":[[-1.391,1.44],[-1.559,-3.118],[0.012,-2.366],[0.356,-1.545],[1.648,3.019]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[140.613,361.923],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 507","np":4,"cix":2,"ix":507,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.067,0.212],[-0.078,0.151],[-0.171,-0.089],[0,0]],"o":[[-0.067,-0.212],[0.077,-0.15],[0.171,0.089],[-0.309,0.098]],"v":[[-0.616,1.818],[-0.376,-2.442],[0.512,-2.062],[0.527,2.493]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[138.25,360.775],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 508","np":4,"cix":2,"ix":508,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.333,-0.456],[0.137,-0.045],[0.129,0.408],[0,0],[0.276,-0.153],[0,0],[0.13,0.129],[0,0],[-0.158,0.117],[-0.183,0.103],[-0.104,-0.054],[0,0],[0,0]],"o":[[-0.333,0.456],[0,0],[-0.13,-0.409],[0,0],[-0.275,0.154],[0,0],[-0.129,-0.131],[0,0],[0.158,-0.115],[0.184,-0.102],[0.103,0.053],[0,0],[0,0]],"v":[[1.495,1.628],[0.243,3.617],[0.149,2.25],[-0.201,0.809],[-1.443,1.027],[-2.818,1.599],[-1.921,-0.146],[-2.497,-1.003],[-2.279,-1.682],[-0.288,-3.514],[0.363,-3.439],[2.818,-1.966],[2.713,2]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[134.657,360.349],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 509","np":4,"cix":2,"ix":509,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.354,0.102],[-0.23,0.343],[-0.129,-0.013],[0,0],[0.177,-0.345]],"o":[[0,0],[0.231,-0.343],[0.129,0.012],[0,0],[-0.176,0.344]],"v":[[-1.434,1.799],[0.253,-1.272],[1.058,-1.888],[1.434,-1.776],[0.149,0.88]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[135.508,364.608],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 510","np":4,"cix":2,"ix":510,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.183,0.014],[0.235,0.176],[-0.045,0.086],[-0.159,-0.218]],"o":[[0,0],[-0.183,-0.014],[-0.234,-0.176],[0.044,-0.086],[0.158,0.218]],"v":[[0.447,0.416],[0.026,0.497],[-0.485,0.068],[-0.23,-0.426],[0.561,-0.014]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[132.671,366.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 511","np":4,"cix":2,"ix":511,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.036,0.114],[-0.007,0.188],[0.149,0.132],[-0.055,0.107],[-0.329,-0.416],[0,0]],"o":[[-0.036,-0.114],[0.007,-0.186],[-0.149,-0.132],[0.055,-0.108],[0.328,0.415],[-0.082,0.148]],"v":[[-0.034,0.636],[-0.184,0.122],[-0.665,-0.454],[-0.378,-1.013],[0.486,-0.374],[0.248,0.973]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.881,364.21],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 512","np":4,"cix":2,"ix":512,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.689,0.878],[0,0],[-0.128,-0.013],[-0.033,0.064],[-0.055,0.107],[0.159,0.11],[0,0],[-0.142,0.118],[-0.146,0.047],[-0.236,-0.068],[0.056,-0.108],[0.13,-0.041],[0.122,-0.291],[0.089,-0.172],[-0.171,-0.089],[-0.037,-0.114],[0.122,-0.236],[-0.138,-0.153],[-0.211,0.068],[-0.107,-0.055],[0,0]],"o":[[-1.689,-0.877],[0,0],[0.13,0.012],[0.033,-0.065],[0.056,-0.108],[-0.16,-0.11],[0,0],[0.141,-0.117],[0.146,-0.047],[0.236,0.069],[-0.055,0.107],[-0.13,0.042],[-0.122,0.29],[-0.088,0.171],[0.171,0.088],[0.036,0.114],[-0.121,0.236],[0.137,0.153],[0.21,-0.067],[0.107,0.055],[0,0]],"v":[[-0.748,2.811],[-1.826,0.481],[-0.498,0.954],[-0.139,0.731],[-0.069,0.278],[-0.386,-0.105],[-1.377,-0.865],[-0.491,-2.747],[1.187,-3.481],[2.071,-3.621],[2.381,-2.643],[1.84,-2.434],[0.966,-2.261],[0.704,-1.172],[0.569,-0.698],[1.372,-0.363],[1.342,0.221],[0.645,1.683],[1.522,2.084],[1.901,1.873],[2.253,2.137]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[130.604,365.952],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 513","np":4,"cix":2,"ix":513,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.253,-0.44],[0,0],[-0.166,0.322],[-0.208,-0.018],[0.111,-0.214],[0.11,-0.161]],"o":[[-0.253,0.439],[0,0],[0.166,-0.322],[0.207,0.018],[-0.11,0.215],[-0.11,0.161]],"v":[[-0.025,0.177],[-1.835,2.695],[0.31,-2.372],[0.922,-2.455],[1.725,-1.964],[0.927,-0.2]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[130.303,361.971],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 514","np":4,"cix":2,"ix":514,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-1.14,0.656],[-0.465,-0.656],[1.14,0.125]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[135.298,351.525],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 515","np":4,"cix":2,"ix":515,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[1.336,0.826],[0,0],[0,0]],"v":[[-0.283,-1.236],[1.02,1.237],[-1.053,0.16]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[136.059,350.27],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 516","np":4,"cix":2,"ix":516,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.053,-0.103],[0,0],[-0.159,0.308],[0,0]],"o":[[-0.053,0.103],[0,0],[0.157,-0.306],[0,0]],"v":[[2.512,-4.471],[-2.239,4.768],[-2.406,4.176],[2.107,-4.768]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[143.378,333.834],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 517","np":4,"cix":2,"ix":517,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.305,0.029],[0,0],[-0.105,3.974],[-0.02,0.123],[-0.125,0.245],[0,0],[0.497,-5.277],[0.172,-0.646]],"o":[[-0.264,-0.025],[0,0],[0.105,-3.973],[0.019,-0.123],[0.126,-0.245],[0,0],[-0.497,5.275],[-0.164,0.617]],"v":[[-1.201,11.206],[-1.367,10.667],[-0.539,1.943],[-0.659,-7.416],[-0.271,-9.029],[0.511,-11.234],[0.968,-1.701],[-0.617,10.403]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.094,336.948],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 518","np":4,"cix":2,"ix":518,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.131,0.414],[2.724,2.152],[-0.141,0.273],[0,0],[0.296,-5.513],[0.208,-0.237],[0.936,1.611],[0,0],[-0.406,-1.638],[0.074,-0.394],[0.225,-0.072]],"o":[[-0.131,-0.415],[0,0],[0.14,-0.273],[0,0],[-0.296,5.514],[-0.208,0.239],[-0.936,-1.611],[0,0],[0.406,1.639],[-0.073,0.395],[-0.226,0.072]],"v":[[0.849,8.787],[-3.764,2.021],[-0.022,-5.421],[2.212,-10.1],[3.467,-1.748],[2.827,6.527],[1.211,3.395],[-0.065,1.607],[1.253,5.406],[1.977,8.767],[1.406,10.027]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[141.458,344.537],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 519","np":4,"cix":2,"ix":519,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.861,-2.886],[1.674,2.308]],"o":[[0,0],[0,0],[0,0]],"v":[[0.629,-4.361],[0.497,4.362],[-1.358,-0.457]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[145.361,334.167],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 520","np":4,"cix":2,"ix":520,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.845,1.575],[0.113,0.138],[0,0]],"o":[[-0.926,0.522],[-0.845,-1.575],[-0.113,-0.137],[2.095,1.088]],"v":[[2.163,2.525],[-0.141,-0.151],[-2.049,-2.569],[-1.751,-3.047]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[138.958,349.708],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 521","np":4,"cix":2,"ix":521,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.303,0.027],[0,0]],"o":[[0,0],[0,0],[0.304,-0.027],[0,0]],"v":[[-2.438,1.053],[-1.699,-0.385],[0.883,-1.025],[2.439,-0.013]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[135.844,353.115],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 522","np":4,"cix":2,"ix":522,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.124,-0.115],[0.2,-0.196],[0,0],[-0.146,0.323],[0,0],[-0.093,-0.128]],"o":[[-0.124,0.115],[-0.199,0.195],[0,0],[0.147,-0.323],[0,0],[0.093,0.128]],"v":[[1.099,-0.741],[-0.639,0.892],[-1.294,1.509],[-1.468,0.92],[-0.43,-0.866],[1.521,-1.38]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[132.719,357.486],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 523","np":4,"cix":2,"ix":523,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.458,0.758],[0,0],[-0.213,0.068],[-0.434,-0.332]],"o":[[0,0],[-1.459,-0.758],[0,0],[0.213,-0.068],[0.433,0.333]],"v":[[2.58,1.761],[-0.228,0.587],[-2.58,-0.921],[0.127,-1.693],[1.546,-1.135]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.617,357.154],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 524","np":4,"cix":2,"ix":524,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.207,0.16],[0.188,-0.007],[0,0],[0,0],[-0.142,0.045],[-0.734,-0.461],[0,0],[0.094,-0.03]],"o":[[-0.207,-0.16],[-0.188,0.008],[0,0],[0,0],[0.141,-0.046],[0.735,0.461],[0,0],[-0.095,0.03]],"v":[[1.386,0.774],[-0.69,0.672],[-4.874,1.298],[-4.051,-0.097],[1.194,-1.253],[4.139,0.171],[4.816,1.103],[2.154,1.12]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.426,354.669],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 525","np":4,"cix":2,"ix":525,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[2.496,1.481],[-0.623,0.6],[-0.312,-1.642],[0,0]],"v":[[-1.267,-2.428],[1.589,1.828],[0.162,1.589],[-1.589,-1.751]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.668,349.991],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 526","np":4,"cix":2,"ix":526,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.336,-0.102],[-0.325,-0.218],[0.025,-0.426],[0.117,-0.086],[0.115,0.06],[0.026,0.233],[0.096,0.05],[0,0],[-0.041,0.222]],"o":[[0.335,0.102],[0.325,0.217],[-0.025,0.424],[-0.116,0.085],[-0.115,-0.059],[-0.026,-0.232],[-0.095,-0.05],[-0.345,-0.179],[0.042,-0.221]],"v":[[-1.183,-1.476],[0.817,-0.558],[1.748,0.413],[1.599,1.456],[1.203,1.518],[0.949,1.069],[0.466,0.453],[-0.232,0.163],[-1.732,-0.787]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[162.128,372.124],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 527","np":4,"cix":2,"ix":527,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.516,-1.062],[-1.227,-0.525],[-1.339,-0.417],[-2.011,-1.158],[-0.832,-0.431],[-0.064,-0.2],[-0.569,-0.296],[-0.569,-0.296],[0,0],[0.708,-1.917],[-2.32,-1.205],[-0.627,0.789],[0,0],[-1.119,-0.304],[-0.525,-0.273],[-0.459,-0.294],[-0.308,-0.049],[-0.242,-0.069],[-0.219,-0.114],[0,0],[-0.846,-0.357],[-0.256,0.119],[0,0],[-0.497,-0.063],[-0.15,0.51],[0.406,0.238],[0,0],[0.07,0.568],[0.251,0.213],[0,0],[0.656,0.713],[0,0],[-0.003,0.217],[0,0],[0.041,0.13],[0,0],[-0.004,0.261],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.158,-0.308],[1.089,-2.333],[0,0],[0.597,-0.191],[0,0],[0,0],[1.087,-0.494],[0.429,-0.725],[1.03,0.369],[0.294,-0.572]],"o":[[0,0],[1.227,0.526],[1.338,0.417],[0,0],[0.831,0.433],[0.063,0.201],[0.569,0.295],[0.569,0.296],[0,0],[-0.709,1.918],[2.32,1.205],[0.628,-0.789],[0,0],[1.12,0.303],[0.525,0.273],[0.459,0.294],[0.308,0.048],[0.241,0.071],[0.219,0.113],[0,0],[0.847,0.355],[0.255,-0.118],[0,0],[0.496,0.061],[0.15,-0.508],[-0.406,-0.239],[0,0],[-0.069,-0.568],[-0.252,-0.215],[0,0],[-0.656,-0.713],[0,0],[0.002,-0.218],[0,0],[-0.042,-0.131],[0,0],[0.003,-0.261],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.159,0.309],[-1.089,2.333],[0,0],[-0.598,0.192],[0,0],[0,0],[-1.086,0.495],[0,0],[-1.031,-0.368],[-0.294,0.572]],"v":[[-29.099,4.568],[-28.263,5.733],[-23.456,7.172],[-13.888,11.753],[-12.913,13.094],[-11.827,14.216],[-9.57,16.839],[-8.023,18.144],[-6.36,19.008],[-8.724,24.469],[-7.206,29.607],[-2.743,28.692],[0.885,22.716],[4.89,24.742],[7.592,25.42],[8.998,25.705],[10.77,26.681],[11.961,26.63],[13.041,26.579],[22.478,31.732],[24.091,33.41],[26.835,34.89],[27.207,34.329],[29.283,35.324],[30.19,34.424],[28.766,31.784],[22.577,28.4],[23.131,26.619],[21.677,21.334],[15.246,17.881],[13.906,15.558],[11.769,13.748],[17.484,3.31],[16.815,2.875],[17.713,1.045],[17.251,0.63],[19.81,-4.515],[19.698,-5.186],[31.615,-27.882],[30.346,-28.541],[19.985,-8.392],[19.591,-8.596],[29.641,-28.574],[29.071,-28.758],[19.114,-9.178],[18.856,-9.647],[28.657,-29.14],[24.695,-31.143],[15.986,-14.204],[14.892,-14.773],[23.447,-31.736],[22.835,-32.054],[14.464,-15.776],[13.72,-16.162],[22.068,-32.397],[18.48,-34.371],[17.87,-34.912],[17.282,-35.385],[9.788,-20.379],[9.396,-20.695],[9.612,-22.087],[9.063,-22.205],[5.58,-15.43],[5.094,-15.348],[-1.439,-1.348],[-4.387,4.925],[-5.816,4.684],[-8.195,4.564],[-16.756,0.506],[-18.857,1.031],[-23.08,3.743],[-28.268,1.214],[-31.161,1.663]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.328999986836,0.161000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[136.592,340.403],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 528","np":4,"cix":2,"ix":528,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-0.747,-15.272],[12.825,-8.22],[0.747,15.271],[-12.825,8.219]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.677999997606,0.545000023935,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[155.195,319.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 529","np":4,"cix":2,"ix":529,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.224,-2.305],[0,0]],"o":[[0,0],[-0.384,2.093],[1.223,2.306],[-2.306,-4.925]],"v":[[-3.009,-7.531],[-3.075,-7.628],[0.382,2.305],[3.459,7.628]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.144999994016,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.317,103.786],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 530","np":4,"cix":2,"ix":530,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.455,-0.975],[0,0],[0.052,0.18],[0.258,0.897],[0,0]],"o":[[0.455,0.976],[0,0],[-0.051,-0.179],[-0.258,-0.896],[0,0]],"v":[[-0.247,0.887],[1.085,2.831],[0.942,1.999],[-0.358,-1.042],[-1.085,-2.831]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.144999994016,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.849,94.111],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 531","np":4,"cix":2,"ix":531,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.01,-3.242],[-0.392,-2.237],[0,0],[-0.081,1.131],[2.573,8.539]],"o":[[0,0],[1.011,3.243],[0.335,1.911],[0,0],[0.08,-1.131],[-2.572,-8.538]],"v":[[-4.982,-16.176],[-0.083,-1.796],[3.755,12.747],[4.393,16.176],[4.902,14.318],[1.665,1.794]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.144999994016,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[128.301,86.358],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 532","np":4,"cix":2,"ix":532,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.144,-0.544],[-0.299,-0.437],[-0.432,-0.297],[0,0],[0.122,1.111],[-0.245,2.377],[-0.157,-0.029],[-0.175,-0.522],[0,0],[0,0],[0.175,-1.546],[0.183,0.034],[-0.286,4.521],[0,0],[0.206,-3.637],[-0.187,-0.606],[-0.185,-0.47],[0,0],[0,0]],"o":[[0.144,0.544],[0.299,0.436],[0.433,0.298],[0,0],[-0.121,-1.112],[0.246,-2.377],[0.158,0.029],[0.176,0.522],[-0.667,-3.308],[0,0],[-0.175,1.547],[-0.183,-0.034],[0.287,-4.52],[-0.668,1.427],[-0.205,3.637],[0.187,0.606],[0.185,0.469],[-0.628,-0.116],[0,0]],"v":[[-1.935,7.67],[-1.132,9.643],[-0.256,10.92],[1.141,11.424],[0.396,9.136],[0.176,0.874],[1.129,-2.407],[1.711,-0.557],[2.238,0.412],[1.256,-9.896],[-0.342,0.451],[-0.907,3.831],[-1.255,-2.549],[0.209,-11.424],[-1.806,-2.351],[-1.436,4.06],[-0.835,5.805],[-0.406,8.633],[-2.238,5.627]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.144999994016,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[119.965,77.019],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 533","np":4,"cix":2,"ix":533,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.131,-0.191],[-0.295,-0.055],[-0.089,-0.267],[0.065,0.096],[0,0],[-0.088,-0.128],[-0.241,-0.045],[-0.112,-0.299],[0.064,-0.35],[-0.112,-0.299],[0,0],[0,0],[0,0],[0,0],[0.288,-0.058],[0.484,0.229],[0.393,0.573],[0.365,0.123],[0.319,-0.08],[0.365,0.123],[0.194,0.148],[0.066,0.095],[-0.127,0.088],[0.109,0.159],[0,0],[0,0],[-0.03,0.162],[0,0],[0.107,0.02],[0,0],[0,0],[0.19,-0.132],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.133,-0.025],[0,0],[0,0],[0.034,-0.188],[0,0],[0,0],[-0.19,0.132],[0,0],[0,0],[0.134,0.025],[0.134,0.025],[0.175,0.256],[0.35,0.51],[0.151,0.084],[0.216,0.179],[0.087,0.128],[0.153,0.223],[0.248,0.157],[0.161,0.03],[0,0],[0,0],[0.109,0.159],[-0.105,0.119],[0.109,0.159],[-0.389,0.458],[0.08,0.321],[0.377,0.209],[0.096,-0.066],[0.111,0.299],[0.128,0.664],[0,0],[0.137,-0.142],[0,0],[0.516,-0.545],[0,0],[-0.627,0.245],[-0.095,0.066],[0.049,-0.269],[-0.424,0.2],[-0.214,-0.04],[0.027,-0.149],[0.7,-0.344],[0.168,-0.028],[0,0],[0,0],[-0.585,0.922],[-0.107,-0.02],[0.286,-0.197],[0.178,-0.218],[0.025,-0.135],[-0.204,-0.094],[-0.285,0.197],[-0.283,0.337],[-0.175,-0.254],[0.096,-0.066],[0,0],[-0.321,-0.059],[-0.294,-0.054],[-0.133,-0.331],[-0.307,0.165],[-0.173,-0.115],[-0.068,-0.235],[0.254,-0.175],[-0.222,0.154],[-0.292,-0.222],[-0.109,-0.159],[-0.431,-0.219],[-0.509,-0.4],[-0.284,-0.414],[-0.065,-0.095],[0.006,0.419],[-0.256,0.036],[-0.136,-0.471],[-0.087,-1.491],[0.431,0.22],[0.058,0.289],[-0.054,0.296],[0.109,0.16],[0,0],[-0.026,-0.311],[-0.132,-0.191],[0,0],[-0.457,-0.53],[-0.222,1.212],[0.014,0.225],[0,0],[-0.18,-0.534],[0.177,-1.721],[0,0],[-0.134,-0.025],[0.049,-0.269],[-0.257,-0.103],[-0.244,0.121],[0.109,0.16],[0,0],[-0.131,-0.191],[-0.131,-0.191],[-0.13,-0.191],[0,0],[0.014,0.226],[-0.03,0.162],[0.109,0.159],[0.014,0.226],[-0.105,0.12],[0,0],[0.06,0.429],[0,0],[-0.059,-0.289],[-0.197,-0.287],[0,0],[0.101,0.353],[-0.05,0.269],[-0.307,0.165],[0,0],[0.066,0.095],[0,0],[-0.044,0.242],[0.095,-0.066],[0.066,0.096],[-0.049,0.27],[0,0],[-0.066,-0.095],[0.095,-0.066],[0,0],[0,0],[0,0],[-0.087,-0.128],[-0.241,-0.044],[-0.087,-0.128],[-0.244,0.121],[-0.058,-0.289],[0.346,-0.381],[0,0],[-0.309,0.026],[-0.428,-0.079],[-0.248,-0.157],[-0.284,0.337],[0,0],[-0.28,-0.135],[-0.554,0.148],[-0.788,-0.536],[0,0],[0.333,0.146],[0,0],[0.04,-0.215],[0.476,-1.693],[-1.357,-0.001],[0.455,-0.973],[0.309,-0.778],[-0.218,-0.318],[-0.312,-0.113],[-0.928,-1.285],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.132,0.191],[0.196,0.287],[0,0],[0,0],[0,0],[0,0],[0,0],[1.029,1.638],[-0.005,0.333],[-0.081,-0.015],[-0.455,-0.391],[0,0],[0.261,0.382],[0,0],[0.281,0.887],[0,0],[-0.049,0.27],[0.132,0.192],[0,0],[0,0],[-0.223,0.154],[-0.196,0.465],[0.094,0.546],[0.286,0.554],[0,0],[-0.145,0.335],[0.175,0.255],[0.194,0.148],[-0.125,0.227],[0.109,0.159],[0,0]],"o":[[0,0],[0,0],[0.131,0.192],[0.294,0.054],[0.09,0.267],[-0.066,-0.095],[0,0],[0.087,0.127],[0.241,0.045],[0.111,0.299],[-0.064,0.351],[0.111,0.299],[0,0],[0,0],[0,0],[0,0],[-0.287,0.058],[-0.484,-0.228],[-0.393,-0.574],[-0.365,-0.124],[-0.32,0.08],[-0.365,-0.124],[-0.195,-0.147],[-0.065,-0.096],[0.127,-0.087],[-0.11,-0.159],[0,0],[0,0],[0.03,-0.161],[0,0],[-0.107,-0.02],[0,0],[0,0],[-0.191,0.132],[0,0],[0,0],[0,0],[0,0],[0,0],[0.135,0.025],[0,0],[0,0],[-0.035,0.189],[0,0],[0,0],[0.19,-0.131],[0,0],[0,0],[-0.134,-0.024],[-0.134,-0.024],[-0.175,-0.255],[-0.349,-0.51],[-0.151,-0.083],[-0.216,-0.179],[-0.088,-0.127],[-0.153,-0.223],[-0.248,-0.157],[-0.161,-0.03],[0,0],[0,0],[-0.109,-0.16],[0.105,-0.12],[-0.109,-0.16],[0.388,-0.457],[-0.08,-0.321],[-0.377,-0.209],[-0.094,0.066],[-0.111,-0.299],[-0.127,-0.663],[0,0],[-0.137,0.141],[0.247,0.769],[-0.515,0.545],[0.243,1.241],[0.627,-0.246],[0.095,-0.066],[-0.049,0.269],[0.425,-0.2],[0.215,0.04],[-0.027,0.148],[-0.7,0.343],[-0.168,0.028],[0,0],[0,0],[0.584,-0.921],[0.107,0.019],[-0.285,0.198],[-0.178,0.217],[-0.024,0.135],[0.205,0.093],[0.285,-0.198],[0.284,-0.338],[0.174,0.256],[-0.095,0.066],[0,0],[0.322,0.06],[0.295,0.055],[0.134,0.331],[0.307,-0.166],[0.173,0.115],[0.067,0.235],[-0.254,0.176],[0.222,-0.154],[0.292,0.221],[0.11,0.16],[0.43,0.219],[0.508,0.401],[0.284,0.415],[0.066,0.096],[-0.007,-0.419],[0.256,-0.036],[0.135,0.47],[0.087,1.492],[-0.431,-0.218],[-0.058,-0.289],[0.054,-0.297],[-0.11,-0.159],[0,0],[0.027,0.311],[0.131,0.191],[0,0],[0.457,0.53],[0.222,-1.212],[-0.014,-0.225],[0,0],[0.179,0.534],[-0.176,1.721],[0.523,0.014],[0.134,0.025],[-0.05,0.269],[0.259,0.103],[0.244,-0.122],[-0.109,-0.159],[0,0],[0.131,0.192],[0.132,0.192],[0.132,0.192],[0,0],[-0.014,-0.225],[0.029,-0.162],[-0.109,-0.16],[-0.014,-0.225],[0.105,-0.12],[0,0],[-0.06,-0.428],[0,0],[0.057,0.289],[0.196,0.286],[0,0],[-0.102,-0.352],[0.049,-0.269],[0.308,-0.166],[0,0],[-0.065,-0.096],[0,0],[0.045,-0.242],[-0.095,0.066],[-0.066,-0.096],[0.049,-0.269],[0,0],[0.066,0.096],[-0.095,0.066],[0,0],[0,0],[0,0],[0.088,0.127],[0.241,0.045],[0.088,0.128],[0.244,-0.122],[0.057,0.289],[-0.347,0.381],[0,0],[0.31,-0.026],[0.429,0.08],[0.248,0.157],[0.283,-0.338],[0,0],[0.28,0.135],[0.553,-0.148],[0.788,0.535],[0,0],[-0.333,-0.145],[0,0],[-0.039,0.215],[-0.477,1.694],[1.357,0.001],[-0.456,0.974],[-0.308,0.778],[0.219,0.319],[0.312,0.114],[0.928,1.286],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.13,-0.192],[-0.197,-0.287],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.029,-1.638],[0.006,-0.333],[0.08,0.015],[0.455,0.39],[0,0],[-0.263,-0.383],[0,0],[-0.281,-0.887],[0,0],[0.05,-0.269],[-0.131,-0.191],[0,0],[0,0],[0.222,-0.154],[0.196,-0.465],[-0.094,-0.547],[-0.286,-0.554],[0,0],[0.145,-0.335],[-0.174,-0.255],[-0.195,-0.147],[0.125,-0.228],[-0.11,-0.16],[0,0]],"v":[[15.677,-19.352],[14.888,-19.275],[15.115,-16.283],[16.213,-15.773],[16.868,-14.816],[16.067,-14.826],[15.281,-15.222],[15.061,-14.928],[15.966,-14.427],[16.467,-13.833],[16.198,-12.519],[16.481,-11.492],[15.822,-11.224],[15.642,-10.394],[16.119,-3.624],[9.311,-14.99],[8.559,-15.269],[6.821,-15.758],[4.976,-17.63],[2.123,-19.745],[0.437,-19.612],[-1.246,-19.951],[-3.129,-20.857],[-4.343,-21.944],[-4.171,-22.581],[-4.546,-23.402],[-5.569,-23.87],[-6.711,-25.194],[-8.036,-27.333],[-4.027,-31.379],[-8.827,-28.76],[-9.281,-29.15],[-7.266,-33.649],[-10.859,-29.609],[-11.782,-29.864],[-12.259,-34.518],[-13.222,-29.713],[-14.045,-29.002],[-18.198,-32.332],[-15.3,-27.898],[-16.196,-27.089],[-21.744,-27.337],[-16.89,-25.715],[-16.556,-24.817],[-19.607,-22.375],[-16.156,-23.825],[-15.539,-23.265],[-17.096,-21.716],[-17.753,-21.309],[-19.394,-21.724],[-20.383,-22.826],[-21.863,-24.575],[-24.333,-26.814],[-26.225,-28.278],[-27.138,-29.338],[-30.164,-33.684],[-31.03,-34.401],[-32.619,-34.194],[-32.956,-34.619],[-32.814,-35.093],[-33.263,-35.816],[-33.111,-36.345],[-33.641,-36.777],[-33.013,-37.636],[-32.594,-38.866],[-34.127,-40.625],[-36.212,-39.981],[-36.595,-40.609],[-36.635,-42.51],[-37.574,-43.881],[-37.517,-42.227],[-39.516,-45.075],[-39.427,-41.328],[-40.599,-41.127],[-38.496,-39.151],[-37.146,-40.321],[-37.08,-39.474],[-36.342,-39.421],[-34.821,-39.863],[-34.589,-39.388],[-37.116,-37.615],[-38.483,-36.334],[-39.153,-35.264],[-38.575,-35.241],[-38.237,-36.181],[-35.66,-38.153],[-35.696,-37.659],[-37.487,-36.041],[-38.086,-35.345],[-37.875,-34.832],[-36.914,-35.069],[-35.912,-35.722],[-34.868,-35.975],[-35.794,-35.004],[-36.289,-34.567],[-35.879,-34.241],[-35.363,-34.034],[-34.648,-33.4],[-33.832,-33.165],[-32.83,-33.342],[-32.428,-32.21],[-33.239,-31.414],[-32.693,-31.368],[-31.045,-31.146],[-28.664,-27.059],[-27.04,-26.396],[-23.473,-24.4],[-21.398,-22.123],[-18.295,-17.595],[-18.176,-18.241],[-17.746,-20.138],[-16.889,-18.615],[-17.032,-14.661],[-17.757,-11.761],[-18.656,-13.959],[-18.681,-14.882],[-19.126,-16.079],[-20.163,-16.771],[-19.754,-14.469],[-19.417,-13.432],[-18.839,-14.021],[-17.891,-10.727],[-16.633,-12.304],[-16.786,-16.759],[-16.637,-18.179],[-16.183,-17.176],[-16.194,-11.527],[-16.848,-9.616],[-15.883,-10.049],[-15.661,-8.839],[-14.945,-8.066],[-14.05,-8.262],[-13.975,-8.973],[-14.801,-11.269],[-14.111,-10.195],[-12.959,-8.172],[-12.589,-7.018],[-11.951,-6.565],[-11.898,-7.308],[-12.032,-8.39],[-13.151,-10.295],[-13.728,-11.683],[-13.743,-12.66],[-12.511,-11.068],[-12.411,-12.219],[-12.193,-14.016],[-10.805,-5.713],[-10.454,-3.699],[-8.75,-3.328],[-11.771,-15.107],[-11.745,-16.912],[-10.498,-17.07],[-9.863,-17.51],[-12.77,-21.75],[-12.676,-22.568],[-12.085,-23.071],[-12.617,-23.643],[-13.25,-23.816],[-12.985,-24.658],[-12.595,-25.727],[-10.403,-25.6],[-11.255,-24.727],[-11.439,-24.177],[-10.424,-22.764],[-10.983,-22.283],[-10.935,-21.939],[-10.27,-21.789],[-9.865,-21.129],[-9.046,-21.367],[-8.547,-20.913],[-9.349,-19.558],[-10.815,-18.966],[-9.855,-19.067],[-8.462,-18.81],[-6.164,-18.05],[-4.949,-17.574],[-2.877,-18.305],[-1.357,-18.134],[0.276,-18.278],[3.024,-17.407],[5.457,-14.813],[0.801,-16.761],[0.559,-16.499],[22.375,12.873],[19.103,19.7],[21.114,21.27],[22.36,23.087],[18.995,29.508],[18.848,31.067],[19.864,31.116],[21.899,32.857],[23.512,37.053],[20.265,39.208],[18.656,43.002],[20.076,45.075],[20.14,45.031],[40.599,30.862],[40.074,30.097],[38.969,29.029],[37.182,28.197],[36.548,27.273],[35.724,27.844],[36.165,28.761],[34.198,30.123],[29.491,22.709],[28.085,19.498],[28.649,19.296],[34.002,26.356],[35.205,27.497],[34.169,26.053],[32.695,23.97],[32.563,21.663],[28.121,15.523],[28.727,14.633],[26.891,11.955],[27.004,10.89],[18.979,1.025],[19.443,0.61],[19.959,-0.547],[20.395,-3.529],[19.855,-6.023],[17.862,-9.204],[18.468,-10.094],[18.47,-11.318],[17.962,-12.471],[17.818,-13.499],[17.634,-15.064],[16.202,-16.471]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.144999994016,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[123.667,81.505],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 534","np":4,"cix":2,"ix":534,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.646,6.982],[-3.286,-5.465],[0,0],[0.699,1.02]],"o":[[0,0],[3.285,5.465],[0,0],[-0.699,-1.021]],"v":[[-7.863,-13.761],[-0.826,-1.148],[7.863,13.761],[6.77,12.583]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.144999994016,0.493999974868,0.510000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.511,85.627],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 535","np":4,"cix":2,"ix":535,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.141,0.577],[-0.225,-0.443],[0,0],[0.35,0.916],[0.041,-1.187],[-0.029,-0.101],[-0.108,0.075],[-0.091,-0.017],[-0.012,-0.192],[0.114,-0.239],[-0.057,-0.2],[0,0],[-0.335,0.032],[-0.175,-0.197],[0,0],[-0.083,-0.063],[-0.12,-0.117],[0,0],[-0.029,-0.1],[0,0],[0,0],[-0.029,0.16],[0,0],[0,0],[-0.047,-0.127],[-0.085,-0.181],[-0.167,-0.243],[0,0],[-0.205,-0.038],[-0.165,-0.125],[-0.093,-0.135],[0,0],[0,0],[0.112,0.162],[0,0],[0,0],[0,0],[0,0],[-0.056,-0.081],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.148,-0.215],[0,0],[-0.123,-0.179],[-0.074,-0.107],[0,0],[-0.025,-0.036],[-0.097,-0.143],[-0.041,-0.059],[-0.028,-0.067],[-0.033,-0.048],[0,0],[0,0],[0,0],[0.036,-0.024],[0,0],[0,0],[0,0],[0,0],[0.141,0.026],[0.072,0.055],[0,0],[0.851,1.243],[0.277,0.301],[0.49,0.613],[0.279,0.406],[0.113,0.062],[1.144,1.67],[0,0],[0.643,0.119],[0.618,0.594],[0.488,0.917],[0,0],[0.569,0.523],[0.318,1.436],[0,0],[0.328,0.478],[0,0],[0.195,0.182],[0,0],[0.366,0.169],[-0.04,0.556],[0,0],[0.415,-0.111],[0.636,0.723],[0.296,0.994],[0.036,0.257],[0.25,0.108],[0.551,0.394],[1.485,1.756],[0.275,0.197],[0.254,0.142],[0.482,0.653],[0.389,0.26],[0.132,0.295],[0.065,0.095],[0.272,-0.013],[0,0],[0.422,0.307],[0.375,-0.118],[0.115,0.167],[-0.305,0.987],[0,0],[0.179,0.158],[0.062,0.091],[0.002,0.668],[0,0],[-0.24,-0.045]],"o":[[0,0],[0.224,0.444],[0,0],[0,0],[-0.041,1.186],[0.029,0.099],[0.108,-0.074],[0.091,0.017],[0.013,0.191],[-0.114,0.239],[0.058,0.199],[0,0],[0.335,-0.033],[0.176,0.198],[0,0],[0.083,0.062],[0.12,0.116],[0,0],[0.028,0.1],[0,0],[0,0],[0.03,-0.16],[0,0],[0,0],[0.047,0.127],[0.084,0.181],[0.167,0.244],[0,0],[0.204,0.037],[0.165,0.125],[0,0],[0,0],[0,0],[-0.111,-0.163],[0,0],[0,0],[0,0],[0,0],[0.056,0.081],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.147,0.215],[0,0],[0.122,0.179],[0.074,0.108],[0,0],[0.024,0.035],[0.097,0.142],[0.04,0.06],[0.029,0.067],[0.032,0.047],[0,0],[0,0],[0,0],[-0.035,0.025],[0,0],[0,0],[0,0],[0,0],[-0.14,-0.026],[-0.073,-0.055],[0,0],[-0.852,-1.242],[-0.277,-0.302],[-0.49,-0.612],[-0.278,-0.406],[-0.113,-0.063],[-1.145,-1.67],[0,0],[-0.642,-0.119],[-0.617,-0.594],[-0.488,-0.917],[0,0],[-0.569,-0.522],[-0.319,-1.437],[0,0],[-0.327,-0.478],[0,0],[-0.195,-0.182],[0,0],[-0.367,-0.169],[0.039,-0.556],[0,0],[-0.415,0.111],[-0.635,-0.723],[-0.295,-0.993],[-0.036,-0.257],[-0.25,-0.109],[-0.55,-0.394],[-1.484,-1.757],[-0.275,-0.197],[-0.255,-0.141],[-0.482,-0.652],[-0.388,-0.259],[-0.133,-0.296],[-0.066,-0.096],[-0.272,0.012],[0,0],[-0.42,-0.308],[-0.374,0.118],[-0.114,-0.168],[0.306,-0.986],[0,0],[-0.178,-0.158],[-0.063,-0.09],[-0.002,-0.668],[0,0],[0.242,0.044]],"v":[[-37.618,-43.177],[-36.311,-41.966],[-35.938,-41.306],[-35.918,-42.957],[-34.346,-39.533],[-34.273,-37.427],[-33.958,-36.968],[-32.196,-37.469],[-31.222,-36.626],[-31.299,-35.175],[-31.556,-33.52],[-30.703,-32.393],[-29.748,-32.216],[-28.673,-31.923],[-27.885,-30.831],[-23.579,-24.549],[-21.421,-22.849],[-18.625,-20.393],[-17.14,-18.227],[-15.295,-18.028],[-13.039,-18.792],[-11.985,-21.079],[-10.985,-23.329],[-9.981,-24.183],[-5.956,-22.02],[-4.686,-19.704],[-2.889,-17.835],[2.489,-16.248],[3.933,-16.17],[6.311,-14.903],[8.396,-12.673],[10.684,-11.942],[12.109,-12.529],[12.57,-12.609],[12.102,-15.958],[17.295,-16.501],[18.038,-15.238],[18.05,-13.888],[18.586,-13.221],[19.534,-12.361],[19.866,-10.833],[19.933,-9.402],[19.263,-5.802],[20.124,-2.858],[20.214,-0.118],[19.534,2.573],[20.083,4.677],[27.556,15.504],[28.679,18.6],[30.791,20.838],[32.104,21.832],[33.18,23.095],[34.227,25.065],[34.544,26.313],[35.121,27.206],[35.624,27.888],[36.133,28.531],[36.477,28.905],[36.848,29.346],[38.424,31.189],[38.828,31.626],[38.496,32.257],[37.553,32.91],[31.344,37.476],[29.578,40.321],[26.504,42.485],[24.015,43.151],[23.19,42.56],[22.749,42.019],[21.889,39.69],[19.688,36.633],[18.158,35.014],[15.92,32.159],[15.237,31.469],[12.463,27.677],[6.676,18.262],[5.533,17.926],[3.157,16.505],[0.567,11.907],[-0.027,10.887],[-2.376,9.659],[-4.277,5.761],[-6.082,-0.249],[-8.269,-0.779],[-9.136,-3.068],[-10.021,-3.336],[-11.288,-5.031],[-12.526,-5.055],[-13.186,-6.113],[-13.34,-7.769],[-14.39,-6.795],[-16.485,-7.6],[-18.047,-11.311],[-18.544,-14.032],[-18.556,-14.764],[-20.923,-16.684],[-23.195,-19.128],[-26.604,-23.745],[-27.962,-24.32],[-30.139,-27.112],[-31.679,-28.336],[-32.853,-29.742],[-32.979,-30.642],[-33.628,-31.179],[-34.264,-31.902],[-35.22,-31.557],[-36.239,-32.226],[-36.965,-32.569],[-37.008,-34.372],[-36.16,-36.051],[-36.989,-37.31],[-38.164,-38.23],[-38.826,-40.196],[-38.608,-41.616],[-37.803,-40.799]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.33300000359,0.773000021542,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[121.261,78.73],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 536","np":4,"cix":2,"ix":536,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.038,30.58],[23.2,21.794],[-10.607,-16.366],[-23.2,-30.58],[-23.199,-30.556]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[170.409,92.42],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 537","np":4,"cix":2,"ix":537,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[-2.249,10.088],[-1.253,5.833],[2.492,7.914],[2.826,4.155],[5.567,6.197],[6.296,4.126],[-6.297,-10.088],[-5.745,8.367],[-4.088,6.205]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[153.505,71.928],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 538","np":2,"cix":2,"ix":538,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[22.924,10.297],[-10.883,-27.863],[-11.611,-25.791],[-14.354,-27.833],[-14.687,-24.074],[-18.432,-26.156],[-19.429,-21.9],[-21.266,-25.783],[-22.924,-23.621],[-21.385,27.863]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352999997606,0.556999954523,0.607999973671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[170.684,103.917],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 539","np":2,"cix":2,"ix":539,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[9.091,-19.047],[-7.888,-25.911],[-8.765,11.847],[-9.092,25.912],[-9.079,25.898]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[173.428,318.32],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 540","np":4,"cix":2,"ix":540,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[3.574,-5.388],[0.804,-3.655],[-0.212,-6.701],[-2.351,-4.885],[-2.827,-7.391],[-4.311,-6.673],[-4.638,7.392],[4.637,-2.661],[2.586,-2.379]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[168.974,336.84],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 541","np":2,"cix":2,"ix":541,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-16.535,-21.026],[-17.412,16.732],[-15.928,16.014],[-15.452,18.52],[-13.313,16.703],[-12.296,19.75],[-9.528,18.017],[-10.514,21.026],[-8.463,20.744],[17.412,-7.302]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352999997606,0.556999954523,0.607999973671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[182.075,313.435],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 542","np":2,"cix":2,"ix":542,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.727,20.469],[4.822,30.464],[11.31,-13.927],[13.726,-30.464],[13.71,-30.449]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[278.67,98.383],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 543","np":4,"cix":2,"ix":543,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[-5.238,5.529],[-1.8,3.798],[-1.071,7.502],[1.655,5.603],[1.839,8.607],[3.652,7.929],[6.068,-8.607],[-6.068,2.198],[-3.666,2.094]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[286.329,76.527],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 544","np":2,"cix":2,"ix":544,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[15.299,25.113],[21.786,-19.279],[19.975,-18.6],[19.79,-21.605],[17.065,-19.706],[16.336,-23.41],[12.898,-21.678],[14.47,-25.113],[12.068,-25.01],[-21.786,5.13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352999997606,0.556999954523,0.607999973671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[268.194,103.735],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 545","np":2,"cix":2,"ix":545,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[6.665,-29.901],[-13.451,-27.618],[6.146,14.29],[13.447,29.901],[13.451,29.88]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233.759,340.562],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 546","np":4,"cix":2,"ix":546,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[2.903,-9.378],[1.169,-5.878],[-1.463,-8.632],[-2.546,-5.404],[-4.363,-7.876],[-5.408,-6.232],[1.893,9.379],[5.408,-7.004],[3.58,-5.508]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[245.313,361.084],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 547","np":2,"cix":2,"ix":547,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-20.109,-19.086],[-0.511,22.823],[0.534,21.178],[2.35,23.651],[3.433,20.423],[6.065,23.177],[7.799,19.677],[8.476,23.547],[10.304,22.051],[20.109,-23.651]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352999997606,0.556999954523,0.607999973671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[240.417,332.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 548","np":2,"cix":2,"ix":548,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-27.04,-4.975],[-25.066,11.466],[12.898,-5.24],[27.04,-11.462],[27.022,-11.466]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[349.024,204.557],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 549","np":4,"cix":2,"ix":549,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[-8.474,-2.335],[-5.318,-0.969],[-7.818,1.23],[-4.906,2.067],[-7.148,3.593],[-5.667,4.423],[8.474,-1.8],[-6.316,-4.423],[-4.974,-2.949]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[367.59,194.894],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 550","np":2,"cix":2,"ix":550,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-17.39,16.436],[20.576,-0.27],[19.094,-1.1],[21.337,-2.626],[18.424,-3.463],[20.924,-5.662],[17.768,-7.028],[21.269,-7.642],[19.926,-9.116],[-21.336,-16.436]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352999997606,0.556999954523,0.607999973671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[341.347,199.587],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 551","np":2,"cix":2,"ix":551,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.939,4.311],[36.251,-17.694],[-19.262,8.086],[-39.939,17.69],[-39.911,17.693]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[80.966,207.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 552","np":4,"cix":2,"ix":552,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[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]],"v":[[12.577,2.936],[7.833,1.364],[11.439,-1.816],[7.083,-2.695],[10.337,-4.945],[8.102,-5.938],[-12.577,3.665],[9.475,5.938],[7.415,4.065]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.603,221.031],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 553","np":2,"cix":2,"ix":553,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[24.579,-21.997],[-30.934,3.783],[-28.699,4.776],[-31.953,7.026],[-27.597,7.905],[-31.202,11.085],[-26.459,12.657],[-31.621,13.786],[-29.561,15.659],[31.953,21.997]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352999997606,0.556999954523,0.607999973671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[92.639,211.31],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 554","np":2,"cix":2,"ix":554,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Comp 1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118.5,118.5,0],"ix":2},"a":{"a":0,"k":[118.5,118.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[64.805,0],[0,-64.805],[-64.805,0],[0,64.805]],"o":[[-64.805,0],[0,64.805],[64.805,0],[0,-64.805]],"v":[[118.34,1],[1,118.34],[118.34,235.68],[235.68,118.34]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 2"}],"w":237,"h":237,"ip":0,"op":900.000036657751,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/loading_.json b/external/rlottie/example/resource/loading_.json new file mode 100644 index 000000000..106bb5611 --- /dev/null +++ b/external/rlottie/example/resource/loading_.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":29.9700012207031,"ip":0,"op":61.0000024845809,"w":400,"h":400,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 2","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.372,"y":0.995},"o":{"x":0.333,"y":0},"n":"0p372_0p995_0p333_0","t":-1,"s":[-63.707,132,0],"e":[508.793,132,0],"to":[95.4166641235352,0,0],"ti":[-95.4166641235352,0,0]},{"t":65.0000026475043}],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":-1.00000004073083,"op":899.000036617021,"st":-1.00000004073083,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 2","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.663,"y":0.994},"o":{"x":0.333,"y":0},"n":"0p663_0p994_0p333_0","t":47,"s":[-120.707,132,0],"e":[480.293,132,0],"to":[100.166664123535,0,0],"ti":[-100.166664123535,0,0]},{"t":120.0000048877}],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":47.0000019143492,"op":947.000038572101,"st":47.0000019143492,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Master","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[198,192,0],"ix":2},"a":{"a":0,"k":[146.5,5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.858,0],[0,0],[0,-2.858],[2.859,0],[0,0],[0,2.858]],"o":[[0,0],[2.859,0],[0,2.858],[0,0],[-2.858,0],[0,-2.858]],"v":[[-140.825,-5.175],[140.825,-5.175],[146,0.001],[140.825,5.175],[-140.825,5.175],[-146,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725490196,0.325490196078,0.129411764706,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[146.25,5.425],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 5/progressbar-final Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[296,260,0],"ix":2},"a":{"a":0,"k":[76.5,5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.858,0],[0,0],[0,-2.859],[2.859,0],[0,0],[0,2.857]],"o":[[0,0],[2.859,0],[0,2.857],[0,0],[-2.858,0],[0,-2.859]],"v":[[-70.825,-5.175],[70.825,-5.175],[76,0],[70.825,5.175],[-70.825,5.175],[-76,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.329411764706,0.709803921569,0.776470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[76.25,5.425],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 3/progressbar-final Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[164,260,0],"ix":2},"a":{"a":0,"k":[40,5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.858,0],[0,0],[0,-2.859],[2.858,0],[0,0],[0,2.857]],"o":[[0,0],[2.858,0],[0,2.857],[0,0],[-2.858,0],[0,-2.859]],"v":[[-34.325,-5.175],[34.325,-5.175],[39.5,0],[34.325,5.175],[-34.325,5.175],[-39.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.705882370472,0.243137255311,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.75,5.425],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[202.032,208.014,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[99.979,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[4.821,0],[0,0],[0,-4.821],[-4.821,0],[0,0],[0,2.771]],"o":[[0,0],[-4.821,0],[0,4.821],[0,0],[4.821,0],[0,-2.417]],"v":[[337.122,186.522],[59.625,186.49],[52.02,192.229],[59.708,197.449],[337.205,197.481],[343.914,191.917]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 2"}],"w":400,"h":400,"ip":0,"op":900.000036657751,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/loading_animation.json b/external/rlottie/example/resource/loading_animation.json new file mode 100644 index 000000000..c7de61b8e --- /dev/null +++ b/external/rlottie/example/resource/loading_animation.json @@ -0,0 +1 @@ +{"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"形状图层 5","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":8,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":24,"s":[30],"e":[100]},{"t":40}]},"r":{"k":0},"p":{"k":[187.875,77.125,0]},"a":{"k":[-76.375,-2.875,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":8,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":24,"s":[200,200,100],"e":[100,100,100]},{"t":40}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.87,0.42,0.56,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"形状图层 4","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":6,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":22,"s":[30],"e":[100]},{"t":36}]},"r":{"k":0},"p":{"k":[162.125,76.625,0]},"a":{"k":[-76.375,-2.875,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":6,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":22,"s":[200,200,100],"e":[100,100,100]},{"t":36}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.81,0.55,0.82,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"形状图层 3","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":4,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":20,"s":[30],"e":[100]},{"t":32}]},"r":{"k":0},"p":{"k":[135.625,76.625,0]},"a":{"k":[-76.375,-2.875,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":4,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":20,"s":[200,200,100],"e":[100,100,100]},{"t":32}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.47,0.31,0.62,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"形状图层 2","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":2,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":16,"s":[30],"e":[100]},{"t":28}]},"r":{"k":0},"p":{"k":[109.375,76.625,0]},"a":{"k":[-76.625,-3.125,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":2,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":16,"s":[200,200,100],"e":[100,100,100]},{"t":28}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.54,0.81,0.89,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"形状图层 1","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":0,"s":[100],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":12,"s":[30],"e":[100]},{"t":24}]},"r":{"k":0},"p":{"k":[82.625,76.625,0]},"a":{"k":[-76.625,-3.375,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":0,"s":[100,100,100],"e":[200,200,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":12,"s":[200,200,100],"e":[100,100,100]},{"t":24}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[18,18]},"p":{"k":[0,0]},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":0},"lc":1,"lj":1,"ml":4,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"k":[0.34,0.45,0.78,1]},"o":{"k":100},"nm":"填充 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-76.482,-3.482],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":40,"st":0,"bm":0,"sr":1}],"v":"4.5.4","ddd":0,"ip":0,"op":40,"fr":24,"w":280,"h":160} \ No newline at end of file diff --git a/external/rlottie/example/resource/loading_rectangles.json b/external/rlottie/example/resource/loading_rectangles.json new file mode 100644 index 000000000..eeb223580 --- /dev/null +++ b/external/rlottie/example/resource/loading_rectangles.json @@ -0,0 +1 @@ +{"ip":0,"fr":60,"v":"5.1.20","assets":[],"layers":[{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":16,"hix":10,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[35],"e":[42],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":20,"s":[42],"e":[42],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":153,"s":[42],"e":[35],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":173,"s":[35],"e":[35],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":179}]},"y":{"a":0,"k":12}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":20,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":153,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":173}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":15,"hix":14,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[34.961],"e":[42],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":20,"s":[42],"e":[42],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":153,"s":[42],"e":[35],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":173}]},"y":{"a":0,"k":20.509}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":20,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":153,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":173}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":14,"hix":3,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[35],"e":[42],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":20,"s":[42],"e":[42],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":153,"s":[42],"e":[35],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":173}]},"y":{"a":0,"k":30}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":20,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":153,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":173}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":13,"hix":6,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[35],"e":[42],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":20,"s":[42],"e":[42],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":153,"s":[42],"e":[35],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":173}]},"y":{"a":0,"k":39}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":20,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":153,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":173}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":12,"hix":9,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[26],"e":[26],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":21,"s":[26],"e":[33],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":41,"s":[33],"e":[33],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":132,"s":[33],"e":[26],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":152}]},"y":{"a":0,"k":12}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":21,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":41,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":132,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":152}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":11,"hix":13,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[26],"e":[26],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":21,"s":[26],"e":[33],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":41,"s":[33],"e":[33],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":132,"s":[33],"e":[26],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":152}]},"y":{"a":0,"k":21}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":21,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":41,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":132,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":152}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":10,"hix":4,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[26],"e":[26],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":21,"s":[26],"e":[33],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":41,"s":[33],"e":[33],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":132,"s":[33],"e":[26],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":152}]},"y":{"a":0,"k":30}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":21,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":41,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":132,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":152}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":9,"hix":5,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[26],"e":[26],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":21,"s":[26],"e":[33],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":41,"s":[33],"e":[33],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":132,"s":[33],"e":[26],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":152}]},"y":{"a":0,"k":39}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":21,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":41,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":132,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":152}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":8,"hix":16,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[17],"e":[17],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":43,"s":[17],"e":[24],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":63,"s":[24],"e":[24],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":111,"s":[24],"e":[17],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":131}]},"y":{"a":0,"k":12}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":43,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":63,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":111,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":131}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":7,"hix":12,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[17],"e":[17],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":43,"s":[17],"e":[24],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":63,"s":[24],"e":[24],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":111,"s":[24],"e":[17],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":131}]},"y":{"a":0,"k":21}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":43,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":63,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":111,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":131}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":6,"hix":8,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[17],"e":[17],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":43,"s":[17],"e":[24],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":63,"s":[24],"e":[24],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":111,"s":[24],"e":[17],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":131}]},"y":{"a":0,"k":30}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":43,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":63,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":111,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":131}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":5,"hix":1,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[17],"e":[17],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":43,"s":[17],"e":[24],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":63,"s":[24],"e":[24],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":111,"s":[24],"e":[17],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":131}]},"y":{"a":0,"k":39}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":43,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":63,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":111,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":131}]},"s":{"a":0,"k":[100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":4,"hix":11,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[8],"e":[8],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":64,"s":[8],"e":[15],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":84,"s":[15],"e":[15],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":90,"s":[15],"e":[8],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":110}]},"y":{"a":0,"k":12}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":64,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":84,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":90,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":110}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":3,"hix":15,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[8],"e":[8],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":64,"s":[8],"e":[15],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":84,"s":[15],"e":[15],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":90,"s":[15],"e":[8],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":110}]},"y":{"a":0,"k":21}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":64,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":84,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":90,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":110}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":2,"hix":2,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[8],"e":[8],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":64,"s":[8],"e":[15],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":84,"s":[15],"e":[15],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":90,"s":[15],"e":[8],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":110}]},"y":{"a":0,"k":30}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":64,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":84,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":90,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":110}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179},{"ty":4,"nm":"Rectangle","ip":0,"st":0,"ind":1,"hix":7,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[3.5,3.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[8],"e":[8],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":64,"s":[8],"e":[15],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":84,"s":[15],"e":[15],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":90,"s":[15],"e":[8],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":110}]},"y":{"a":0,"k":39}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":64,"s":[0],"e":[89.95437383553926],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":84,"s":[89.95437383553926],"e":[89.95437383553926],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":90,"s":[89.95437383553926],"e":[0],"i":{"x":[0.165],"y":[1]},"o":{"x":[0.075],"y":[0.82]}},{"t":110}]},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","it":[{"ty":"rc","s":{"a":0,"k":[7,7]},"r":{"a":0,"k":0},"p":{"a":0,"k":[103.5,203.5]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1},{"ty":"fl","o":{"a":0,"k":100},"r":2,"c":{"a":0,"k":[0.07450980392156863,0.6941176470588235,0.8235294117647058,1]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-100,-200]},"r":{"a":0,"k":0}}]}],"op":179}],"op":179,"w":50,"h":50} \ No newline at end of file diff --git a/external/rlottie/example/resource/looping_landscape_+_plane_+_clouds.json b/external/rlottie/example/resource/looping_landscape_+_plane_+_clouds.json new file mode 100644 index 000000000..69667d5ee --- /dev/null +++ b/external/rlottie/example/resource/looping_landscape_+_plane_+_clouds.json @@ -0,0 +1 @@ +{"v":"5.1.15","fr":29.9700012207031,"ip":0,"op":181.000007372281,"w":500,"h":500,"nm":"Comp 3","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"airplane Outlines Comp 2","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":250,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.483],"y":[1]},"o":{"x":[0.522],"y":[0]},"n":["0p483_1_0p522_0"],"t":0,"s":[286],"e":[247]},{"i":{"x":[0.483],"y":[1]},"o":{"x":[0.522],"y":[0]},"n":["0p483_1_0p522_0"],"t":45,"s":[247],"e":[286]},{"i":{"x":[0.483],"y":[1]},"o":{"x":[0.522],"y":[0]},"n":["0p483_1_0p522_0"],"t":90,"s":[286],"e":[247]},{"i":{"x":[0.483],"y":[1]},"o":{"x":[0.522],"y":[0]},"n":["0p483_1_0p522_0"],"t":135,"s":[247],"e":[286]},{"t":180.00000733155}],"ix":4}},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":500,"h":500,"ip":0,"op":181.000007372281,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"airplane Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":171,"ix":3},"y":{"a":0,"k":156,"ix":4}},"a":{"a":0,"k":[308,162,0],"ix":1},"s":{"a":0,"k":[33,33,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.598,1.031],[0.598,1.926],[1.367,2.859],[1.463,3.714],[3.834,9.806],[1.497,3.899],[-1.59,1.074],[-2.369,0.222]],"o":[[-2.597,-1.031],[-0.943,-3.036],[-1.723,-3.603],[-3.859,-9.796],[-1.521,-3.891],[-0.562,-1.466],[2.121,-1.434],[5.039,-0.471]],"v":[[14.439,35.096],[9.947,33.409],[5.171,22.045],[0.63,10.96],[-10.921,-18.438],[-15.535,-30.092],[-15.447,-34.507],[-10.602,-35.656]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388000009574,0.109999997008,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[135.925,110.265],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.926,-2.258],[5.937,-0.916],[3.381,-0.041],[0.462,1.437],[0.228,1.682],[-0.76,0.55],[-0.841,-0.027],[-3.235,0.843],[-1.475,0.757],[-1.577,-0.747]],"o":[[-4.423,4.373],[-3.344,0.516],[-1.515,0.019],[-0.517,-1.606],[-0.113,-0.838],[0.675,-0.488],[3.344,0.11],[1.6,-0.418],[1.538,-0.789],[2.697,1.278]],"v":[[15.802,-0.585],[-1.706,6.298],[-11.804,7.074],[-14.306,5.769],[-14.953,0.346],[-15.042,-3.188],[-10.771,-2.931],[-0.857,-4.084],[3.778,-5.748],[7.276,-6.459]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[420.578,125.587],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.37,-2.974],[3.221,0.231],[-0.021,2.561],[-3.424,-0.271]],"o":[[-0.138,2.891],[-3.424,-0.246],[0.028,-3.477],[3.599,0.285]],"v":[[3.543,1.655],[-0.827,5.514],[-3.583,-1.527],[0.652,-5.475]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[246.836,143.219],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.219,-2.11],[0.935,-0.653],[0.791,0.21],[0.147,2.178],[-1.083,0.816],[-0.98,-0.109]],"o":[[-0.056,1.165],[-0.742,0.519],[-2.676,-0.711],[-0.077,-1.146],[0.8,-0.602],[2.792,0.308]],"v":[[3.586,2.477],[2.769,5.208],[-1.883,5.585],[-3.608,-1.783],[-2.914,-5.193],[1.768,-5.628]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233.43,143.281],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.305,-1.54],[1.409,-0.465],[0.62,0.345],[-0.007,1.447],[-0.196,1.413],[-0.959,0.446],[-0.998,-0.352],[0.005,-1.349]],"o":[[-0.069,1.452],[-0.695,0.229],[-1.574,-0.881],[0.008,-1.423],[0.153,-1.107],[1.008,-0.467],[1.355,0.478],[-0.005,1.658]],"v":[[3.754,2.898],[2.365,5.494],[-2.484,5.459],[-3.348,0.791],[-3.503,-3.577],[-2.383,-5.202],[2.234,-5.453],[3.695,-2.683]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[220.185,143.344],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.342,-2.738],[4.203,0.301],[-0.02,2.559],[-3.424,-0.271]],"o":[[-0.161,3.412],[-3.425,-0.246],[0.029,-3.479],[3.149,0.249]],"v":[[3.726,0.217],[-0.643,5.48],[-3.4,-1.56],[0.836,-5.51]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[284.039,142.455],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.219,-2.11],[0.934,-0.653],[0.791,0.21],[0.147,2.178],[-1.083,0.816],[-0.98,-0.109]],"o":[[-0.056,1.165],[-0.743,0.519],[-2.675,-0.711],[-0.077,-1.145],[0.8,-0.602],[2.793,0.308]],"v":[[3.585,2.477],[2.769,5.208],[-1.884,5.585],[-3.609,-1.783],[-2.915,-5.193],[1.767,-5.628]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[271.62,142.483],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.305,-1.541],[1.41,-0.464],[0.619,0.346],[-0.007,1.447],[-0.196,1.414],[-0.959,0.446],[-0.998,-0.352],[0.005,-1.349]],"o":[[-0.068,1.451],[-0.695,0.229],[-1.575,-0.881],[0.008,-1.423],[0.154,-1.107],[1.008,-0.467],[1.355,0.478],[-0.005,1.658]],"v":[[3.754,2.899],[2.365,5.494],[-2.484,5.459],[-3.348,0.791],[-3.503,-3.577],[-2.384,-5.202],[2.234,-5.453],[3.695,-2.683]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[259.376,142.545],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.21,-2.737],[3.975,-0.155],[0.173,2.595],[-3.625,-0.115]],"o":[[0,3.365],[-3.587,0.141],[-0.239,-3.581],[3.095,0.099]],"v":[[3.628,0.036],[-0.231,5.519],[-3.598,-1.002],[0.403,-5.545]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[323.248,140.229],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.317,-2.093],[0.905,-0.698],[0.8,0.173],[0.275,2.164],[-1.039,0.862],[-0.983,-0.061]],"o":[[0,1.167],[-0.715,0.552],[-2.67,-0.576],[-0.146,-1.137],[0.771,-0.639],[2.762,0.174]],"v":[[3.745,2.267],[3.058,5.035],[-1.57,5.63],[-3.705,-1.646],[-3.177,-5.085],[1.478,-5.743]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[309.891,140.916],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.234,-1.572],[1.385,-0.53],[0.634,0.316],[0.082,1.448],[-0.128,1.428],[-0.936,0.49],[-1.014,-0.304],[-0.067,-1.348]],"o":[[0,1.453],[-0.684,0.262],[-1.618,-0.807],[-0.081,-1.423],[0.1,-1.112],[0.985,-0.514],[1.379,0.415],[0.083,1.671]],"v":[[3.758,2.702],[2.494,5.36],[-2.351,5.555],[-3.448,0.933],[-3.863,-3.421],[-2.823,-5.097],[1.779,-5.567],[3.369,-2.869]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[297.841,141.537],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.211,-2.737],[3.975,-0.155],[0.174,2.595],[-3.624,-0.115]],"o":[[0,3.365],[-3.588,0.141],[-0.239,-3.581],[3.095,0.099]],"v":[[3.627,0.036],[-0.231,5.519],[-3.599,-1.002],[0.402,-5.545]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[361.356,137.621],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.317,-2.093],[0.904,-0.698],[0.799,0.173],[0.276,2.164],[-1.038,0.862],[-0.984,-0.061]],"o":[[0,1.167],[-0.716,0.552],[-2.67,-0.576],[-0.145,-1.137],[0.771,-0.639],[2.762,0.174]],"v":[[3.745,2.267],[3.058,5.035],[-1.57,5.63],[-3.706,-1.646],[-3.178,-5.085],[1.478,-5.743]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[347.999,138.309],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.099,-0.661],[1.385,-0.53],[0.634,0.316],[0.082,1.448],[-0.128,1.428],[-0.936,0.49],[-1.013,-0.303],[-0.077,-1.349],[-0.149,-1.144]],"o":[[0,1.453],[-0.683,0.263],[-1.617,-0.807],[-0.081,-1.423],[0.099,-1.112],[0.984,-0.514],[1.387,0.417],[0.067,1.147],[0.087,0.669]],"v":[[3.814,2.701],[2.549,5.359],[-2.296,5.555],[-3.392,0.932],[-3.807,-3.421],[-2.767,-5.098],[1.835,-5.568],[3.424,-2.87],[3.426,0.592]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[335.893,138.93],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.016,-1.26],[1.398,0.369],[2.542,0.926],[-1.355,1.046],[-1.081,-0.434]],"o":[[-0.473,1.62],[-2.612,-0.69],[0.826,-1.505],[0.93,-0.718],[-0.422,3.717]],"v":[[7.381,4.512],[0.405,3.532],[-7.38,1.283],[-2.685,-2.435],[2.368,-5.699]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[313.406,184.939],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.015,-1.26],[1.398,0.369],[2.542,0.927],[-1.355,1.045],[-1.081,-0.433]],"o":[[-0.472,1.621],[-2.612,-0.69],[0.826,-1.504],[0.93,-0.719],[-0.422,3.717]],"v":[[7.38,4.512],[0.405,3.532],[-7.38,1.283],[-2.685,-2.434],[2.368,-5.699]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[282.919,207.202],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.715,2.756]],"o":[[3.531,-2.62],[0,0]],"v":[[-5.388,3.997],[5.388,-3.997]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[309.889,183.041],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.492,1.688],[0.272,5.355],[1.081,-4.537],[2.1,-1.118]],"o":[[2.645,-4.72],[5.573,0.263],[-0.518,2.175],[-1.106,0.589]],"v":[[-4.549,7.195],[-1.272,-8.883],[3.961,1.907],[0.149,8.017]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388000009574,0.109999997008,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[294.848,204.518],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.25,1.554],[0.077,4.041],[-2.095,0.215],[-0.541,-0.995],[1.77,-3.279],[1.349,-0.473]],"o":[[1.688,-3.707],[-0.024,-1.321],[1.348,-0.138],[1.825,3.365],[-0.654,1.212],[-1.244,0.434]],"v":[[-4.272,7.354],[-2.189,-4.542],[-0.702,-8.771],[2.697,-6.206],[2.419,5.562],[-0.419,8.404]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388000009574,0.109999997008,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[324.796,181.514],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":2,"cix":2,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.791,-0.918],[1.427,0.118],[3.156,0.231],[6.602,0.452],[6.331,0.306],[3.053,0.088],[3.261,-0.433],[1.073,-0.072],[0.704,0.026],[1.62,0.091],[3.378,0.207],[6.39,0.592],[-1.025,1.446],[-1.367,-0.009],[-12.747,-0.079],[-13.231,0.001],[-13.377,-0.04],[-13.226,0.316],[-26.896,9.966],[3.97,-2.176],[4.464,-1.808],[10.053,-1.864],[10.403,0.282],[4.954,0.336]],"o":[[-0.766,-1.438],[-3.155,-0.261],[-6.6,-0.482],[-6.323,-0.433],[-3.051,-0.147],[-3.293,-0.095],[-0.732,0.098],[-0.695,0.046],[-1.621,-0.056],[-3.379,-0.189],[-6.406,-0.391],[-5.173,-0.48],[0.836,-1.179],[12.75,0.088],[13.219,0.083],[13.37,-0.001],[13.227,0.039],[28.623,-0.682],[-3.092,3.403],[-4.216,2.312],[-9.484,3.844],[-10.249,1.898],[-4.963,-0.134],[-4.907,-0.332]],"v":[[10.172,11.387],[2.9,10.612],[-6.57,9.959],[-26.37,8.534],[-45.341,7.383],[-54.492,6.915],[-64.758,6.786],[-66.46,7.219],[-68.623,7.159],[-73.485,6.923],[-83.623,6.372],[-102.811,4.641],[-124.922,1.099],[-116.123,0.665],[-77.897,2.227],[-38.229,3.641],[1.883,3.145],[41.568,2.997],[125.948,-12.505],[113.624,-4.824],[100.776,1.626],[71.219,10.064],[40.289,12.224],[25.409,11.583]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388000009574,0.109999997008,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[318.804,156.823],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.871,-1.481]],"o":[[-2.036,1.259],[0,0]],"v":[[2.89,-2.113],[-2.89,2.113]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.736999990426,0.630999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[281.515,203.92],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":2,"cix":2,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[7.528,-5.601],[9.285,-2.444],[8.841,3.684],[-0.52,1.706],[-1.297,1.673],[-3.319,4.226],[-12.027,16.478],[-2.711,-0.042],[-2.578,-0.099],[-4.976,-0.27],[-10.094,-0.758],[-5.453,-0.195],[0.618,-1.37],[0.129,-1.813],[1.251,-1.933],[1.034,0.874],[0.503,0.884],[0.815,2.194],[4.162,-3.059],[2.24,-1.633],[0.098,-2.946],[0.553,-2.388],[1.286,-0.043],[0.538,1.071],[-0.249,2.195],[0.239,-0.262]],"o":[[-7.299,5.776],[-7.567,5.63],[-9.264,2.44],[-1.454,-0.606],[0.614,-2.018],[3.294,-4.246],[12.602,-16.045],[1.643,-2.252],[2.579,0.039],[4.979,0.192],[10.108,0.548],[5.448,0.409],[5.477,0.196],[-0.727,1.611],[-0.157,2.227],[-0.703,1.087],[-0.78,-0.659],[-1.2,-2.109],[-4.148,3.077],[-2.233,1.644],[-2.402,1.751],[-0.083,2.45],[-0.291,1.258],[-1.47,0.049],[-0.994,-1.982],[-0.35,-0.06],[0,0]],"v":[[12.576,4.679],[-10.116,21.414],[-34.467,35.704],[-62.215,33.783],[-65.924,31.119],[-61.282,25.09],[-51.357,12.387],[-13.544,-35.892],[-8.37,-37.708],[-0.631,-37.58],[14.31,-36.812],[44.615,-34.69],[60.967,-33.742],[56.585,-27.424],[56.454,-20.777],[54.854,-13.374],[52.959,-13.334],[51.033,-15.81],[49.228,-22.31],[36.776,-13.086],[30.07,-8.165],[27.54,-3.215],[26.585,4.09],[23.951,10.245],[20.323,6.638],[19.237,0.15],[18.355,0.454]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.736999990426,0.630999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[266.049,201.353],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":2,"cix":2,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[7.84,0.511],[7.063,1.032],[3.913,0.507],[1.482,2.51],[-10.394,2.32],[-2.203,1.462],[0.599,1.927],[1.367,2.858],[1.464,3.714],[3.834,9.807],[1.497,3.899],[-1.589,1.074],[-2.368,0.222],[-5.06,0.224],[-3.236,-2.538],[-2.264,-2.834],[-5.829,-7.099],[-7.289,0.926],[-4.326,0.434],[-5.253,0.419],[-21.223,1.596],[-21.192,1.79],[-10.319,-1.167],[-8.513,-2.913],[-2.975,-1.362],[-0.881,-2.233],[0,0],[-1.664,-4.53],[3.777,-2.334],[3.878,-0.953],[6.169,-1.391],[27.984,0.029],[28.318,1.106],[13.616,-0.203],[2.667,-0.879]],"o":[[-7.719,1.461],[-7.146,-0.466],[-3.903,-0.57],[-2.455,-0.317],[10.38,-2.385],[2.549,-0.57],[2.039,-1.354],[-0.942,-3.035],[-1.723,-3.604],[-3.859,-9.796],[-1.521,-3.89],[-0.563,-1.466],[2.122,-1.434],[5.04,-0.47],[4.009,-0.177],[2.875,2.255],[5.738,7.185],[3.94,4.798],[4.264,-0.542],[5.243,-0.527],[21.214,-1.694],[21.21,-1.595],[10.319,-0.873],[8.987,1.016],[3.094,1.059],[1.955,0.895],[0.394,0.997],[0,0],[1.563,4.255],[-3.454,2.135],[-6.137,1.51],[-27.392,6.18],[-28.338,-0.03],[-13.606,-0.531],[-2.788,0.042],[0,0]],"v":[[-105.346,43.51],[-128.865,44.958],[-150.003,41.878],[-161.777,40.638],[-171.746,37.675],[-140.602,30.525],[-131.998,28.917],[-131.476,22.615],[-135.249,13.86],[-139.79,2.775],[-151.341,-26.624],[-155.954,-38.278],[-155.867,-42.693],[-147.011,-43.842],[-131.896,-45.292],[-121.455,-42.588],[-114.079,-34.524],[-95.625,-14.056],[-79.528,-1.36],[-66.934,-3.816],[-51.172,-5.102],[12.498,-9.857],[76.074,-15.094],[107.163,-15.325],[133.099,-8.749],[142.261,-5.24],[149.265,-0.516],[159.633,6.553],[170.183,15.666],[166.337,26.531],[154.813,30.252],[136.442,34.908],[53.146,42.067],[-31.845,41.102],[-72.761,39.135],[-81.873,39.739]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.736999990426,0.630999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[276.746,118.45],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"ix":23,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":181.000007372281,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"clouds","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[1033.524,248,0],"e":[187.524,248,0],"to":[-141,0,0],"ti":[141,0,0]},{"t":180.00000733155}],"ix":2},"a":{"a":0,"k":[2196,540,0],"ix":1},"s":{"a":0,"k":[47,47,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.064,4.762],[30.951,0],[8.265,-4.207],[21.629,0],[7.059,-25.76],[2.464,0],[0,-17.171],[-17.171,0],[-5.25,4.052],[-16.434,-1.579],[-7.154,0],[-5.251,4.051],[-18.832,0],[-10,7.225],[-4.433,0],[0,17.172]],"o":[[-3.807,-29.917],[-9.909,0],[-10.776,-17.013],[-28,0],[-2.298,-0.542],[-17.171,0],[0,17.172],[7.145,0],[9.976,12.028],[5.254,4.061],[7.145,0],[11.151,13.445],[13.28,0],[3.816,1.672],[17.171,0],[0,-12.809]],"v":[[-47.811,16.25],[-108.117,-36.795],[-135.641,-30.208],[-187.025,-58.523],[-245.66,-13.833],[-252.817,-14.663],[-283.909,16.429],[-252.817,47.521],[-233.841,41.057],[-192.903,62.765],[-173.909,69.249],[-154.932,62.786],[-108.117,84.795],[-72.555,73.31],[-60.091,75.912],[-29,44.82]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[5.786,2.49],[16.188,0],[3.692,-13.473],[1.289,0],[0,-8.98],[-8.98,0],[-2.746,2.118],[-9.849,0],[-5.23,3.778],[-2.318,0],[0,8.98]],"o":[[-1.991,-15.646],[-14.643,0],[-1.201,-0.284],[-8.98,0],[0,8.981],[3.737,0],[5.832,7.031],[6.945,0],[1.996,0.874],[8.981,0],[0,-6.7]],"v":[[-360.792,-57.053],[-392.332,-84.795],[-422.997,-61.422],[-426.74,-61.856],[-443,-45.596],[-426.74,-29.335],[-416.815,-32.715],[-392.332,-21.205],[-373.733,-27.211],[-367.215,-25.851],[-350.954,-42.111]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[11.064,4.762],[30.951,0],[7.059,-25.76],[2.464,0],[0,-17.172],[-17.171,0],[-5.251,4.051],[-18.832,0],[-10,7.225],[-4.433,0],[0,17.172]],"o":[[-3.807,-29.917],[-28,0],[-2.298,-0.542],[-17.171,0],[0,17.171],[7.145,0],[11.151,13.445],[13.28,0],[3.816,1.672],[17.171,0],[0,-12.809]],"v":[[-608.811,4.25],[-669.117,-48.795],[-727.751,-4.104],[-734.909,-4.934],[-766,26.158],[-734.909,57.249],[-715.932,50.786],[-669.117,72.795],[-633.555,61.31],[-621.091,63.912],[-590,32.82]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1825,154.205],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":181.000007372281,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"airplane Outlines Comp 1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,210,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":500,"h":500,"ip":0,"op":181.000007372281,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"mtns","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[1030,248,0],"e":[-188.5,248,0],"to":[-143.601577758789,0,0],"ti":[59.4817504882812,0,0]},{"t":180.00000733155}],"ix":2},"a":{"a":0,"k":[2196,540,0],"ix":1},"s":{"a":0,"k":[47,47,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.61,14.489],[0.21,0.149],[0,0],[0.211,0.009],[9.57,1.577],[0.341,0.064],[0.657,0.125],[13.041,3.439],[0.002,0],[1.507,0.41],[0.854,0.238],[0.611,0.172],[14.896,5.526],[60.277,62.679],[0.714,0.751],[1.274,1.366],[2.05,2.269],[0.018,0.02],[60.958,35.551],[7.491,3.977],[17.887,2.208],[5.46,0.026],[0.208,0],[1.066,-0.038],[0.349,-0.016],[0.929,-0.072],[0.396,-0.036],[0.915,-0.111],[0.366,-0.049],[1.25,-0.223],[0,0],[26.206,-14.118],[32.43,-30.952],[26.356,-29.184],[9.457,-9.595],[0.547,-0.552],[1.679,-1.67],[0.768,-0.76],[1.883,-1.831],[0.056,-0.054],[64.854,-35.334],[0.999,-0.538],[0.527,-0.283],[54.805,-3.732],[50.327,10.812],[4.412,1.089],[54.866,50.32],[0.912,1.21],[92.009,21.187],[1.955,0.414],[65.354,-60.475],[93.453,-26.693],[0.767,-0.215],[0.815,-0.225],[28.373,-0.015],[21.028,3.594],[1.666,0.301],[65.797,36.602],[0.66,0.371],[1.298,0.742],[7.052,4.451],[0.002,0.002],[71.948,65.843],[1.275,1.159],[0.007,0.006],[0.001,0.001],[49.021,-8.766],[0,0],[22.944,-11.286],[69.483,-69.397],[89.857,-48.282],[109.69,27.082],[189.604,40.129],[65.837,-56.311],[96.237,-27.193],[115.625,46.105],[75.301,78.995],[46.655,30.06],[18.918,-20.976],[0,-11.732],[0,-59.755],[0,-65.086],[-8.345,-44.467],[-10.661,-7.061],[-11.985,-0.023],[-454.578,-0.86],[-317.816,0],[-68.671,0.146],[0,0],[0,0],[0,0],[-402.384,0],[-248.062,0.554],[0,0],[0,0],[0,0],[0,39.129]],"o":[[-0.146,-0.156],[0,0],[-0.208,-0.009],[-7.431,-4.979],[-0.339,-0.063],[-0.657,-0.123],[-11.479,-2.209],[-0.001,0],[-1.488,-0.393],[-0.854,-0.234],[-0.608,-0.169],[-15.296,-4.32],[-81.578,-30.265],[-0.715,-0.745],[-1.287,-1.353],[-2.064,-2.216],[-0.018,-0.02],[-46.922,-51.959],[-7.749,-5.085],[-15.299,-9.572],[-5.639,-0.932],[-0.209,-0.001],[-1.073,0.002],[-0.35,0.012],[-0.935,0.044],[-0.397,0.031],[-0.92,0.083],[-0.367,0.045],[-1.26,0.17],[0,0],[-22.062,2.882],[-39.957,20.896],[-23.477,21.714],[-9.209,10.197],[-0.547,0.553],[-1.673,1.689],[-0.765,0.762],[-1.876,1.854],[-0.056,0.054],[-81.074,78.801],[-0.997,0.541],[-0.53,0.286],[-52.262,27.962],[-37.521,1.141],[-4.387,-0.981],[-78.168,-19.3],[-0.925,-1.189],[-61.212,-81.228],[-1.931,-0.447],[-87.139,-18.567],[-71.182,60.954],[-0.769,0.219],[-0.812,0.228],[-78.988,21.739],[-21.497,-0.675],[-1.668,-0.285],[-47.385,-8.71],[-0.661,-0.369],[-1.296,-0.728],[-7.251,-4.154],[-0.002,-0.001],[-83.553,-52.732],[-1.281,-1.178],[-0.007,-0.006],[-0.001,-0.001],[-64.051,-58.195],[0,0],[-20.423,1.711],[-90.114,44.325],[-72.161,72.071],[-98.652,53.009],[-183.691,-45.353],[-83.528,-17.678],[-73.713,63.046],[-119.458,33.754],[-102.983,-41.064],[-38.102,-39.971],[-15.687,-10.107],[-8.21,9.104],[0,59.755],[0,65.086],[0,45.114],[3.437,18.313],[10.202,6.756],[454.579,0.86],[317.816,0.601],[68.879,0],[0,0],[0,0],[0,0],[402.383,0.761],[250.056,0],[0,0],[0,0],[0,0],[0,-39.129],[0,-19.006]],"v":[[3636.482,83.226],[3635.941,82.768],[3636.482,82.727],[3635.839,82.696],[3576.718,75.489],[3575.705,75.301],[3573.735,74.924],[3536.878,66.517],[3536.874,66.516],[3532.373,65.303],[3529.81,64.599],[3527.977,64.084],[3482.667,49.281],[3266.653,-92.077],[3264.513,-94.331],[3260.663,-98.402],[3254.489,-105.125],[3254.437,-105.184],[3093.159,-255.292],[3070.293,-268.923],[3020.618,-286.821],[3003.969,-288.272],[3003.344,-288.268],[3000.134,-288.21],[2999.087,-288.166],[2996.292,-287.992],[2995.102,-287.897],[2992.351,-287.6],[2991.249,-287.469],[2987.482,-286.886],[2987.482,-286.556],[2915.225,-261.374],[2808.165,-181.338],[2733.476,-105.125],[2705.453,-75.439],[2703.811,-73.785],[2698.784,-68.744],[2696.48,-66.465],[2690.845,-60.928],[2690.679,-60.767],[2458.021,110.474],[2455.03,112.1],[2453.452,112.948],[2293.164,159.492],[2156.967,147.841],[2143.77,144.742],[1953.247,28.472],[1950.49,24.875],[1706.802,-135.827],[1700.978,-137.125],[1460.493,-80.263],[1236.844,59.061],[1234.537,59.719],[1232.095,60.394],[1055.004,82.945],[991.105,76.639],[986.104,75.75],[809.755,12.112],[807.772,11.005],[803.88,8.791],[782.416,-4.11],[782.408,-4.115],[569.203,-200.89],[565.37,-204.393],[565.349,-204.412],[565.347,-204.414],[395.483,-286.886],[395.483,-284.227],[330.668,-265.165],[107.855,-69.803],[-137.804,112.554],[-448.23,144.742],[-891.023,-137.125],[-1127.019,-84.104],[-1356.307,59.4],[-1714.042,44.391],[-1965.898,-144.477],[-2090.674,-255.062],[-2196.518,-286.886],[-2196.518,-212.645],[-2196.518,-33.379],[-2196.518,161.879],[-2196.518,305.79],[-2189.578,330.091],[-2128.795,330.206],[-765.061,332.786],[188.39,332.993],[394.672,332.747],[391.483,332.993],[1935.942,332.993],[1149.726,331.505],[2356.871,332.993],[3103.482,330.909],[3103.482,332.993],[3636.482,332.993],[3636.482,331.306],[3636.482,213.918]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.573000021542,0.423999980852,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2196,747.209],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":181.000007372281,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"landscape Outlines 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[1030,248,0],"e":[-188.5,248,0],"to":[-203.08332824707,0,0],"ti":[203.08332824707,0,0]},{"t":180.00000733155}],"ix":2},"a":{"a":0,"k":[2196,540,0],"ix":1},"s":{"a":0,"k":[47,47,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.751,2.675],[-1.086,0.713],[-1.737,-2.684],[1.215,-0.768],[0.896,1.36]],"o":[[1.087,-0.713],[1.748,2.679],[0.897,1.386],[-1.133,0.716],[-1.761,-2.669]],"v":[[-4.698,-3.733],[-1.438,-5.872],[3.801,2.164],[3.342,5.155],[0.559,4.292]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388000009574,0.109999997008,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2439.327,541.702],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.283,-0.337],[-0.653,-1.408],[-1.484,-2.785],[-2.939,-4.867],[-2.639,-4.691],[-2.361,-5.025],[-1.359,-2.146],[-3.768,-5.981],[-2.447,-4.186],[-2.471,-3.836],[-0.651,-0.763],[3.766,-2.518],[0.367,0.847],[3.237,7.443],[5.035,11.603],[5.232,12.05],[2.95,6.762],[0.025,0.696]],"o":[[0.177,1.625],[1.335,2.876],[2.677,5.023],[2.783,4.609],[2.709,4.817],[1.076,2.292],[3.782,5.969],[2.576,4.09],[2.3,3.937],[0.527,0.818],[-3.785,2.492],[-0.807,0.54],[-3.216,-7.453],[-5.046,-11.599],[-5.229,-12.051],[-2.94,-6.767],[-0.233,-0.536],[0.285,0.338]],"v":[[-30.485,-57.183],[-28.527,-52.954],[-23.667,-44.802],[-15.093,-30.067],[-7.061,-16.047],[1.13,-1.623],[5.057,4.933],[15.762,23.21],[22.986,35.822],[29.979,47.575],[31.336,50.171],[19.99,57.656],[18.502,57.158],[8.784,34.83],[-6.335,0.027],[-22.013,-36.132],[-30.866,-56.418],[-31.336,-58.196]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2399.309,490.258],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.177,1.625],[-5.21,-5.619],[-8.72,-9.418],[-12.031,-12.99],[-2.042,-2.197],[1.604,-1.051],[4.902,-3.215],[1.087,-0.713],[1.327,-0.82],[0.527,0.818],[2.3,3.937],[2.576,4.09],[3.782,5.969],[1.076,2.292],[2.709,4.817],[2.783,4.609],[2.677,5.023],[1.335,2.876]],"o":[[5.229,5.602],[8.727,9.411],[12.028,12.993],[2.038,2.2],[1.328,1.429],[-4.902,3.213],[-1.085,0.713],[-1.328,0.819],[-0.651,-0.763],[-2.471,-3.836],[-2.447,-4.186],[-3.768,-5.981],[-1.359,-2.146],[-2.361,-5.025],[-2.639,-4.691],[-2.939,-4.867],[-1.484,-2.785],[-0.653,-1.408]],"v":[[-42.686,-53.677],[-27.003,-36.868],[-0.854,-8.606],[35.24,30.364],[41.355,36.963],[41.081,39.434],[26.378,49.079],[23.119,51.218],[19.135,53.677],[17.778,51.081],[10.785,39.328],[3.561,26.716],[-7.144,8.439],[-11.071,1.883],[-19.262,-12.541],[-27.294,-26.561],[-35.868,-41.296],[-40.728,-49.448]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.736999990426,0.630999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2411.51,486.752],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[2410.901,490.14],"ix":2},"a":{"a":0,"k":[2410.901,490.14],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"tree","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.11,1.983],[-0.806,0.046],[-0.1,-1.984],[0.893,-0.036],[0.06,1.01]],"o":[[0.807,-0.046],[0.108,1.986],[0.052,1.025],[-0.832,0.033],[-0.117,-1.983]],"v":[[-1.396,-3.589],[1.023,-3.727],[1.343,2.227],[0.166,3.694],[-1.063,2.363]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388000009574,0.109999997008,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1212.631,600.389],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.047,-0.27],[0.086,-0.96],[0.067,-1.959],[-0.068,-3.532],[0.039,-3.344],[0.293,-3.437],[-0.065,-1.578],[-0.167,-4.39],[-0.015,-3.013],[-0.137,-2.833],[-0.113,-0.614],[2.81,-0.184],[-0.066,0.57],[-0.573,5.013],[-0.9,7.81],[-0.932,8.112],[-0.516,4.557],[-0.203,0.383]],"o":[[-0.411,0.93],[-0.176,1.963],[-0.122,3.536],[0.063,3.346],[-0.041,3.434],[-0.133,1.568],[0.178,4.388],[0.115,3.003],[0.013,2.833],[0.028,0.604],[-2.811,0.164],[-0.602,0.039],[0.588,-5.011],[0.893,-7.809],[0.934,-8.11],[0.523,-4.555],[0.041,-0.361],[0.048,0.27]],"v":[[4.623,-38.36],[4.36,-35.476],[4.441,-29.578],[4.472,-18.983],[4.432,-8.94],[4.354,1.368],[4.428,6.118],[4.504,19.281],[4.469,28.315],[4.577,36.814],[4.499,38.633],[-3.934,39.132],[-4.58,38.401],[-2.865,23.363],[-0.176,-0.066],[2.634,-24.398],[4.179,-38.067],[4.479,-39.17]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1203.828,558.252],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.411,0.93],[-1.056,-4.644],[-1.762,-7.779],[-2.434,-10.732],[-0.416,-1.817],[1.19,-0.068],[3.637,-0.205],[0.806,-0.046],[0.97,-0.029],[0.028,0.604],[0.013,2.833],[0.115,3.003],[0.178,4.388],[-0.133,1.568],[-0.041,3.434],[0.063,3.346],[-0.122,3.536],[-0.176,1.963]],"o":[[1.071,4.641],[1.769,7.779],[2.431,10.733],[0.413,1.817],[0.27,1.182],[-3.637,0.204],[-0.807,0.046],[-0.97,0.027],[-0.113,-0.614],[-0.137,-2.833],[-0.015,-3.013],[-0.167,-4.39],[-0.065,-1.578],[0.293,-3.437],[0.039,-3.344],[-0.068,-3.532],[0.067,-1.959],[0.086,-0.96]],"v":[[-8.433,-38.497],[-5.223,-24.574],[0.058,-1.234],[7.359,30.961],[8.598,36.414],[7.682,37.659],[-3.229,38.274],[-5.648,38.412],[-8.557,38.497],[-8.479,36.677],[-8.587,28.179],[-8.552,19.144],[-8.627,5.982],[-8.702,1.232],[-8.623,-9.076],[-8.584,-19.12],[-8.615,-29.714],[-8.695,-35.612]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.736999990426,0.630999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1216.884,558.388],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[1212.43,561.583],"ix":2},"a":{"a":0,"k":[1212.43,561.583],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"tree","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.774,2.661],[-1.082,-0.72],[1.787,-2.652],[1.183,0.816],[-0.899,1.358]],"o":[[1.082,0.721],[-1.778,2.658],[-0.923,1.368],[-1.103,-0.761],[1.764,-2.666]],"v":[[1.486,-5.849],[4.732,-3.69],[-0.605,4.282],[-3.536,5.034],[-3.833,2.133]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388000009574,0.109999997008,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1451.969,669.11],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.199,-0.394],[1.039,-1.153],[1.979,-2.457],[3.324,-4.611],[3.28,-4.268],[3.696,-4.144],[1.441,-2.092],[4.024,-5.81],[2.891,-3.892],[2.56,-3.777],[0.446,-0.898],[3.794,2.477],[-0.636,0.669],[-5.577,5.897],[-8.699,9.183],[-9.031,9.541],[-5.064,5.366],[-0.631,0.295]],"o":[[-1.426,0.799],[-2.122,2.356],[-3.571,4.433],[-3.149,4.368],[-3.368,4.381],[-1.686,1.89],[-4.008,5.82],[-2.751,3.975],[-2.718,3.661],[-0.545,0.806],[-3.776,-2.504],[-0.813,-0.531],[5.594,-5.882],[8.69,-9.191],[9.034,-9.537],[5.072,-5.358],[0.401,-0.425],[-0.2,0.393]],"v":[[43.026,-48.898],[39.904,-45.439],[34.312,-37.771],[24.121,-24.105],[14.374,-11.216],[4.32,1.976],[-0.171,8.16],[-12.784,25.175],[-21.552,36.768],[-29.62,47.811],[-31.475,50.078],[-42.811,42.577],[-42.936,41.013],[-26.21,23.315],[-0.126,-4.244],[26.984,-32.849],[42.173,-48.949],[43.624,-50.078]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1481.105,610.484],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.426,0.799],[3.125,-6.998],[5.243,-11.715],[7.229,-16.163],[1.22,-2.74],[1.597,1.063],[4.88,3.247],[1.082,0.721],[1.274,0.9],[-0.545,0.806],[-2.718,3.661],[-2.751,3.975],[-4.008,5.82],[-1.686,1.89],[-3.368,4.381],[-3.149,4.368],[-3.571,4.433],[-2.122,2.356]],"o":[[-3.102,7.007],[-5.233,11.718],[-7.233,16.16],[-1.224,2.738],[-0.793,1.784],[-4.877,-3.249],[-1.082,-0.72],[-1.275,-0.9],[0.446,-0.898],[2.56,-3.777],[2.891,-3.892],[4.024,-5.81],[1.441,-2.092],[3.696,-4.144],[3.28,-4.268],[3.324,-4.611],[1.979,-2.457],[1.039,-1.153]],"v":[[37.25,-57.321],[27.939,-36.302],[12.199,-1.163],[-9.489,47.324],[-13.161,55.537],[-15.542,56.255],[-30.18,46.514],[-33.426,44.354],[-37.251,41.655],[-35.396,39.388],[-27.328,28.345],[-18.56,16.752],[-5.947,-0.263],[-1.456,-6.447],[8.598,-19.639],[18.345,-32.528],[28.536,-46.194],[34.128,-53.862]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.736999990426,0.630999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1486.881,618.907],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[1481.209,618.147],"ix":2},"a":{"a":0,"k":[1481.209,618.147],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"tree","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.808,2.126],[-0.864,-0.328],[0.82,-2.122],[0.95,0.379],[-0.408,1.084]],"o":[[0.865,0.328],[-0.811,2.125],[-0.422,1.096],[-0.885,-0.353],[0.801,-2.129]],"v":[[0.119,-4.361],[2.712,-3.378],[0.275,2.996],[-1.638,3.982],[-2.304,2.018]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388000009574,0.109999997008,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1394.337,637.817],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.076,-0.304],[0.537,-0.964],[0.983,-2.018],[1.574,-3.724],[1.599,-3.479],[1.905,-3.459],[0.668,-1.68],[1.869,-4.667],[1.387,-3.158],[1.176,-3.025],[0.168,-0.693],[3.023,1.116],[-0.335,0.564],[-2.931,4.973],[-4.575,7.746],[-4.75,8.048],[-2.661,4.523],[-0.391,0.305]],"o":[[-0.862,0.78],[-1.098,1.97],[-1.773,3.639],[-1.49,3.529],[-1.64,3.572],[-0.87,1.577],[-1.856,4.671],[-1.277,3.192],[-1.305,2.969],[-0.251,0.645],[-3.015,-1.137],[-0.648,-0.239],[2.947,-4.966],[4.569,-7.751],[4.753,-8.046],[2.667,-4.519],[0.211,-0.359],[-0.076,0.304]],"v":[[22.729,-39.765],[21.113,-36.87],[18.451,-30.667],[13.551,-19.576],[8.836,-9.094],[3.957,1.648],[1.823,6.648],[-4.225,20.446],[-8.466,29.875],[-12.31,38.812],[-13.238,40.677],[-22.287,37.273],[-22.622,36.209],[-13.83,21.286],[-0.113,-1.958],[14.151,-26.092],[22.13,-39.664],[22.957,-40.677]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1404.613,591.514],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.862,0.78],[1.057,-5.347],[1.778,-8.954],[2.45,-12.354],[0.411,-2.093],[1.275,0.484],[3.898,1.478],[0.865,0.328],[0,0],[-0.251,0.645],[-1.305,2.969],[-1.277,3.192],[-1.856,4.671],[-0.87,1.577],[-1.64,3.572],[-1.49,3.529],[-1.773,3.639],[-1.098,1.97]],"o":[[-1.04,5.351],[-1.771,8.956],[-2.453,12.353],[-0.415,2.091],[-0.268,1.362],[-3.898,-1.479],[-0.864,-0.328],[0,0],[0.168,-0.693],[1.176,-3.025],[1.387,-3.158],[1.869,-4.667],[0.668,-1.68],[1.905,-3.459],[1.599,-3.479],[1.574,-3.724],[0.983,-2.018],[0.537,-0.964]],"v":[[17.984,-43.805],[14.86,-27.754],[9.517,-0.893],[2.167,36.167],[0.922,42.443],[-0.615,43.318],[-12.31,38.885],[-14.903,37.902],[-17.984,36.636],[-17.056,34.771],[-13.212,25.835],[-8.971,16.406],[-2.922,2.608],[-0.789,-2.392],[4.09,-13.134],[8.805,-23.616],[13.705,-34.707],[16.367,-40.911]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.736999990426,0.630999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1409.359,595.554],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[1404.674,596.399],"ix":2},"a":{"a":0,"k":[1404.674,596.399],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"tree","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.242,3.188],[-1.296,-0.097],[0.258,-3.187],[1.431,0.132],[-0.117,1.623]],"o":[[1.296,0.098],[-0.247,3.188],[-0.133,1.645],[-1.335,-0.122],[0.231,-3.189]],"v":[[-1.523,-6.039],[2.365,-5.747],[1.62,3.817],[-0.567,5.908],[-2.248,3.527]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388000009574,0.109999997008,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1340.408,615.814],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.019,-0.44],[0.339,-1.513],[0.521,-3.112],[0.638,-5.649],[0.768,-5.327],[1.191,-5.422],[0.231,-2.53],[0.659,-7.038],[0.611,-4.809],[0.379,-4.547],[-0.051,-1.002],[4.521,0.299],[-0.227,0.894],[-1.97,7.875],[-3.08,12.267],[-3.196,12.742],[-1.784,7.159],[-0.405,0.567]],"o":[[-0.851,1.396],[-0.695,3.094],[-0.939,5.614],[-0.603,5.352],[-0.788,5.469],[-0.543,2.474],[-0.64,7.037],[-0.45,4.813],[-0.576,4.523],[-0.081,0.97],[-4.518,-0.332],[-0.969,-0.065],[1.993,-7.869],[3.07,-12.27],[3.201,-12.741],[1.795,-7.156],[0.141,-0.567],[0.019,0.441]],"v":[[15.542,-60.733],[14.517,-56.188],[13.4,-46.763],[11.216,-29.856],[9.038,-13.844],[6.74,2.582],[5.857,10.174],[3.204,31.188],[1.244,45.59],[-0.376,59.169],[-0.883,62.055],[-14.44,61.074],[-15.315,59.772],[-9.411,36.146],[-0.184,-0.659],[9.426,-38.881],[14.774,-60.359],[15.485,-62.055]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.313999998803,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1335.109,547.242],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.851,1.396],[-0.706,-7.63],[-1.172,-12.782],[-1.621,-17.632],[-0.28,-2.985],[1.912,0.145],[5.845,0.438],[1.296,0.097],[1.553,0.159],[-0.081,0.97],[-0.576,4.523],[-0.45,4.813],[-0.64,7.037],[-0.543,2.474],[-0.788,5.469],[-0.603,5.352],[-0.939,5.614],[-0.695,3.094]],"o":[[0.73,7.628],[1.183,12.78],[1.616,17.63],[0.274,2.986],[0.183,1.943],[-5.844,-0.441],[-1.296,-0.097],[-1.553,-0.16],[-0.051,-1.002],[0.379,-4.547],[0.611,-4.809],[0.659,-7.038],[0.231,-2.53],[1.191,-5.422],[0.768,-5.327],[0.638,-5.649],[0.521,-3.112],[0.339,-1.513]],"v":[[2.455,-62.511],[4.641,-39.627],[8.146,-1.282],[13.008,51.611],[13.833,60.569],[12.109,62.362],[-5.424,61.047],[-9.312,60.755],[-13.97,60.277],[-13.464,57.391],[-11.844,43.812],[-9.883,29.41],[-7.23,8.396],[-6.347,0.804],[-4.049,-15.622],[-1.871,-31.634],[0.312,-48.541],[1.43,-57.966]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.736999990426,0.630999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1348.197,549.02],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[1340.902,553.463],"ix":2},"a":{"a":0,"k":[1340.902,553.463],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"tree","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":181.000007372281,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"landscape Outlines 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[1030,248,0],"e":[-188.5,248,0],"to":[-203.08332824707,0,0],"ti":[203.08332824707,0,0]},{"t":180.00000733155}],"ix":2},"a":{"a":0,"k":[2196,540,0],"ix":1},"s":{"a":0,"k":[47,47,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[433.5,98.5],[-433.5,98.5],[-433.5,-98.5],[433.5,-98.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.788000009574,0.204000001795,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1928.5,867.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"water","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":181.000007372281,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"bg","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[637.372,248,0],"ix":2},"a":{"a":0,"k":[2196,540,0],"ix":1},"s":{"a":0,"k":[47,47,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2195.5,539],[2195.5,539],[2195.5,-539],[-2195.5,-539]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.75117534399,0.894179105759,0.96685051918,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2195.5,541],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"bg","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":181.000007372281,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/maps.json b/external/rlottie/example/resource/maps.json new file mode 100644 index 000000000..7bb4d8ddb --- /dev/null +++ b/external/rlottie/example/resource/maps.json @@ -0,0 +1 @@ +{"v":"5.1.16","fr":30,"ip":0,"op":132,"w":200,"h":85,"nm":"city 200x85","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[8.25,92.375,0],"e":[9,73.375,0],"to":[0.125,-3.16666674613953,0],"ti":[-1.29166662693024,5.75,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[9,73.375,0],"e":[16,57.875,0],"to":[1.29166662693024,-5.75,0],"ti":[-2.22916674613953,0.60416668653488,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12.5,"s":[16,57.875,0],"e":[22.375,69.75,0],"to":[2.22916674613953,-0.60416668653488,0],"ti":[-2.75,-2.9375,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":13.75,"s":[22.375,69.75,0],"e":[32.5,75.5,0],"to":[2.75,2.9375,0],"ti":[-3.20833325386047,-1.41666662693024,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[32.5,75.5,0],"e":[41.625,78.25,0],"to":[3.20833325386047,1.41666662693024,0],"ti":[-2.39583325386047,0.60416668653488,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16.25,"s":[41.625,78.25,0],"e":[46.875,71.875,0],"to":[2.39583325386047,-0.60416668653488,0],"ti":[-2.3125,0.10416666418314,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17.5,"s":[46.875,71.875,0],"e":[55.5,77.625,0],"to":[2.3125,-0.10416666418314,0],"ti":[-1.64583337306976,1.89583337306976,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18.75,"s":[55.5,77.625,0],"e":[56.75,60.5,0],"to":[1.64583337306976,-1.89583337306976,0],"ti":[-0.20833332836628,5.29166650772095,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[56.75,60.5,0],"e":[56.75,45.875,0],"to":[0.20833332836628,-5.29166650772095,0],"ti":[-0.20833332836628,4.41666650772095,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21.25,"s":[56.75,45.875,0],"e":[58,34,0],"to":[0.20833332836628,-4.41666650772095,0],"ti":[-0.95833331346512,3.02083325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22.5,"s":[58,34,0],"e":[62.5,27.75,0],"to":[0.95833331346512,-3.02083325386047,0],"ti":[-1.66666662693024,1.52083337306976,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":23.75,"s":[62.5,27.75,0],"e":[68,24.875,0],"to":[1.66666662693024,-1.52083337306976,0],"ti":[-0.9375,2.79166674613953,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":27.5,"s":[68,24.875,0],"e":[68.125,11,0],"to":[0.9375,-2.79166674613953,0],"ti":[-0.33333334326744,3.14583325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":28.75,"s":[68.125,11,0],"e":[70,6,0],"to":[0.33333334326744,-3.14583325386047,0],"ti":[-0.70833331346512,-2.25,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[70,6,0],"e":[72.375,24.5,0],"to":[0.70833331346512,2.25,0],"ti":[-0.39583334326744,-3.08333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31.25,"s":[72.375,24.5,0],"e":[72.375,24.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":35,"s":[72.375,24.5,0],"e":[78.125,27,0],"to":[0.95833331346512,0.41666665673256,0],"ti":[-1.64583337306976,-1.60416662693024,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":36.25,"s":[78.125,27,0],"e":[82.25,34.125,0],"to":[1.64583337306976,1.60416662693024,0],"ti":[-0.6875,-4.79166650772095,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37.5,"s":[82.25,34.125,0],"e":[82.25,55.75,0],"to":[0.6875,4.79166650772095,0],"ti":[-1.27083337306976,-3.60416674613953,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":38.75,"s":[82.25,55.75,0],"e":[89.875,55.75,0],"to":[1.27083337306976,3.60416674613953,0],"ti":[-1.27083337306976,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":40,"s":[89.875,55.75,0],"e":[89.875,55.75,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":43.75,"s":[89.875,55.75,0],"e":[93.875,73,0],"to":[0.66666668653488,2.875,0],"ti":[-0.875,-4.39583349227905,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45,"s":[93.875,73,0],"e":[95.125,82.125,0],"to":[0.875,4.39583349227905,0],"ti":[-0.20833332836628,2.89583325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":46.25,"s":[95.125,82.125,0],"e":[95.162,83.291,0],"to":[0.08235409110785,-1.14472186565399,0],"ti":[0.03311010077596,4.17439985275269,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":47.5,"s":[95.162,83.291,0],"e":[95.125,55.625,0],"to":[-0.05064940080047,-6.38569068908691,0],"ti":[-0.113381318748,3.3510479927063,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50,"s":[95.125,55.625,0],"e":[96.25,48.875,0],"to":[0.1875,-5.54166650772095,0],"ti":[-2.8125,1.10416662693024,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":56.25,"s":[96.25,48.875,0],"e":[112,49,0],"to":[2.8125,-1.10416662693024,0],"ti":[-2.625,-3.1875,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":62.5,"s":[112,49,0],"e":[112,68,0],"to":[2.625,3.1875,0],"ti":[0,-4.64583349227905,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":65,"s":[112,68,0],"e":[112,76.875,0],"to":[0,4.64583349227905,0],"ti":[-2.5625,-1.47916662693024,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":67.5,"s":[112,76.875,0],"e":[127.375,76.875,0],"to":[2.5625,1.47916662693024,0],"ti":[-2.5625,6.52083349227905,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75,"s":[127.375,76.875,0],"e":[127.375,37.75,0],"to":[2.5625,-6.52083349227905,0],"ti":[-2.20833325386047,7.75,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":80,"s":[127.375,37.75,0],"e":[140.625,30.375,0],"to":[2.20833325386047,-7.75,0],"ti":[-2.4375,4,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":82.5,"s":[140.625,30.375,0],"e":[142,13.75,0],"to":[2.4375,-4,0],"ti":[-2.77083325386047,-3.08333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":83.75,"s":[142,13.75,0],"e":[157.25,48.875,0],"to":[2.77083325386047,3.08333325386047,0],"ti":[-8.125,-6.14583349227905,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":85,"s":[157.25,48.875,0],"e":[190.75,50.625,0],"to":[8.125,6.14583349227905,0],"ti":[-5.58333349227905,-7.95833349227905,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":92.5,"s":[190.75,50.625,0],"e":[190.75,96.625,0],"to":[5.58333349227905,7.95833349227905,0],"ti":[0,-7.66666650772095,0]},{"t":97.5}],"ix":2},"a":{"a":0,"k":[-12,-6.5,0],"ix":1},"s":{"a":0,"k":[39.083,39.083,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[26.875,26.875],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176530427,0.466666696586,0.18431372549,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-12.393,-6.871],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":132,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"melbourne_orange Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":80,"s":[100.25,42.75,0],"e":[100,42.5,0],"to":[-0.04166666790843,-0.04166666790843,0],"ti":[0.04166666790843,0.04166666790843,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":97.5,"s":[100,42.5,0],"e":[100,42.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":195}],"ix":2},"a":{"a":0,"k":[92.5,42.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","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],[0,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]],"v":[[6,86],[-11,86],[-8,102],[6,102.5],[6,96.899],[6,96.152],[6,95.43],[6,95.335],[6,95.291],[6,95.253],[6,95.253],[6,95.253],[6,95.253],[6,95.243],[6,95.241],[6,95.189],[6,95.107],[6,94.9],[6,94.729],[6,93.699]],"c":true}],"e":[{"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],[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]],"v":[[6,73.656],[-11,73.656],[-8,89.656],[6,90.156],[6,84.556],[6,83.808],[6,83.086],[6,82.991],[6,82.947],[6,82.909],[6,82.909],[6,82.909],[6,82.909],[6,82.899],[6,82.897],[6,82.845],[6,82.763],[6,82.556],[6,82.385],[6,81.355]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","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],[0,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]],"v":[[6,73.656],[-11,73.656],[-8,89.656],[6,90.156],[6,84.556],[6,83.808],[6,83.086],[6,82.991],[6,82.947],[6,82.909],[6,82.909],[6,82.909],[6,82.909],[6,82.899],[6,82.897],[6,82.845],[6,82.763],[6,82.556],[6,82.385],[6,81.355]],"c":true}],"e":[{"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],[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]],"v":[[3.5,41.5],[-13.5,41.5],[-8,89.5],[6,90],[5.151,73.537],[5.038,71.339],[4.929,69.217],[4.914,68.939],[4.908,68.809],[4.902,68.698],[4.902,68.698],[4.902,68.698],[4.902,68.697],[4.9,68.668],[4.9,68.663],[4.892,68.509],[4.88,68.269],[4.848,67.661],[4.823,67.158],[4.667,64.131]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12.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],[0,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]],"v":[[3.5,41.5],[-13.5,41.5],[-8,89.5],[6,90],[5.151,73.537],[5.038,71.339],[4.929,69.217],[4.914,68.939],[4.908,68.809],[4.902,68.698],[4.902,68.698],[4.902,68.698],[4.902,68.697],[4.9,68.668],[4.9,68.663],[4.892,68.509],[4.88,68.269],[4.848,67.661],[4.823,67.158],[4.667,64.131]],"c":true}],"e":[{"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],[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]],"v":[[46,51],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[46.486,83.156],[46.452,80.869],[46.447,80.569],[46.445,80.429],[46.443,80.309],[46.443,80.309],[46.443,80.309],[46.443,80.309],[46.443,80.278],[46.442,80.272],[46.44,80.106],[46.436,79.847],[46.426,79.192],[46.418,78.65],[46.369,75.388]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18.75,"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],[0,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]],"v":[[46,51],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[46.486,83.156],[46.452,80.869],[46.447,80.569],[46.445,80.429],[46.443,80.309],[46.443,80.309],[46.443,80.309],[46.443,80.309],[46.443,80.278],[46.442,80.272],[46.44,80.106],[46.436,79.847],[46.426,79.192],[46.418,78.65],[46.369,75.388]],"c":true}],"e":[{"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],[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]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[59.396,48.603],[59.127,45.134],[59.002,43.519],[58.895,42.138],[58.895,42.135],[58.895,42.135],[58.895,42.13],[58.867,41.77],[58.862,41.702],[58.714,39.791],[58.483,36.802],[57.897,29.236],[57.413,22.983],[54.499,-14.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":26.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],[0,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]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[59.396,48.603],[59.127,45.134],[59.002,43.519],[58.895,42.138],[58.895,42.135],[58.895,42.135],[58.895,42.13],[58.867,41.77],[58.862,41.702],[58.714,39.791],[58.483,36.802],[57.897,29.236],[57.413,22.983],[54.499,-14.678]],"c":true}],"e":[{"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],[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]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[63.736,48.78],[64.038,45.335],[64.178,43.731],[64.298,42.359],[64.299,42.357],[64.299,42.356],[64.299,42.352],[64.33,41.994],[64.336,41.926],[64.503,40.028],[64.763,37.059],[65.421,29.545],[64.827,-14.457],[54.499,-14.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","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],[0,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]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[63.736,48.78],[64.038,45.335],[64.178,43.731],[64.298,42.359],[64.299,42.357],[64.299,42.356],[64.299,42.352],[64.33,41.994],[64.336,41.926],[64.503,40.028],[64.763,37.059],[65.421,29.545],[64.827,-14.457],[54.499,-14.678]],"c":true}],"e":[{"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],[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]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[81.251,58.077],[81.371,51.622],[81.427,48.619],[81.475,46.048],[81.475,46.044],[81.475,46.043],[81.475,46.035],[81.488,45.365],[81.49,45.237],[81.556,41.682],[81.659,36.12],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41.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],[0,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]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[81.251,58.077],[81.371,51.622],[81.427,48.619],[81.475,46.048],[81.475,46.044],[81.475,46.043],[81.475,46.035],[81.488,45.365],[81.49,45.237],[81.556,41.682],[81.659,36.12],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.336,2.318],[0.38,2.831],[0,0],[0.002,0.016],[0.01,0.074],[0.147,1.172],[0.048,0.39],[-0.398,0.146],[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.303,-2.09],[-0.005,-0.04],[0,0],[-0.01,-0.074],[-0.158,-1.185],[-0.05,-0.398],[-0.617,-5.064],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[71.251,96.577],[91.432,85.489],[90.865,81.643],[89.794,73.991],[89.778,73.87],[89.772,73.822],[89.742,73.599],[89.281,70.045],[89.135,68.862],[88.515,59.361],[79.814,42.439],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.336,2.318],[0.38,2.831],[0,0],[0.002,0.016],[0.01,0.074],[0.147,1.172],[0.048,0.39],[-0.398,0.146],[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.303,-2.09],[-0.005,-0.04],[0,0],[-0.01,-0.074],[-0.158,-1.185],[-0.05,-0.398],[-0.617,-5.064],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[71.251,96.577],[91.432,85.489],[90.865,81.643],[89.794,73.991],[89.778,73.87],[89.772,73.822],[89.742,73.599],[89.281,70.045],[89.135,68.862],[88.515,59.361],[79.814,42.439],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.605,4.652],[0.707,5.67],[0.01,0.081],[0.004,0.032],[0.019,0.149],[0.282,2.343],[0.093,0.78],[-0.398,0.146],[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.546,-4.194],[-0.01,-0.081],[-0.004,-0.032],[-0.019,-0.149],[-0.295,-2.373],[-0.096,-0.796],[-1.201,-10.121],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[71.251,96.577],[91.432,85.489],[90.417,77.766],[88.46,62.424],[88.43,62.183],[88.418,62.088],[88.362,61.641],[87.491,54.526],[87.208,52.161],[85.515,33.361],[79.814,42.439],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.605,4.652],[0.707,5.67],[0.01,0.081],[0.004,0.032],[0.019,0.149],[0.282,2.343],[0.093,0.78],[-0.398,0.146],[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.546,-4.194],[-0.01,-0.081],[-0.004,-0.032],[-0.019,-0.149],[-0.295,-2.373],[-0.096,-0.796],[-1.201,-10.121],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[71.251,96.577],[91.432,85.489],[90.417,77.766],[88.46,62.424],[88.43,62.183],[88.418,62.088],[88.362,61.641],[87.491,54.526],[87.208,52.161],[85.515,33.361],[79.814,42.439],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[-0.02,0.137],[-0.007,0.052],[0.001,0.218],[1.949,-0.257],[0.001,0.004],[-0.427,0.157],[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],[3.026,-7.611],[0.031,-0.146],[0.008,-0.054],[0.031,-0.246],[-0.016,-3.466],[-0.662,0.087],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[41,-15.5],[-3.5,41.5],[-6,90.5],[16,90],[56.522,85.525],[71.438,75.001],[81.251,96.577],[101.432,85.489],[105.72,51.786],[109.753,42.158],[111.33,42.983],[112.602,41.824],[109.895,40.878],[112.587,37.251],[111.48,37.442],[95.515,33.361],[89.814,42.439],[91.921,22.045],[74.827,-14.457],[64.499,-14.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":63.75,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[-0.02,0.137],[-0.007,0.052],[0.001,0.218],[1.949,-0.257],[0.001,0.004],[-0.427,0.157],[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],[3.026,-7.611],[0.031,-0.146],[0.008,-0.054],[0.031,-0.246],[-0.016,-3.466],[-0.662,0.087],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[41,-15.5],[-3.5,41.5],[-6,90.5],[16,90],[56.522,85.525],[71.438,75.001],[81.251,96.577],[101.432,85.489],[105.72,51.786],[109.753,42.158],[111.33,42.983],[112.602,41.824],[109.895,40.878],[112.587,37.251],[111.48,37.442],[95.515,33.361],[89.814,42.439],[91.921,22.045],[74.827,-14.457],[64.499,-14.678]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[2.392,3.689],[1.083,1.699],[0.034,3.46],[0.009,12.741],[0.001,0.004],[-0.427,0.157],[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],[3.026,-7.611],[0.049,-0.233],[-0.939,-1.449],[-5.086,-7.973],[-0.045,-4.534],[-0.003,-4.327],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[71.251,96.577],[91.432,85.489],[97.72,111.786],[122.753,116.658],[118.697,110.115],[115.63,105.354],[108.31,84.18],[108.237,41.212],[108.23,34.048],[85.515,33.361],[79.814,42.439],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":68.75,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[2.392,3.689],[1.083,1.699],[0.034,3.46],[0.009,12.741],[0.001,0.004],[-0.427,0.157],[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],[3.026,-7.611],[0.049,-0.233],[-0.939,-1.449],[-5.086,-7.973],[-0.045,-4.534],[-0.003,-4.327],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[71.251,96.577],[91.432,85.489],[97.72,111.786],[122.753,116.658],[118.697,110.115],[115.63,105.354],[108.31,84.18],[108.237,41.212],[108.23,34.048],[85.515,33.361],[79.814,42.439],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[0.347,3.557],[0.161,1.639],[0.034,3.46],[4.388,13.024],[0.001,0.004],[-0.427,0.157],[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],[3.026,-7.611],[0.049,-0.233],[-0.136,-1.397],[-0.757,-7.694],[-0.045,-4.534],[-1.49,-4.423],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-35.5],[-13.5,21.5],[-7.818,96.275],[6.182,96.775],[46.704,92.299],[60.87,81.751],[70.683,103.327],[90.864,92.239],[97.095,91.786],[122.753,96.658],[122.222,90.342],[121.771,85.75],[120.06,65.074],[106.97,21.266],[104.48,13.942],[85.515,13.361],[79.814,22.439],[81.921,2.045],[64.827,-34.457],[54.499,-34.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[0.347,3.557],[0.161,1.639],[0.034,3.46],[4.388,13.024],[0.001,0.004],[-0.427,0.157],[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],[3.026,-7.611],[0.049,-0.233],[-0.136,-1.397],[-0.757,-7.694],[-0.045,-4.534],[-1.49,-4.423],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-35.5],[-13.5,21.5],[-7.818,96.275],[6.182,96.775],[46.704,92.299],[60.87,81.751],[70.683,103.327],[90.864,92.239],[97.095,91.786],[122.753,96.658],[122.222,90.342],[121.771,85.75],[120.06,65.074],[106.97,21.266],[104.48,13.942],[85.515,13.361],[79.814,22.439],[81.921,2.045],[64.827,-34.457],[54.499,-34.678]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[0.545,11.145],[0.25,5.06],[0.034,3.46],[3.965,-3.222],[0.001,0.004],[-0.427,0.157],[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],[3.026,-7.611],[0.049,-0.233],[-0.214,-4.377],[-1.176,-23.754],[-0.045,-4.534],[-1.346,1.094],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-25.5],[-13.5,31.5],[-8,89.5],[6,90],[47.522,84.275],[62.438,73.751],[71.183,100.327],[91.364,89.239],[97.72,101.786],[122.753,106.658],[121.881,87.265],[121.177,72.969],[118.56,17.574],[106.73,22.054],[104.48,23.942],[85.515,23.361],[79.814,32.439],[81.921,12.045],[64.827,-24.457],[54.499,-24.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":80,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[0.545,11.145],[0.25,5.06],[0.034,3.46],[3.965,-3.222],[0.001,0.004],[-0.427,0.157],[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],[3.026,-7.611],[0.049,-0.233],[-0.214,-4.377],[-1.176,-23.754],[-0.045,-4.534],[-1.346,1.094],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-25.5],[-13.5,31.5],[-8,89.5],[6,90],[47.522,84.275],[62.438,73.751],[71.183,100.327],[91.364,89.239],[97.72,101.786],[122.753,106.658],[121.881,87.265],[121.177,72.969],[118.56,17.574],[106.73,22.054],[104.48,23.942],[85.515,23.361],[79.814,32.439],[81.921,12.045],[64.827,-24.457],[54.499,-24.678]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[-19.442,26.716],[-2.668,8.81],[0.032,3.273],[-0.42,-3.904],[0.002,0.005],[-0.427,0.157],[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],[3.026,-7.611],[0.052,-0.25],[7.635,-10.492],[11.052,-36.494],[-0.04,-4.114],[0.42,3.904],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[71.251,96.577],[91.432,85.489],[97.72,111.786],[122.753,116.658],[170.518,62.793],[187.094,33.028],[164.06,-23.426],[106.08,-11.904],[104.48,33.942],[85.515,33.361],[79.814,42.439],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":92.5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[-19.442,26.716],[-2.668,8.81],[0.032,3.273],[-0.42,-3.904],[0.002,0.005],[-0.427,0.157],[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],[3.026,-7.611],[0.052,-0.25],[7.635,-10.492],[11.052,-36.494],[-0.04,-4.114],[0.42,3.904],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[71.251,96.577],[91.432,85.489],[97.72,111.786],[122.753,116.658],[170.518,62.793],[187.094,33.028],[164.06,-23.426],[106.08,-11.904],[104.48,33.942],[85.515,33.361],[79.814,42.439],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.677,11.764],[-1.163,5.562],[-19.414,27.8],[-2.375,7.842],[0.032,3.273],[-0.42,-3.904],[0.002,0.005],[-0.427,0.157],[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],[3.026,-7.611],[0.054,-0.261],[6.505,-9.315],[11.052,-36.494],[-0.04,-4.114],[0.42,3.904],[0.935,-0.532],[0.985,-0.361],[0,0],[0,0],[0,0],[0,0]],"v":[[31,-15.5],[-13.5,41.5],[-8,89.5],[6,90],[46.522,85.525],[61.438,75.001],[71.251,96.577],[91.432,85.489],[97.72,111.786],[122.753,116.658],[219.983,107.837],[187.094,33.028],[164.06,-23.426],[106.08,-11.904],[104.48,33.942],[85.515,33.361],[79.814,42.439],[81.921,22.045],[64.827,-14.457],[54.499,-14.678]],"c":true}]},{"t":103.75}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[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],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[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":[[-92.43,41.943],[-92.43,29.503],[-89.412,29.503],[-89.412,19.37],[-86.393,19.37],[-86.393,16.331],[-85.89,16.331],[-85.265,9.743],[-82.75,9.743],[-83.375,16.331],[-82.369,16.331],[-82.369,15.824],[-80.86,15.824],[-80.86,16.331],[-79.854,16.331],[-79.854,24.943],[-72.811,24.943],[-72.811,30.01],[-70.296,30.01],[-70.296,31.023],[-69.793,31.023],[-69.793,30.516],[-64.763,30.516],[-64.763,33.049],[-56.211,33.049],[-56.211,27.984],[-54.199,27.984],[-54.199,25.958],[-50.678,25.958],[-50.678,25.451],[-48.665,25.451],[-48.665,25.958],[-47.156,25.958],[-47.156,28.49],[-45.647,28.49],[-45.647,35.077],[-43.635,35.077],[-43.01,-12.549],[-39.489,-12.549],[-39.489,-18.122],[-34.458,-18.122],[-34.458,-21.163],[-30.938,-21.163],[-30.938,-42.443],[-27.919,-42.443],[-27.919,-21.163],[-23.895,-21.163],[-23.895,-18.122],[-19.367,-18.122],[-19.367,-12.044],[-16.852,-12.044],[-16.852,10.251],[-6.288,10.251],[-6.913,40.65],[-5.908,40.65],[-5.908,23.93],[-5.404,23.93],[-4.779,3.663],[0.755,3.663],[0.755,-0.389],[3.774,-0.389],[3.774,2.144],[7.798,2.144],[7.798,3.663],[13.834,3.663],[13.834,33.049],[16.349,33.049],[16.349,31.023],[26.913,31.023],[26.913,-8.497],[31.441,-8.497],[31.441,-10.016],[34.458,-10.016],[34.458,-13.564],[39.489,-13.564],[39.489,-15.589],[40.997,-15.589],[40.997,-34.337],[44.017,-34.337],[44.017,-15.589],[45.525,-15.589],[45.525,-13.564],[50.557,-13.564],[50.557,-10.016],[53.574,-10.016],[53.574,-7.99],[57.599,-7.99],[57.599,3.663],[62.629,3.663],[62.629,0.118],[72.188,0.118],[72.188,1.131],[76.212,1.131],[76.212,4.171],[82.247,4.171],[82.247,3.157],[88.788,3.157],[88.788,5.691],[91.805,5.691],[91.805,42.443]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.941176474094,0.466666668653,0.184313729405,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[92.187,43.056],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":165,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"melbourne_purple Outlines Comp 1","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,42.5,0],"ix":2},"a":{"a":0,"k":[100,42.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":200,"h":85,"ip":0,"op":165,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"melbourne_purple Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,42.5,0],"ix":2},"a":{"a":0,"k":[92.5,42.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[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],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[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":[[-91.805,41.943],[-91.805,29.503],[-88.787,29.503],[-88.787,19.37],[-85.768,19.37],[-85.768,16.331],[-85.265,16.331],[-85.265,9.743],[-82.75,9.743],[-82.75,16.331],[-81.744,16.331],[-81.744,15.824],[-80.235,15.824],[-80.235,16.331],[-79.229,16.331],[-79.229,24.943],[-72.186,24.943],[-72.186,30.01],[-69.671,30.01],[-69.671,31.023],[-69.168,31.023],[-69.168,30.516],[-64.138,30.516],[-64.138,33.049],[-55.586,33.049],[-55.586,27.984],[-53.574,27.984],[-53.574,25.958],[-50.053,25.958],[-50.053,25.451],[-48.04,25.451],[-48.04,25.958],[-46.531,25.958],[-46.531,28.49],[-45.022,28.49],[-45.022,35.077],[-43.01,35.077],[-43.01,-12.549],[-39.489,-12.549],[-39.489,-18.122],[-34.458,-18.122],[-34.458,-21.163],[-30.938,-21.163],[-30.938,-42.443],[-27.919,-42.443],[-27.919,-21.163],[-23.895,-21.163],[-23.895,-18.122],[-19.367,-18.122],[-19.367,-12.044],[-16.852,-12.044],[-16.852,10.251],[-6.288,10.251],[-6.288,40.65],[-5.283,40.65],[-5.283,23.93],[-4.779,23.93],[-4.779,3.663],[0.755,3.663],[0.755,-0.389],[3.774,-0.389],[3.774,2.144],[7.798,2.144],[7.798,3.663],[13.834,3.663],[13.834,33.049],[16.35,33.049],[16.35,31.023],[26.913,31.023],[26.913,-8.497],[31.441,-8.497],[31.441,-10.016],[34.459,-10.016],[34.459,-13.564],[39.489,-13.564],[39.489,-15.589],[40.997,-15.589],[40.997,-34.337],[44.017,-34.337],[44.017,-15.589],[45.525,-15.589],[45.525,-13.564],[50.557,-13.564],[50.557,-10.016],[53.574,-10.016],[53.574,-7.99],[57.599,-7.99],[57.599,3.663],[62.629,3.663],[62.629,0.118],[72.188,0.118],[72.188,1.131],[76.212,1.131],[76.212,4.171],[82.247,4.171],[82.247,3.157],[88.788,3.157],[88.788,5.691],[91.805,5.691],[91.805,42.443]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.458999992819,0.372999991623,0.638999968884,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[92.187,43.056],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":165,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"melbourne","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,42.5,0],"ix":2},"a":{"a":0,"k":[100,42.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":200,"h":85,"ip":0,"op":165,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/marker.json b/external/rlottie/example/resource/marker.json new file mode 100644 index 000000000..d846b1108 --- /dev/null +++ b/external/rlottie/example/resource/marker.json @@ -0,0 +1 @@ +{"v":"5.5.9","fr":29.9700012207031,"ip":0,"op":208.000008472014,"w":1920,"h":1080,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"third Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,844,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.211,0.188],[-0.305,0],[-0.211,-0.164],[0,-0.352],[0,0],[0,0],[0,-0.633],[0.609,0],[0,0],[0,0],[-0.235,-0.281],[-0.516,0],[0,0],[-0.211,-0.187],[0,-0.281],[0.187,-0.188],[0.328,0],[0,0],[0.609,0.726],[0,0.914],[0,0],[0,0],[0,0.656],[-0.539,0],[0,0],[0,0]],"o":[[0.211,-0.164],[0.304,0],[0.234,0.188],[0,0],[0,0],[0.609,0],[0,0.656],[0,0],[0,0],[0,0.422],[0.281,0.352],[0,0],[0.328,0],[0.187,0.188],[0,0.258],[-0.211,0.211],[0,0],[-1.078,0],[-0.563,-0.633],[0,0],[0,0],[-0.539,0],[0,-0.633],[0,0],[0,0],[0,-0.352]],"v":[[4.324,-24.504],[5.098,-24.75],[5.871,-24.504],[6.223,-23.695],[6.223,-18.809],[9.105,-18.809],[10.02,-17.859],[9.105,-16.875],[6.223,-16.875],[6.223,-2.918],[6.574,-1.863],[7.77,-1.336],[9.035,-1.336],[9.844,-1.055],[10.125,-0.352],[9.844,0.316],[9.035,0.633],[7.383,0.633],[4.852,-0.457],[4.008,-2.777],[4.008,-16.875],[2.109,-16.875],[1.301,-17.859],[2.109,-18.809],[4.008,-18.809],[4.008,-23.695]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"t","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.211,0.211],[-0.305,0],[-0.211,-0.187],[0,-0.352],[0,0],[-0.867,0.469],[-1.36,0],[-1.125,-1.148],[0,-1.523],[0,0],[0.234,-0.235],[0.304,0],[0.211,0.187],[0,0.352],[0,0],[0.656,0.656],[1.218,0],[1.055,-0.656],[0.867,-1.218],[0,0],[0.234,-0.235],[0.281,-0.024],[0.211,0.211],[0,0.375],[0,0]],"o":[[0.211,-0.187],[0.281,0],[0.234,0.211],[0,0],[0.773,-0.89],[1.101,-0.586],[1.898,0],[1.031,1.032],[0,0],[0,0.352],[-0.211,0.187],[-0.305,0],[-0.211,-0.235],[0,0],[0,-1.007],[-0.703,-0.75],[-1.219,0],[-0.961,0.61],[0,0],[0,0.375],[-0.211,0.187],[-0.305,0],[-0.211,-0.211],[0,0],[0,-0.352]],"v":[[14.66,-26.156],[15.434,-26.438],[16.172,-26.156],[16.523,-25.313],[16.523,-16.488],[18.984,-18.527],[22.676,-19.406],[27.211,-17.684],[28.758,-13.852],[28.758,-0.527],[28.406,0.352],[27.633,0.633],[26.859,0.352],[26.543,-0.527],[26.543,-13.852],[25.559,-16.348],[22.676,-17.473],[19.266,-16.488],[16.523,-13.746],[16.523,-0.563],[16.172,0.352],[15.434,0.668],[14.66,0.352],[14.344,-0.527],[14.344,-25.313]],"c":true},"ix":2},"nm":"h","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"h","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.211,0.164],[-0.305,0],[-0.211,-0.164],[0,-0.328],[0,0],[0.234,-0.211],[0.304,0],[0.211,0.187],[0,0.352],[0,0]],"o":[[0.211,-0.187],[0.304,0],[0.234,0.188],[0,0],[0,0.352],[-0.211,0.211],[-0.305,0],[-0.211,-0.235],[0,0],[0,-0.328]],"v":[[35.578,-19.16],[36.352,-19.441],[37.125,-19.195],[37.477,-18.422],[37.477,-0.527],[37.125,0.316],[36.352,0.633],[35.578,0.352],[35.262,-0.527],[35.262,-18.422]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.328,-0.375],[0,-0.515],[0.304,-0.352],[0.539,0],[0.304,0.375],[0,0.492],[-0.281,0.352],[-0.563,0]],"o":[[0.304,0.352],[0,0.469],[-0.328,0.375],[-0.563,0],[-0.281,-0.328],[0,-0.515],[0.304,-0.375],[0.539,0]],"v":[[37.652,-25.875],[38.109,-24.574],[37.652,-23.344],[36.352,-22.781],[35.051,-23.344],[34.629,-24.574],[35.051,-25.875],[36.352,-26.438]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"i","np":5,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.211,0.188],[-0.305,0],[-0.211,-0.141],[0,-0.328],[0,0],[-0.68,0.422],[-1.125,0],[-0.024,-0.703],[0.586,0],[0.89,-0.586],[0.422,-0.914],[0,0],[0.234,-0.211],[0.281,0],[0.211,0.187],[0,0.352],[0,0]],"o":[[0.211,-0.164],[0.281,0],[0.234,0.188],[0,0],[0.586,-0.82],[0.89,-0.563],[0.515,0],[0.023,0.727],[-1.149,0],[-0.797,0.516],[0,0],[0,0.352],[-0.211,0.187],[-0.305,0],[-0.211,-0.211],[0,0],[0,-0.304]],"v":[[43.91,-18.879],[44.684,-19.125],[45.422,-18.914],[45.773,-18.141],[45.773,-16.699],[47.672,-18.563],[50.695,-19.406],[51.504,-18.352],[50.66,-17.262],[47.602,-16.383],[45.773,-14.238],[45.773,-0.527],[45.422,0.316],[44.684,0.598],[43.91,0.316],[43.594,-0.527],[43.594,-18.141]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"r","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.234,-0.211],[0.304,0],[0.211,0.187],[0,0.328],[0,0],[0.984,-0.563],[1.406,0],[1.5,2.086],[0,2.766],[-1.336,1.828],[-2.695,0],[-0.984,-0.515],[-0.727,-1.101],[0,0],[-0.211,0.211],[-0.305,0],[-0.211,-0.187],[0,-0.375]],"o":[[-0.024,0.375],[-0.188,0.164],[-0.281,-0.024],[-0.211,-0.211],[0,0],[-0.516,0.821],[-1.149,0.633],[-2.695,0],[-1.336,-1.828],[0,-2.789],[1.5,-2.062],[1.336,0],[1.007,0.516],[0,0],[0,-0.352],[0.211,-0.164],[0.281,0],[0.234,0.211],[0,0]],"v":[[71.332,-0.809],[70.945,0.07],[70.207,0.316],[69.469,0],[69.152,-0.809],[69.152,-2.32],[66.902,-0.246],[63.07,0.703],[56.777,-2.426],[54.773,-9.316],[56.777,-16.242],[63.07,-19.336],[66.551,-18.563],[69.152,-16.137],[69.152,-25.277],[69.469,-26.121],[70.242,-26.367],[70.98,-26.086],[71.332,-25.207]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.101,-1.664],[0,-2.25],[-0.961,-1.477],[-1.992,0],[-1.102,1.664],[0,2.227],[0.984,1.477],[1.969,0]],"o":[[-0.961,1.477],[0,2.227],[1.101,1.664],[1.969,0],[0.984,-1.477],[0,-2.25],[-1.102,-1.664],[-1.992,0]],"v":[[58.43,-14.906],[56.988,-9.316],[58.43,-3.762],[63.07,-1.266],[67.676,-3.762],[69.152,-9.316],[67.676,-14.906],[63.07,-17.402]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"d","np":5,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":-2.00000008146167,"op":898.00003657629,"st":-2.00000008146167,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"second Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,847,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100.824,100.824,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.219,-1.007],[-0.118,-1.429],[0.234,-0.234],[0.328,-0.047],[0.234,0.164],[0.023,0.328],[0.75,0.539],[1.57,0],[0.797,-0.492],[0,-0.82],[-0.703,-0.563],[-2.016,-0.515],[-1.008,-0.961],[0,-1.57],[1.148,-0.961],[2.32,0],[1.242,0.961],[0.07,1.828],[-0.235,0.211],[-0.305,0],[-0.211,-0.164],[-0.024,-0.328],[-0.773,-0.633],[-1.828,0],[-0.867,0.68],[0,1.032],[0.703,0.539],[2.297,0.563],[0.937,0.821],[0,1.453],[-1.243,0.891],[-1.898,0]],"o":[[1.031,0.867],[0.023,0.328],[-0.211,0.188],[-0.305,0.024],[-0.258,-0.187],[-0.094,-1.031],[-0.797,-0.586],[-1.195,0],[-0.797,0.539],[0,0.961],[0.75,0.586],[2.461,0.563],[0.961,0.891],[0,1.57],[-1.243,1.078],[-2.32,0],[-1.243,-0.961],[-0.024,-0.328],[0.187,-0.187],[0.304,-0.023],[0.234,0.164],[0,1.219],[0.82,0.68],[1.523,0],[0.82,-0.609],[0,-0.961],[-0.844,-0.68],[-2.086,-0.539],[-1.032,-0.867],[0,-1.57],[1.172,-0.844],[2.367,0]],"v":[[14.344,-17.895],[16.066,-14.449],[15.75,-13.605],[14.941,-13.254],[14.133,-13.465],[13.711,-14.238],[12.445,-16.594],[8.895,-17.473],[5.906,-16.734],[4.711,-14.695],[5.766,-12.41],[9.914,-10.758],[15.117,-8.473],[16.559,-4.781],[14.836,-0.984],[9.492,0.633],[4.148,-0.809],[2.18,-4.992],[2.496,-5.801],[3.234,-6.082],[4.008,-5.871],[4.395,-5.133],[5.555,-2.355],[9.527,-1.336],[13.113,-2.355],[14.344,-4.816],[13.289,-7.066],[8.578,-8.93],[4.043,-10.969],[2.496,-14.449],[4.359,-18.141],[8.965,-19.406]],"c":true},"ix":2},"nm":"s","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"s","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.305,0.141],[-0.305,-0.117],[-0.118,-0.258],[0.141,-0.352],[1.289,-0.867],[1.781,0],[1.477,2.063],[0,2.719],[-1.336,1.898],[-2.508,0],[-1.5,-2.062],[0,-2.742],[0,0],[0,0],[-0.914,-1.359],[-1.781,0],[-0.938,0.821],[-0.563,1.219]],"o":[[0.281,-0.093],[0.281,0.094],[0.141,0.305],[-0.68,1.641],[-1.313,0.914],[-2.508,0],[-1.336,-1.875],[0,-2.742],[1.477,-2.062],[2.508,0],[1.359,1.898],[0,0],[0,0],[0.093,1.992],[1.055,1.617],[1.406,0],[0.726,-0.609],[0.141,-0.352]],"v":[[35.156,-6.047],[36.035,-6.012],[36.633,-5.484],[36.633,-4.5],[33.68,-0.738],[29.039,0.633],[23.063,-2.461],[21.059,-9.352],[23.063,-16.313],[29.039,-19.406],[35.051,-16.313],[37.09,-9.352],[37.09,-8.789],[23.273,-8.789],[24.785,-3.762],[29.039,-1.336],[32.555,-2.566],[34.488,-5.309]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.867,1.266],[1.734,0],[1.055,-1.523],[0.141,-1.711]],"o":[[-0.141,-1.664],[-1.078,-1.547],[-1.735,0],[-0.867,1.243],[0,0]],"v":[[34.77,-10.758],[33.258,-15.152],[29.039,-17.473],[24.855,-15.188],[23.344,-10.758]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"e","np":5,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.523,-2.062],[0,-2.789],[-1.289,-1.758],[-2.836,0],[-1.336,0.961],[-0.703,1.477],[0.164,0.235],[0.328,0.07],[0.281,-0.117],[0.093,-0.328],[0.867,-0.515],[1.664,0],[1.055,1.594],[0,2.32],[-0.961,1.453],[-1.992,0],[-0.844,-0.492],[-0.352,-1.101],[-0.305,-0.141],[-0.328,0.07],[-0.164,0.235],[0.07,0.305],[1.148,0.844],[2.062,0]],"o":[[-1.336,1.852],[0,2.883],[1.477,2.016],[2.18,0],[1.007,-0.75],[0.141,-0.352],[-0.141,-0.234],[-0.305,-0.07],[-0.328,0.141],[-0.422,1.219],[-0.867,0.516],[-2.016,0],[-0.961,-1.453],[0,-2.273],[1.078,-1.664],[1.477,0],[0.844,0.516],[0.07,0.328],[0.258,0.118],[0.304,-0.07],[0.187,-0.234],[-0.375,-1.242],[-1.383,-0.984],[-2.742,0]],"v":[[43.805,-16.313],[41.801,-9.352],[43.734,-2.391],[50.203,0.633],[55.477,-0.809],[58.043,-4.148],[58.008,-5.027],[57.305,-5.484],[56.426,-5.414],[55.793,-4.711],[53.859,-2.109],[50.063,-1.336],[45.457,-3.727],[44.016,-9.387],[45.457,-14.977],[50.063,-17.473],[53.543,-16.734],[55.336,-14.309],[55.898,-13.605],[56.777,-13.535],[57.48,-13.992],[57.656,-14.801],[55.371,-17.93],[50.203,-19.406]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.57,-2.062],[0,-2.789],[1.406,-1.828],[2.765,0],[1.57,2.086],[0,2.766],[-1.383,1.828],[-2.789,0]],"o":[[1.406,1.828],[0,2.766],[-1.57,2.086],[-2.789,0],[-1.383,-1.828],[0,-2.789],[1.57,-2.062],[2.765,0]],"v":[[77.309,-16.242],[79.418,-9.316],[77.309,-2.426],[70.805,0.703],[64.266,-2.426],[62.191,-9.316],[64.266,-16.242],[70.805,-19.336]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.172,-1.664],[0,-2.25],[-1.008,-1.477],[-2.086,0],[-1.149,1.664],[0,2.203],[1.055,1.477],[2.062,0]],"o":[[-1.008,1.477],[0,2.227],[1.172,1.664],[2.062,0],[1.055,-1.5],[0,-2.25],[-1.149,-1.664],[-2.086,0]],"v":[[65.918,-14.906],[64.406,-9.316],[65.918,-3.762],[70.805,-1.266],[75.621,-3.762],[77.203,-9.316],[75.621,-14.906],[70.805,-17.402]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"o","np":5,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.211,0.211],[-0.305,0],[-0.211,-0.187],[0,-0.352],[0,0],[-1.055,0.61],[-1.477,0],[-1.125,-1.148],[0,-1.523],[0,0],[0.234,-0.235],[0.281,0],[0.211,0.187],[0,0.352],[0,0],[0.656,0.656],[1.218,0],[1.055,-0.703],[0.82,-1.5],[0,0],[0.234,-0.235],[0.281,-0.024],[0.211,0.211],[0,0.375],[0,0]],"o":[[0.211,-0.187],[0.281,0],[0.234,0.211],[0,0],[0.68,-1.148],[1.101,-0.633],[1.898,0],[1.031,1.032],[0,0],[0,0.352],[-0.211,0.187],[-0.305,0],[-0.211,-0.235],[0,0],[0,-1.007],[-0.727,-0.75],[-1.336,0],[-1.102,0.727],[0,0],[0,0.375],[-0.211,0.187],[-0.305,0],[-0.211,-0.211],[0,0],[0,-0.352]],"v":[[85.113,-18.844],[85.887,-19.125],[86.625,-18.844],[86.977,-18],[86.977,-15.82],[89.578,-18.457],[93.445,-19.406],[97.98,-17.684],[99.527,-13.852],[99.527,-0.527],[99.176,0.352],[98.438,0.633],[97.664,0.352],[97.348,-0.527],[97.348,-13.852],[96.363,-16.348],[93.445,-17.473],[89.859,-16.418],[86.977,-13.078],[86.977,-0.563],[86.625,0.352],[85.887,0.668],[85.113,0.352],[84.797,-0.527],[84.797,-18]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"n","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.234,-0.211],[0.304,0],[0.211,0.187],[0,0.328],[0,0],[0.984,-0.563],[1.406,0],[1.5,2.086],[0,2.766],[-1.336,1.828],[-2.695,0],[-0.984,-0.515],[-0.727,-1.101],[0,0],[-0.211,0.211],[-0.305,0],[-0.211,-0.187],[0,-0.375]],"o":[[-0.024,0.375],[-0.188,0.164],[-0.281,-0.024],[-0.211,-0.211],[0,0],[-0.516,0.821],[-1.149,0.633],[-2.695,0],[-1.336,-1.828],[0,-2.789],[1.5,-2.062],[1.336,0],[1.007,0.516],[0,0],[0,-0.352],[0.211,-0.164],[0.281,0],[0.234,0.211],[0,0]],"v":[[121.43,-0.809],[121.043,0.07],[120.305,0.316],[119.566,0],[119.25,-0.809],[119.25,-2.32],[117,-0.246],[113.168,0.703],[106.875,-2.426],[104.871,-9.316],[106.875,-16.242],[113.168,-19.336],[116.648,-18.563],[119.25,-16.137],[119.25,-25.277],[119.566,-26.121],[120.34,-26.367],[121.078,-26.086],[121.43,-25.207]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.101,-1.664],[0,-2.25],[-0.961,-1.477],[-1.992,0],[-1.102,1.664],[0,2.227],[0.984,1.477],[1.969,0]],"o":[[-0.961,1.477],[0,2.227],[1.101,1.664],[1.969,0],[0.984,-1.477],[0,-2.25],[-1.102,-1.664],[-1.992,0]],"v":[[108.527,-14.906],[107.086,-9.316],[108.527,-3.762],[113.168,-1.266],[117.773,-3.762],[119.25,-9.316],[117.773,-14.906],[113.168,-17.402]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"d","np":5,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":-2.00000008146167,"op":898.00003657629,"st":-2.00000008146167,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"first Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[413,844,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.539,0.633],[-1.078,0],[0,0],[-0.211,-0.187],[0,-0.281],[0.187,-0.187],[0.352,0],[0,0],[0.281,-0.328],[0,-0.445],[0,0],[0,0],[-0.211,-0.187],[0,-0.258],[0.187,-0.187],[0.352,0],[0,0],[0,0],[0.234,-0.235],[0.281,0],[0.211,0.187],[0,0.375],[0,0],[0,0],[0.211,0.211],[0,0.258],[-0.188,0.188],[-0.352,0],[0,0]],"o":[[0,-0.937],[0.609,-0.703],[0,0],[0.352,0],[0.187,0.188],[0,0.258],[-0.211,0.211],[0,0],[-0.516,0],[-0.235,0.281],[0,0],[0,0],[0.352,0],[0.187,0.188],[0,0.258],[-0.211,0.211],[0,0],[0,0],[0,0.352],[-0.211,0.211],[-0.305,0],[-0.211,-0.235],[0,0],[0,0],[-0.352,0],[-0.188,-0.187],[0,-0.258],[0.211,-0.187],[0,0],[0,0]],"v":[[4.781,-23.027],[5.59,-25.383],[8.121,-26.438],[9.527,-26.438],[10.371,-26.156],[10.652,-25.453],[10.371,-24.785],[9.527,-24.469],[8.508,-24.469],[7.313,-23.977],[6.961,-22.887],[6.961,-18.809],[9.527,-18.809],[10.371,-18.527],[10.652,-17.859],[10.371,-17.191],[9.527,-16.875],[6.961,-16.875],[6.961,-0.563],[6.609,0.316],[5.871,0.633],[5.098,0.352],[4.781,-0.563],[4.781,-16.875],[3.023,-16.875],[2.18,-17.191],[1.898,-17.859],[2.18,-18.527],[3.023,-18.809],[4.781,-18.809]],"c":true},"ix":2},"nm":"f","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"f","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.211,0.164],[-0.305,0],[-0.211,-0.164],[0,-0.328],[0,0],[0.234,-0.211],[0.304,0],[0.211,0.187],[0,0.352],[0,0]],"o":[[0.211,-0.187],[0.304,0],[0.234,0.188],[0,0],[0,0.352],[-0.211,0.211],[-0.305,0],[-0.211,-0.235],[0,0],[0,-0.328]],"v":[[16.031,-19.16],[16.805,-19.441],[17.578,-19.195],[17.93,-18.422],[17.93,-0.527],[17.578,0.316],[16.805,0.633],[16.031,0.352],[15.715,-0.527],[15.715,-18.422]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.328,-0.375],[0,-0.515],[0.304,-0.352],[0.539,0],[0.304,0.375],[0,0.492],[-0.281,0.352],[-0.563,0]],"o":[[0.304,0.352],[0,0.469],[-0.328,0.375],[-0.563,0],[-0.281,-0.328],[0,-0.515],[0.304,-0.375],[0.539,0]],"v":[[18.105,-25.875],[18.563,-24.574],[18.105,-23.344],[16.805,-22.781],[15.504,-23.344],[15.082,-24.574],[15.504,-25.875],[16.805,-26.438]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"i","np":5,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.211,0.188],[-0.305,0],[-0.211,-0.141],[0,-0.328],[0,0],[-0.68,0.422],[-1.125,0],[-0.024,-0.703],[0.586,0],[0.89,-0.586],[0.422,-0.914],[0,0],[0.234,-0.211],[0.281,0],[0.211,0.187],[0,0.352],[0,0]],"o":[[0.211,-0.164],[0.281,0],[0.234,0.188],[0,0],[0.586,-0.82],[0.89,-0.563],[0.515,0],[0.023,0.727],[-1.149,0],[-0.797,0.516],[0,0],[0,0.352],[-0.211,0.187],[-0.305,0],[-0.211,-0.211],[0,0],[0,-0.304]],"v":[[24.363,-18.879],[25.137,-19.125],[25.875,-18.914],[26.227,-18.141],[26.227,-16.699],[28.125,-18.563],[31.148,-19.406],[31.957,-18.352],[31.113,-17.262],[28.055,-16.383],[26.227,-14.238],[26.227,-0.527],[25.875,0.316],[25.137,0.598],[24.363,0.316],[24.047,-0.527],[24.047,-18.141]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"r","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.219,-1.007],[-0.118,-1.429],[0.234,-0.234],[0.328,-0.047],[0.234,0.164],[0.023,0.328],[0.75,0.539],[1.57,0],[0.797,-0.492],[0,-0.82],[-0.703,-0.563],[-2.016,-0.515],[-1.008,-0.961],[0,-1.57],[1.148,-0.961],[2.32,0],[1.242,0.961],[0.07,1.828],[-0.235,0.211],[-0.305,0],[-0.211,-0.164],[-0.024,-0.328],[-0.773,-0.633],[-1.828,0],[-0.867,0.68],[0,1.032],[0.703,0.539],[2.297,0.563],[0.937,0.821],[0,1.453],[-1.243,0.891],[-1.898,0]],"o":[[1.031,0.867],[0.023,0.328],[-0.211,0.188],[-0.305,0.024],[-0.258,-0.187],[-0.094,-1.031],[-0.797,-0.586],[-1.195,0],[-0.797,0.539],[0,0.961],[0.75,0.586],[2.461,0.563],[0.961,0.891],[0,1.57],[-1.243,1.078],[-2.32,0],[-1.243,-0.961],[-0.024,-0.328],[0.187,-0.187],[0.304,-0.023],[0.234,0.164],[0,1.219],[0.82,0.68],[1.523,0],[0.82,-0.609],[0,-0.961],[-0.844,-0.68],[-2.086,-0.539],[-1.032,-0.867],[0,-1.57],[1.172,-0.844],[2.367,0]],"v":[[47.32,-17.895],[49.043,-14.449],[48.727,-13.605],[47.918,-13.254],[47.109,-13.465],[46.688,-14.238],[45.422,-16.594],[41.871,-17.473],[38.883,-16.734],[37.688,-14.695],[38.742,-12.41],[42.891,-10.758],[48.094,-8.473],[49.535,-4.781],[47.813,-0.984],[42.469,0.633],[37.125,-0.809],[35.156,-4.992],[35.473,-5.801],[36.211,-6.082],[36.984,-5.871],[37.371,-5.133],[38.531,-2.355],[42.504,-1.336],[46.09,-2.355],[47.32,-4.816],[46.266,-7.066],[41.555,-8.93],[37.02,-10.969],[35.473,-14.449],[37.336,-18.141],[41.941,-19.406]],"c":true},"ix":2},"nm":"s","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"s","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.211,0.188],[-0.305,0],[-0.211,-0.164],[0,-0.352],[0,0],[0,0],[0,-0.633],[0.609,0],[0,0],[0,0],[-0.235,-0.281],[-0.516,0],[0,0],[-0.211,-0.187],[0,-0.281],[0.187,-0.188],[0.328,0],[0,0],[0.609,0.726],[0,0.914],[0,0],[0,0],[0,0.656],[-0.539,0],[0,0],[0,0]],"o":[[0.211,-0.164],[0.304,0],[0.234,0.188],[0,0],[0,0],[0.609,0],[0,0.656],[0,0],[0,0],[0,0.422],[0.281,0.352],[0,0],[0.328,0],[0.187,0.188],[0,0.258],[-0.211,0.211],[0,0],[-1.078,0],[-0.563,-0.633],[0,0],[0,0],[-0.539,0],[0,-0.633],[0,0],[0,0],[0,-0.352]],"v":[[56.215,-24.504],[56.988,-24.75],[57.762,-24.504],[58.113,-23.695],[58.113,-18.809],[60.996,-18.809],[61.91,-17.859],[60.996,-16.875],[58.113,-16.875],[58.113,-2.918],[58.465,-1.863],[59.66,-1.336],[60.926,-1.336],[61.734,-1.055],[62.016,-0.352],[61.734,0.316],[60.926,0.633],[59.273,0.633],[56.742,-0.457],[55.898,-2.777],[55.898,-16.875],[54,-16.875],[53.191,-17.859],[54,-18.809],[55.898,-18.809],[55.898,-23.695]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568986481,0.921568986481,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"t","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":-2.00000008146167,"op":898.00003657629,"st":-2.00000008146167,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[962,539.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[118.823,95.694,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[226,7],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":0,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196090937,0.290196090937,0.290196090937,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20.695,309.194],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[108.969,468.415],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-2.00000008146167,"op":898.00003657629,"st":-2.00000008146167,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[1586,30],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.023529307917,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-19,241],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-2.00000008146167,"op":898.00003657629,"st":-2.00000008146167,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-2,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":78,"s":[9]},{"t":204.00000830909,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":-2,"s":[389,531,0],"to":[202,0,0],"ti":[-202,0,0]},{"t":204.00000830909,"s":[1601,531,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[217.139,372.284,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[311,155],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0.972549021244,0.015255670063,0.015255670063,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":95,"s":[0.972549021244,0.893713116646,0.015255670063,1]},{"t":204.00000830909,"s":[0.015255670063,0.127878397703,0.972549021244,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-24.5,-5.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[56.381,56.381],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-2.00000008146167,"op":898.00003657629,"st":-2.00000008146167,"bm":0}],"markers":[{"tm":14.0000005702317,"cm":"first","dr":0},{"tm":86.0000035028518,"cm":"second","dr":37.0000015070409},{"tm":164.000006679857,"cm":"third","dr":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/mask.json b/external/rlottie/example/resource/mask.json new file mode 100644 index 000000000..29437b721 --- /dev/null +++ b/external/rlottie/example/resource/mask.json @@ -0,0 +1 @@ +{"v":"5.0.6","fr":60,"ip":0,"op":30,"w":500,"h":500,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":1,"nm":"Red Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[27.614,0],[0,-27.614],[-27.614,0],[0,27.614]],"o":[[-27.614,0],[0,27.614],[27.614,0],[0,-27.614]],"v":[[100,50],[50,100],[100,150],[150,100]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[50,50],[50,150],[150,150],[150,50]],"c":true}]},{"t":29}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":200,"sh":200,"sc":"#ea0c11","ip":0,"op":30,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/material_wave_loading.json b/external/rlottie/example/resource/material_wave_loading.json new file mode 100644 index 000000000..cafcccf1e --- /dev/null +++ b/external/rlottie/example/resource/material_wave_loading.json @@ -0,0 +1 @@ +{"v":"4.6.8","fr":29.9700012207031,"ip":0,"op":40.0000016292334,"w":256,"h":256,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[208.6,127.969,0],"e":[208.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[208.6,88,0],"e":[208.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":40.0000016292334}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9843137,0.5490196,0,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[168.6,128,0],"e":[168.6,88,0],"to":[0,-6.66666650772095,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[168.6,88,0],"e":[168.6,128,0],"to":[0,0,0],"ti":[0,-6.66666650772095,0]},{"t":35.0000014255792}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9921569,0.8470588,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[128.594,127.969,0],"e":[128.594,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[128.594,88,0],"e":[128.594,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":30.0000012219251}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.2627451,0.627451,0.2784314,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":5,"s":[88.6,127.969,0],"e":[88.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[88.6,88,0],"e":[88.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":25.0000010182709}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.1176471,0.5333334,0.8980392,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 5","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[48.6,127.969,0],"e":[48.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[48.6,88,0],"e":[48.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":20.0000008146167}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.8980392,0.2235294,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/matte_two_item_with_lowerlayer.json b/external/rlottie/example/resource/matte_two_item_with_lowerlayer.json new file mode 100644 index 000000000..747380d96 --- /dev/null +++ b/external/rlottie/example/resource/matte_two_item_with_lowerlayer.json @@ -0,0 +1 @@ +{"v":"5.1.17","fr":29.9700012207031,"ip":0,"op":150.000006109625,"w":300,"h":300,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[30,30],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":5,"ix":3},"p":{"a":0,"k":[-42,3],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":41,"ix":6},"is":{"a":0,"k":31,"ix":8},"or":{"a":0,"k":70,"ix":7},"os":{"a":0,"k":37,"ix":9},"ix":2,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847843170166,0.072482459247,0.605201482773,1],"ix":4},"o":{"a":0,"k":65,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[1,0],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[163,44.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[0,0.5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-182.5,76.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"rc","d":1,"s":{"a":0,"k":[48,48],"ix":2},"p":{"a":0,"k":[-32,25],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/mnemonics.json b/external/rlottie/example/resource/mnemonics.json new file mode 100644 index 000000000..5c2020b29 --- /dev/null +++ b/external/rlottie/example/resource/mnemonics.json @@ -0,0 +1 @@ +{"v":"5.0.0","fr":25,"ip":0,"op":101,"w":1080,"h":1080,"nm":"mnemonics","ddd":1,"assets":[{"id":"comp_15","layers":[{"ddd":1,"ind":1,"ty":4,"nm":"pink circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"rx":{"a":0,"k":0,"ix":8},"ry":{"a":0,"k":-7,"ix":9},"rz":{"a":0,"k":0,"ix":10},"or":{"a":0,"k":[0,0,0],"ix":7},"p":{"a":0,"k":[933.891,385.891,0],"ix":2,"x":"var $bm_rt;\nvar l;\nl = thisComp.layer('pink line.Point1');\nvar point = thisComp.layer('pink line.Point1').content('Simple Path').content('Path 1').path.pointOnPath(div(thisComp.layer('pink line.Point1').content('Point Trim').offset, 360));\n$bm_rt = hasParent ? parent.fromComp(l.toComp(point)) : l.toComp(point);"},"a":{"a":0,"k":[-33.109,-122.109,0],"ix":1},"s":{"a":0,"k":[61,61,61],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wayfinder Follower","np":4,"mn":"Pseudo/WayfinderFollower","ix":1,"en":1,"ef":[{"ty":0,"nm":"Position","mn":"Pseudo/WayfinderFollower-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.502],"y":[1]},"o":{"x":[0.503],"y":[0]},"n":["0p502_1_0p503_0"],"t":0,"s":[97],"e":[3]},{"i":{"x":[0.502],"y":[1]},"o":{"x":[0.495],"y":[0]},"n":["0p502_1_0p495_0"],"t":50,"s":[3],"e":[97]},{"t":100}],"ix":1}},{"ty":0,"nm":"Offset","mn":"Pseudo/WayfinderFollower-0002","ix":2,"v":{"a":0,"k":0,"ix":2}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[49.781,49.781],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.98431372549,0.721568627451,0.756862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":22.1,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-33.109,-122.109],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":226,"st":0,"bm":0},{"ddd":1,"ind":2,"ty":4,"nm":"pink line","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"rx":{"a":0,"k":0,"ix":8},"ry":{"a":0,"k":0,"ix":9},"rz":{"a":1,"k":[{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p5_1_0p333_0"],"t":0,"s":[-10],"e":[10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.498],"y":[0]},"n":["0p667_1_0p498_0"],"t":50,"s":[10],"e":[-10]},{"t":100}],"ix":10},"or":{"a":0,"k":[0,0,0],"ix":7},"p":{"a":0,"k":[540,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wayfinder Leader","np":5,"mn":"Pseudo/WayfinderLeader","ix":1,"en":1,"ef":[{"ty":0,"nm":"Start","mn":"Pseudo/WayfinderLeader-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"End","mn":"Pseudo/WayfinderLeader-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":0,"nm":"Offset","mn":"Pseudo/WayfinderLeader-0003","ix":3,"v":{"a":0,"k":0,"ix":3}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-100,0],[-100,0],[-100,0],[-100,0]],"o":[[100,0],[100,0],[100,0],[100,0],[0,0]],"v":[[-400,-25],[-200,25],[0,-25],[200,25],[400,-25]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.941176470588,0.486274509804,0.521568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Simple Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\n$bm_rt = effect('Wayfinder Leader')(1).value;"},"e":{"a":0,"k":100,"ix":2,"x":"var $bm_rt;\n$bm_rt = effect('Wayfinder Leader')(2).value;"},"o":{"a":0,"k":0,"ix":3,"x":"var $bm_rt;\n$bm_rt = effect('Wayfinder Leader')(3).value;"},"m":2,"ix":2,"nm":"Main Path Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":226,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"pink line.Point1","cl":"Point1","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-100,0],[-100,0],[-100,0],[-100,0]],"o":[[100,0],[100,0],[100,0],[100,0],[0,0]],"v":[[-400,-25],[-200,25],[0,-25],[200,25],[400,-25]],"c":false},"ix":2,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Contents')('Path 1')('Path');"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Position');"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Anchor Point');"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Scale');"},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Rotation');"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Opacity');"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Skew');"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Skew Axis');"},"nm":"Transform"}],"nm":"Simple Path","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2,"x":"var $bm_rt;\n$bm_rt = 0.0001;"},"o":{"a":0,"k":0,"ix":3,"x":"var $bm_rt;\nvar mainTrim, start, end, pos, offset, trim, pointOffset, pointOffset, point;\nmainTrim = parent.content('Main Path Trim');\nstart = mainTrim.start;\nend = mainTrim.end;\npos = thisComp.layer('pink circle').effect('Wayfinder Follower')(1);\noffset = mainTrim.offset;\ntrim = sub(360, mul(thisProperty.propertyGroup(1).end, 3.6));\npointOffset = thisComp.layer('pink circle').effect('Wayfinder Follower')(2);\nif (pointOffset < 0)\n pointOffset = sub(360, mod(Math.abs(pointOffset), 360));\npoint = mod(sum(mul(div(pos, 100), trim), pointOffset), 360);\n$bm_rt = sum(linear(point, 0, 360, mul(div(start, 100), 360), mul(div(end, 100), trim)), offset);"},"m":2,"ix":3,"nm":"Point Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":226,"st":0,"bm":0}]},{"id":"comp_16","layers":[{"ddd":1,"ind":1,"ty":4,"nm":"purple line","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"rx":{"a":0,"k":0,"ix":8},"ry":{"a":0,"k":0,"ix":9},"rz":{"a":1,"k":[{"i":{"x":[0.503],"y":[1]},"o":{"x":[0.496],"y":[0]},"n":["0p503_1_0p496_0"],"t":0,"s":[10],"e":[-10]},{"i":{"x":[0.497],"y":[1]},"o":{"x":[0.495],"y":[0]},"n":["0p497_1_0p495_0"],"t":50,"s":[-10],"e":[10]},{"t":100}],"ix":10},"or":{"a":0,"k":[0,0,0],"ix":7},"p":{"a":0,"k":[540,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wayfinder Leader","np":5,"mn":"Pseudo/WayfinderLeader","ix":1,"en":1,"ef":[{"ty":0,"nm":"Start","mn":"Pseudo/WayfinderLeader-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"End","mn":"Pseudo/WayfinderLeader-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":0,"nm":"Offset","mn":"Pseudo/WayfinderLeader-0003","ix":3,"v":{"a":0,"k":0,"ix":3}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-57.143,0],[-57.143,0],[-57.143,0],[-57.143,0],[-57.143,0],[-57.143,0],[-57.143,0]],"o":[[57.143,0],[57.143,0],[57.143,0],[57.143,0],[57.143,0],[57.143,0],[57.143,0],[0,0]],"v":[[-400,-25],[-285.714,25],[-171.429,-25],[-57.143,25],[57.143,-25],[171.429,25],[285.714,-25],[400,25]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.470588235294,0.356862745098,0.654901960784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Simple Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\n$bm_rt = effect('Wayfinder Leader')(1).value;"},"e":{"a":0,"k":100,"ix":2,"x":"var $bm_rt;\n$bm_rt = effect('Wayfinder Leader')(2).value;"},"o":{"a":0,"k":0,"ix":3,"x":"var $bm_rt;\n$bm_rt = effect('Wayfinder Leader')(3).value;"},"m":2,"ix":2,"nm":"Main Path Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":226,"st":0,"bm":0},{"ddd":1,"ind":2,"ty":4,"nm":"small purple circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"rx":{"a":0,"k":0,"ix":8},"ry":{"a":0,"k":-2,"ix":9},"rz":{"a":0,"k":0,"ix":10},"or":{"a":0,"k":[0,0,0],"ix":7},"p":{"a":0,"k":[138.573,471.552,0],"ix":2,"x":"var $bm_rt;\nvar l;\nl = thisComp.layer('purple line.Point1');\nvar point = thisComp.layer('purple line.Point1').content('Simple Path').content('Path 1').path.pointOnPath(div(thisComp.layer('purple line.Point1').content('Point Trim').offset, 360));\n$bm_rt = hasParent ? parent.fromComp(l.toComp(point)) : l.toComp(point);"},"a":{"a":0,"k":[106.148,-378.979,0],"ix":1},"s":{"a":0,"k":[127.821,127.821,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wayfinder Follower","np":4,"mn":"Pseudo/WayfinderFollower","ix":1,"en":1,"ef":[{"ty":0,"nm":"Position","mn":"Pseudo/WayfinderFollower-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.485],"y":[1]},"o":{"x":[0.495],"y":[0]},"n":["0p485_1_0p495_0"],"t":0,"s":[3],"e":[97]},{"i":{"x":[0.503],"y":[1]},"o":{"x":[0.508],"y":[0]},"n":["0p503_1_0p508_0"],"t":50,"s":[97],"e":[3]},{"t":100}],"ix":1}},{"ty":0,"nm":"Offset","mn":"Pseudo/WayfinderFollower-0002","ix":2,"v":{"a":0,"k":0,"ix":2}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[32.712,32.712],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.741176470588,0.682352941176,0.803921568627,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[106.148,-378.979],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":226,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"purple line.Point1","cl":"Point1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-57.143,0],[-57.143,0],[-57.143,0],[-57.143,0],[-57.143,0],[-57.143,0],[-57.143,0]],"o":[[57.143,0],[57.143,0],[57.143,0],[57.143,0],[57.143,0],[57.143,0],[57.143,0],[0,0]],"v":[[-400,-25],[-285.714,25],[-171.429,-25],[-57.143,25],[57.143,-25],[171.429,25],[285.714,-25],[400,25]],"c":false},"ix":2,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Contents')('Path 1')('Path');"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[1.345,81.745],"ix":2,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Position');"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Anchor Point');"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Scale');"},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Rotation');"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Opacity');"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Skew');"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\n$bm_rt = parent.content('Simple Path')('Transform')('Skew Axis');"},"nm":"Transform"}],"nm":"Simple Path","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2,"x":"var $bm_rt;\n$bm_rt = 0.0001;"},"o":{"a":0,"k":0,"ix":3,"x":"var $bm_rt;\nvar mainTrim, start, end, pos, offset, trim, pointOffset, pointOffset, point;\nmainTrim = parent.content('Main Path Trim');\nstart = mainTrim.start;\nend = mainTrim.end;\npos = thisComp.layer('small purple circle').effect('Wayfinder Follower')(1);\noffset = mainTrim.offset;\ntrim = sub(360, mul(thisProperty.propertyGroup(1).end, 3.6));\npointOffset = thisComp.layer('small purple circle').effect('Wayfinder Follower')(2);\nif (pointOffset < 0)\n pointOffset = sub(360, mod(Math.abs(pointOffset), 360));\npoint = mod(sum(mul(div(pos, 100), trim), pointOffset), 360);\n$bm_rt = sum(linear(point, 0, 360, mul(div(start, 100), 360), mul(div(end, 100), trim)), offset);"},"m":2,"ix":3,"nm":"Point Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":226,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"NULL CONTROL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[540,541,0],"ix":2},"a":{"a":0,"k":[60,60,0],"ix":1},"s":{"a":0,"k":[76,76,100],"ix":6}},"ao":0,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"centre yellow circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[540,540,0],"ix":2},"a":{"a":0,"k":[-411.797,-229.797,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.234,0.234,0.667],"y":[0.954,0.954,1]},"o":{"x":[0.125,0.125,0.333],"y":[0.419,0.419,0]},"n":["0p234_0p954_0p125_0p419","0p234_0p954_0p125_0p419","0p667_1_0p333_0"],"t":24,"s":[100,100,100],"e":[127.4,127.4,100]},{"i":{"x":[0.552,0.552,0.667],"y":[0.914,0.914,1]},"o":{"x":[0.456,0.456,0.333],"y":[-0.096,-0.096,0]},"n":["0p552_0p914_0p456_-0p096","0p552_0p914_0p456_-0p096","0p667_1_0p333_0"],"t":26,"s":[127.4,127.4,100],"e":[96,96,100]},{"i":{"x":[0.198,0.198,0.667],"y":[1,1,1]},"o":{"x":[0.358,0.358,0.167],"y":[-0.128,-0.128,0]},"n":["0p198_1_0p358_-0p128","0p198_1_0p358_-0p128","0p667_1_0p167_0"],"t":34,"s":[96,96,100],"e":[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]},"n":["0p667_1_0p167_0","0p667_1_0p167_0","0p667_1_0p167_0"],"t":38,"s":[100,100,100],"e":[100,100,100]},{"i":{"x":[0.234,0.234,0.667],"y":[0.954,0.954,1]},"o":{"x":[0.125,0.125,0.333],"y":[0.419,0.419,0]},"n":["0p234_0p954_0p125_0p419","0p234_0p954_0p125_0p419","0p667_1_0p333_0"],"t":74,"s":[100,100,100],"e":[127.4,127.4,100]},{"i":{"x":[0.552,0.552,0.667],"y":[0.914,0.914,1]},"o":{"x":[0.456,0.456,0.333],"y":[-0.096,-0.096,0]},"n":["0p552_0p914_0p456_-0p096","0p552_0p914_0p456_-0p096","0p667_1_0p333_0"],"t":76,"s":[127.4,127.4,100],"e":[96,96,100]},{"i":{"x":[0.198,0.198,0.667],"y":[1,1,1]},"o":{"x":[0.358,0.358,0.167],"y":[-0.128,-0.128,0]},"n":["0p198_1_0p358_-0p128","0p198_1_0p358_-0p128","0p667_1_0p167_0"],"t":84,"s":[96,96,100],"e":[100,100,100]},{"t":88}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-12.262,0],[0,-12.262],[12.262,0],[0,12.262]],"o":[[12.262,0],[0,12.262],[-12.262,0],[0,-12.262]],"v":[[0,-22.203],[22.203,0],[0,22.203],[-22.203,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[-411.797,-229.797],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.929411768913,0.35686275363,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"large circle R","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,59,0],"ix":2},"a":{"a":0,"k":[41.106,-37.462,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[398.419,-356.462],[39.106,-356.462],[39.106,302.245],[398.419,302.245]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ef":[{"ty":5,"nm":"Wayfinder Leader","np":5,"mn":"Pseudo/WayfinderLeader","ix":1,"en":1,"ef":[{"ty":0,"nm":"Start","mn":"Pseudo/WayfinderLeader-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"End","mn":"Pseudo/WayfinderLeader-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":0,"nm":"Offset","mn":"Pseudo/WayfinderLeader-0003","ix":3,"v":{"a":0,"k":0,"ix":3}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-153.567,0],[0,-153.567],[153.567,0],[0,153.567]],"o":[[153.567,0],[0,153.567],[-153.567,0],[0,-153.567]],"v":[[0,-278.058],[278.058,0],[0,278.058],[-278.058,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.629320750517,0.552072622262,0.71171875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":30,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[41.106,-37.462],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\n$bm_rt = effect('Wayfinder Leader')(1).value;"},"e":{"a":0,"k":100,"ix":2,"x":"var $bm_rt;\n$bm_rt = effect('Wayfinder Leader')(2).value;"},"o":{"a":0,"k":0,"ix":3,"x":"var $bm_rt;\n$bm_rt = effect('Wayfinder Leader')(3).value;"},"m":2,"ix":2,"nm":"Main Path Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"pink line & circle","parent":1,"refId":"comp_15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[58.026,82.711,0],"ix":2},"a":{"a":0,"k":[540,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1080,"h":1080,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"purple line and circle","parent":1,"refId":"comp_16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[52.105,65.921,0],"ix":2},"a":{"a":0,"k":[540,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1080,"h":1080,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"large circle L","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,59,0],"ix":2},"a":{"a":0,"k":[41.106,-37.462,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[42.419,-356.462],[-316.894,-356.462],[-316.894,302.245],[42.419,302.245]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[556.115,556.115],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.629320750517,0.552072622262,0.71171875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":30,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[41.106,-37.462],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":101,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/movie_loading.json b/external/rlottie/example/resource/movie_loading.json new file mode 100644 index 000000000..93990ccce --- /dev/null +++ b/external/rlottie/example/resource/movie_loading.json @@ -0,0 +1 @@ +{"v":"5.1.1","fr":29.9700012207031,"ip":0,"op":150.000006109625,"w":100,"h":100,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":0,"s":[287.27],"e":[646.501]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":48,"s":[646.501],"e":[1006.517]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":79,"s":[1006.517],"e":[1366.011]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":109,"s":[1366.011],"e":[1725.391]},{"t":149.000006068894}],"ix":10},"p":{"a":0,"k":[49.123,50.123,0],"ix":2},"a":{"a":0,"k":[-17.377,-13.377,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[78.246,78.246],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.623,-1.377],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[25.928,25.928],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":163.000006639126,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":0,"s":[214.668],"e":[574.301]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":48,"s":[574.301],"e":[935.271]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":79,"s":[935.271],"e":[1295.556]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":109,"s":[1295.556],"e":[1655.136]},{"t":149.000006068894}],"ix":10},"p":{"a":0,"k":[49.123,50.123,0],"ix":2},"a":{"a":0,"k":[-17.377,-13.377,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[78.246,78.246],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.623,-1.377],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[25.928,25.928],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":163.000006639126,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":0,"s":[143.536],"e":[503.692]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":48,"s":[503.692],"e":[863.287]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":79,"s":[863.287],"e":[1223.296]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":109,"s":[1223.296],"e":[1582.854]},{"t":149.000006068894}],"ix":10},"p":{"a":0,"k":[49.123,50.123,0],"ix":2},"a":{"a":0,"k":[-17.377,-13.377,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[78.246,78.246],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.623,-1.377],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[25.928,25.928],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":163.000006639126,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":0,"s":[70.817],"e":[430.711]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":48,"s":[430.711],"e":[791.651]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":79,"s":[791.651],"e":[1150.155]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":109,"s":[1150.155],"e":[1510.652]},{"t":149.000006068894}],"ix":10},"p":{"a":0,"k":[49.123,50.123,0],"ix":2},"a":{"a":0,"k":[-17.377,-13.377,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[78.246,78.246],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.623,-1.377],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[25.928,25.928],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":163.000006639126,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"n":["0p833_0p833_0p333_0"],"t":0,"s":[0],"e":[360]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":48,"s":[360],"e":[720]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":79,"s":[720],"e":[1080]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":109,"s":[1080],"e":[1440]},{"t":149.000006068894}],"ix":10},"p":{"a":0,"k":[49.123,50.123,0],"ix":2},"a":{"a":0,"k":[-17.377,-13.377,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[78.246,78.246],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.623,-1.377],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[25.928,25.928],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":163.000006639126,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[49.373,50.123,0],"ix":2},"a":{"a":0,"k":[1.623,-1.377,0],"ix":1},"s":{"a":0,"k":[45.779,45.779,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[78.246,78.246],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.623,-1.377],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[25.928,25.928],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":167.000006802049,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[49.123,50.623,0],"ix":2},"a":{"a":0,"k":[1.623,-1.377,0],"ix":1},"s":{"a":0,"k":[101.278,101.278,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[78.246,78.246],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.623,-1.377],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162.000006598395,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[34.906,4.721],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.498,36.876],"ix":2},"a":{"a":0,"k":[0.344,0.2],"ix":1},"s":{"a":0,"k":[100,92.67],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":167.000006802049,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/mughead.json b/external/rlottie/example/resource/mughead.json new file mode 100644 index 000000000..ffbb6e0ec --- /dev/null +++ b/external/rlottie/example/resource/mughead.json @@ -0,0 +1 @@ +{"v":"4.10.2","fr":12,"ip":0,"op":6,"w":800,"h":600,"nm":"Mughead","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"head tip","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-17,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.51,"y":1},"o":{"x":0.49,"y":0},"n":"0p51_1_0p49_0","t":0,"s":[{"i":[[101.998,-0.478],[0,0],[-55.505,1.557],[0,0]],"o":[[-101.998,0.478],[0,0],[55.505,-1.557],[0,0]],"v":[[4.002,-70.022],[-121,-64],[2.495,-70.943],[123,-62]],"c":true}],"e":[{"i":[[101.998,-0.478],[5.5,-3],[-55.505,1.557],[-1.5,2.75]],"o":[[-101.998,0.478],[-5.5,3],[55.505,-1.557],[1.5,-2.75]],"v":[[7.002,-70.522],[-121,-64],[6.995,-60.693],[123,-63.25]],"c":true}]},{"i":{"x":0.51,"y":1},"o":{"x":0.49,"y":0},"n":"0p51_1_0p49_0","t":3,"s":[{"i":[[101.998,-0.478],[5.5,-3],[-55.505,1.557],[-1.5,2.75]],"o":[[-101.998,0.478],[-5.5,3],[55.505,-1.557],[1.5,-2.75]],"v":[[7.002,-70.522],[-121,-64],[6.995,-60.693],[123,-63.25]],"c":true}],"e":[{"i":[[101.998,-0.478],[0,0],[-55.505,1.557],[0,0]],"o":[[-101.998,0.478],[0,0],[55.505,-1.557],[0,0]],"v":[[4.002,-70.022],[-121,-64],[2.495,-70.943],[123,-62]],"c":true}]},{"t":6}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Hose 2::Wrist","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n parentVal += eval([layerChain][0]).rotation;\n }\n return parentVal;\n}"},"p":{"a":1,"k":[{"i":{"x":0.49,"y":1},"o":{"x":0.37,"y":0},"n":"0p49_1_0p37_0","t":0,"s":[288,409,0],"e":[321,415,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.49,"y":1},"o":{"x":0.37,"y":0},"n":"0p49_1_0p37_0","t":3,"s":[321,415,0],"e":[288,409,0],"to":[0,0,0],"ti":[0,0,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\n$bm_rt = [\n 100,\n 100\n];"}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","np":18,"mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":220,"ix":1}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":-100,"ix":4}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":1,"ix":6}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[44,38],"ix":8,"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n 0,\n 0,\n 0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"ix":9,"x":"var $bm_rt;\ntry {\n var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n $bm_rt = thisComp.layer(b).toComp([\n 0,\n 0,\n 0\n ]);\n} catch (err) {\n $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"ix":11,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"ix":12,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"ix":13,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"ix":14,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n isEnabled = lyrAF(4)('Enable')(1);\n var falloffAngle = lyrAF(4)('Falloff')(1);\n hasAF = true;\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n threshRot %= 360;\n var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var offsetAngle = sub(threshRot, ctrlAngle);\n offsetAngle %= 360;\n var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n var absAngle = Math.abs(offsetAngle);\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n output = linear(absAngle, 0, falloffAngle, 0, 1);\n output *= sign;\n} else {\n output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n parentVal += eval([layerChain][0]).rotation;\n }\n return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"ix":15,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 2::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 2::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n} else {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[20,20],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\nif (thisLayer.active) {\n try {\n var eff = thisLayer(4)('RubberHose 2');\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var straight = eff('Straight');\n var hoseLength = div(eff('Hose Length'), 2);\n if (straight > hoseLength) {\n $bm_rt = [\n 0.51,\n 0.83,\n 0.98,\n 1\n ];\n } else {\n $bm_rt = value;\n }\n } catch (err) {\n $bm_rt = value;\n }\n} else {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = [\n 100,\n 100\n];"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Hose 1::Wrist","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n parentVal += eval([layerChain][0]).rotation;\n }\n return parentVal;\n}"},"p":{"a":1,"k":[{"i":{"x":0.49,"y":1},"o":{"x":0.37,"y":0},"n":"0p49_1_0p37_0","t":0,"s":[522,410,0],"e":[487,420,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.49,"y":1},"o":{"x":0.37,"y":0},"n":"0p49_1_0p37_0","t":3,"s":[487,420,0],"e":[522,410,0],"to":[0,0,0],"ti":[0,0,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\n$bm_rt = [\n 100,\n 100\n];"}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","np":18,"mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":220,"ix":1}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":1,"ix":6}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[44,38],"ix":8,"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n 0,\n 0,\n 0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"ix":9,"x":"var $bm_rt;\ntry {\n var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n $bm_rt = thisComp.layer(b).toComp([\n 0,\n 0,\n 0\n ]);\n} catch (err) {\n $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"ix":11,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"ix":12,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"ix":13,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"ix":14,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n isEnabled = lyrAF(4)('Enable')(1);\n var falloffAngle = lyrAF(4)('Falloff')(1);\n hasAF = true;\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n threshRot %= 360;\n var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var offsetAngle = sub(threshRot, ctrlAngle);\n offsetAngle %= 360;\n var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n var absAngle = Math.abs(offsetAngle);\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n output = linear(absAngle, 0, falloffAngle, 0, 1);\n output *= sign;\n} else {\n output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n parentVal += eval([layerChain][0]).rotation;\n }\n return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"ix":15,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 1::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 1::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n} else {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[20,20],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\nif (thisLayer.active) {\n try {\n var eff = thisLayer(4)('RubberHose 2');\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var straight = eff('Straight');\n var hoseLength = div(eff('Hose Length'), 2);\n if (straight > hoseLength) {\n $bm_rt = [\n 0.51,\n 0.83,\n 0.98,\n 1\n ];\n } else {\n $bm_rt = value;\n }\n } catch (err) {\n $bm_rt = value;\n }\n} else {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = [\n 100,\n 100\n];"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Glove 2","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":215.722,"ix":10},"p":{"a":0,"k":[-9.024,16.45,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[75,-75,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.406,-0.333]],"o":[[0,0],[0,0]],"v":[[5.63,-5.5],[-5.631,5.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[434.721,400.782],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[16.333,-1.856],[0,0]],"v":[[-10.333,0.928],[10.333,-0.072]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[421.351,351.021],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[12.964,-1.063],[0,0]],"v":[[-8.982,-1.135],[8.982,2.198]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[433.703,371.083],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[1,15.957],[0,0]],"v":[[3.834,-12],[-4.833,12]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[425.184,406.282],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.175,-0.137],[0.131,-0.101],[0.245,-0.208],[0.778,-0.842],[0.87,-1.172],[0.398,-0.659],[0.375,-0.694],[0.346,-0.705],[0.294,-0.695],[0.227,-0.659],[0.14,-0.593],[0.07,-0.491],[0.055,-0.354],[0,0],[0.054,0.719],[0.037,0.504],[0.007,0.628],[-0.077,0.717],[-0.14,0.778],[-0.2,0.812],[-0.258,0.816],[-0.297,0.796],[-0.311,0.756],[-0.675,1.142],[-0.469,0.655],[-0.17,0.201],[0,0],[-1.292,-1.055],[1.054,-1.293]],"o":[[0,0],[-0.101,0.069],[-0.477,0.419],[-0.792,0.827],[-0.422,0.593],[-0.429,0.644],[-0.406,0.683],[-0.359,0.703],[-0.3,0.695],[-0.231,0.659],[-0.13,0.594],[-0.077,0.493],[-0.11,0.713],[0,0],[-0.027,-0.362],[-0.043,-0.507],[0.002,-0.627],[0.074,-0.715],[0.134,-0.778],[0.187,-0.816],[0.227,-0.829],[0.267,-0.811],[0.65,-1.496],[0.658,-1.153],[0.237,-0.322],[0.14,-0.171],[1.054,-1.292],[1.293,1.054],[-0.146,0.179]],"v":[[5.122,-7.913],[4.921,-7.758],[4.389,-7.327],[2.435,-5.438],[-0.095,-2.403],[-1.37,-0.541],[-2.564,1.478],[-3.625,3.591],[-4.512,5.721],[-5.206,7.781],[-5.715,9.674],[-6.077,11.304],[-6.275,12.58],[-6.448,13.7],[-6.534,12.571],[-6.629,11.265],[-6.646,9.562],[-6.577,7.534],[-6.355,5.265],[-5.948,2.844],[-5.349,0.363],[-4.576,-2.088],[-3.665,-4.424],[-1.646,-8.434],[0.121,-11.167],[0.724,-11.951],[0.938,-12.214],[5.186,-12.645],[5.618,-8.396]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[366.726,359.156],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.143,-0.129],[0.265,-0.26],[0.83,-1.04],[0.472,-0.609],[0.435,-0.722],[0.419,-0.789],[0.4,-0.822],[0.367,-0.83],[0.299,-0.817],[0.228,-0.768],[0.148,-0.687],[0.063,-0.567],[0.056,-0.408],[0,0],[0.053,0.825],[0.037,0.578],[0.007,0.717],[-0.083,0.819],[-0.128,0.894],[-0.189,0.936],[-0.271,0.936],[-0.313,0.915],[-0.333,0.866],[-0.33,0.792],[-0.367,0.659],[-0.494,0.765],[-0.18,0.235],[0,0],[-1.336,-0.995],[0.995,-1.336],[0.142,-0.129]],"o":[[0,0],[-0.115,0.094],[-0.517,0.532],[-0.434,0.504],[-0.427,0.636],[-0.454,0.714],[-0.454,0.773],[-0.427,0.814],[-0.353,0.837],[-0.292,0.82],[-0.238,0.769],[-0.131,0.687],[-0.077,0.567],[-0.111,0.82],[0,0],[-0.027,-0.415],[-0.05,-0.581],[0.01,-0.716],[0.074,-0.819],[0.136,-0.892],[0.204,-0.93],[0.245,-0.945],[0.278,-0.928],[0.315,-0.875],[0.378,-0.767],[0.689,-1.34],[0.255,-0.378],[0.149,-0.201],[0.995,-1.336],[1.336,0.995],[-0.119,0.159],[0,0]],"v":[[5.468,-10.041],[5.249,-9.844],[4.663,-9.289],[2.557,-6.932],[1.237,-5.225],[-0.122,-3.214],[-1.457,-0.965],[-2.699,1.451],[-3.793,3.958],[-4.701,6.465],[-5.403,8.871],[-5.916,11.071],[-6.28,12.956],[-6.48,14.426],[-6.654,15.715],[-6.737,14.418],[-6.833,12.921],[-6.848,10.972],[-6.778,8.654],[-6.555,6.061],[-6.141,3.292],[-5.528,0.452],[-4.731,-2.362],[-3.789,-5.051],[-2.757,-7.527],[-1.683,-9.698],[0.183,-12.881],[0.822,-13.794],[1.051,-14.102],[5.272,-14.72],[5.889,-10.499],[5.497,-10.066]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[375.606,369.696],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.154,-0.142],[0.285,-0.285],[0.89,-1.136],[0.506,-0.664],[0.466,-0.787],[0.447,-0.857],[0.426,-0.893],[0.391,-0.901],[0.317,-0.886],[0.24,-0.832],[0.155,-0.742],[0.064,-0.613],[0.057,-0.44],[0,0],[0.05,0.89],[0.036,0.624],[0.002,0.773],[-0.095,0.882],[-0.145,0.962],[-0.211,1.006],[-0.299,1.006],[-0.344,0.982],[-0.365,0.929],[-0.36,0.848],[-0.399,0.705],[-0.535,0.816],[-0.192,0.247],[0,0],[-1.33,-1.001],[1.002,-1.33],[0.13,-0.12]],"o":[[0,0],[-0.126,0.107],[-0.558,0.585],[-0.466,0.55],[-0.458,0.693],[-0.484,0.776],[-0.484,0.84],[-0.454,0.884],[-0.373,0.906],[-0.308,0.887],[-0.251,0.832],[-0.136,0.744],[-0.079,0.613],[-0.113,0.886],[0,0],[-0.026,-0.448],[-0.049,-0.626],[0.016,-0.772],[0.086,-0.882],[0.153,-0.96],[0.226,-1.001],[0.27,-1.015],[0.306,-0.997],[0.344,-0.938],[0.412,-0.822],[0.749,-1.434],[0.276,-0.404],[0.161,-0.215],[1.002,-1.33],[1.329,1.002],[-0.11,0.146],[0,0]],"v":[[5.866,-11.157],[5.629,-10.94],[4.995,-10.327],[2.73,-7.747],[1.315,-5.887],[-0.14,-3.697],[-1.565,-1.251],[-2.889,1.374],[-4.051,4.093],[-5.01,6.81],[-5.75,9.415],[-6.286,11.794],[-6.664,13.832],[-6.868,15.421],[-7.046,16.812],[-7.125,15.413],[-7.217,13.797],[-7.218,11.697],[-7.125,9.197],[-6.865,6.405],[-6.398,3.427],[-5.717,0.374],[-4.839,-2.648],[-3.806,-5.535],[-2.678,-8.189],[-1.51,-10.514],[0.515,-13.918],[1.202,-14.889],[1.449,-15.217],[5.671,-15.812],[6.264,-11.59],[5.903,-11.19]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[385.397,386.802],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16,9.333],[8.667,0.333],[23.897,-4.788],[-8.368,-26.683],[1.748,-1.464],[-4.237,-5.06],[0,0],[-5.06,4.237],[-0.51,2.603],[0,0],[-9.49,9.835]],"o":[[9.667,-10.333],[-1.333,-14.667],[-24.637,4.935],[-2.112,0.313],[-5.06,4.237],[0,0],[4.237,5.06],[2.18,-1.825],[18.318,4.86],[0,0],[10.369,-10.746]],"v":[[41.819,-10.251],[30.819,-32.584],[-17.848,-50.584],[-46.171,9.291],[-52.085,11.932],[-53.582,28.836],[-36.165,49.638],[-19.261,51.135],[-15.21,44.254],[19.486,34.749],[47.45,29.495]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.866,383.533],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":3,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Glove ","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":152.627,"ix":10},"p":{"a":0,"k":[6.654,26.986,0],"ix":2},"a":{"a":0,"k":[400,400,0],"ix":1},"s":{"a":0,"k":[-75,-75,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.406,-0.333]],"o":[[0,0],[0,0]],"v":[[5.63,-5.5],[-5.631,5.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[434.721,400.782],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[16.333,-1.856],[0,0]],"v":[[-10.333,0.928],[10.333,-0.072]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[421.351,351.021],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[12.964,-1.063],[0,0]],"v":[[-8.982,-1.135],[8.982,2.198]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[433.703,371.083],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[1,15.957],[0,0]],"v":[[3.834,-12],[-4.833,12]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[425.184,406.282],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.175,-0.137],[0.131,-0.101],[0.245,-0.208],[0.778,-0.842],[0.87,-1.172],[0.398,-0.659],[0.375,-0.694],[0.346,-0.705],[0.294,-0.695],[0.227,-0.659],[0.14,-0.593],[0.07,-0.491],[0.055,-0.354],[0,0],[0.054,0.719],[0.037,0.504],[0.007,0.628],[-0.077,0.717],[-0.14,0.778],[-0.2,0.812],[-0.258,0.816],[-0.297,0.796],[-0.311,0.756],[-0.675,1.142],[-0.469,0.655],[-0.17,0.201],[0,0],[-1.292,-1.055],[1.054,-1.293]],"o":[[0,0],[-0.101,0.069],[-0.477,0.419],[-0.792,0.827],[-0.422,0.593],[-0.429,0.644],[-0.406,0.683],[-0.359,0.703],[-0.3,0.695],[-0.231,0.659],[-0.13,0.594],[-0.077,0.493],[-0.11,0.713],[0,0],[-0.027,-0.362],[-0.043,-0.507],[0.002,-0.627],[0.074,-0.715],[0.134,-0.778],[0.187,-0.816],[0.227,-0.829],[0.267,-0.811],[0.65,-1.496],[0.658,-1.153],[0.237,-0.322],[0.14,-0.171],[1.054,-1.292],[1.293,1.054],[-0.146,0.179]],"v":[[5.122,-7.913],[4.921,-7.758],[4.389,-7.327],[2.435,-5.438],[-0.095,-2.403],[-1.37,-0.541],[-2.564,1.478],[-3.625,3.591],[-4.512,5.721],[-5.206,7.781],[-5.715,9.674],[-6.077,11.304],[-6.275,12.58],[-6.448,13.7],[-6.534,12.571],[-6.629,11.265],[-6.646,9.562],[-6.577,7.534],[-6.355,5.265],[-5.948,2.844],[-5.349,0.363],[-4.576,-2.088],[-3.665,-4.424],[-1.646,-8.434],[0.121,-11.167],[0.724,-11.951],[0.938,-12.214],[5.186,-12.645],[5.618,-8.396]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[366.726,359.156],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.143,-0.129],[0.265,-0.26],[0.83,-1.04],[0.472,-0.609],[0.435,-0.722],[0.419,-0.789],[0.4,-0.822],[0.367,-0.83],[0.299,-0.817],[0.228,-0.768],[0.148,-0.687],[0.063,-0.567],[0.056,-0.408],[0,0],[0.053,0.825],[0.037,0.578],[0.007,0.717],[-0.083,0.819],[-0.128,0.894],[-0.189,0.936],[-0.271,0.936],[-0.313,0.915],[-0.333,0.866],[-0.33,0.792],[-0.367,0.659],[-0.494,0.765],[-0.18,0.235],[0,0],[-1.336,-0.995],[0.995,-1.336],[0.142,-0.129]],"o":[[0,0],[-0.115,0.094],[-0.517,0.532],[-0.434,0.504],[-0.427,0.636],[-0.454,0.714],[-0.454,0.773],[-0.427,0.814],[-0.353,0.837],[-0.292,0.82],[-0.238,0.769],[-0.131,0.687],[-0.077,0.567],[-0.111,0.82],[0,0],[-0.027,-0.415],[-0.05,-0.581],[0.01,-0.716],[0.074,-0.819],[0.136,-0.892],[0.204,-0.93],[0.245,-0.945],[0.278,-0.928],[0.315,-0.875],[0.378,-0.767],[0.689,-1.34],[0.255,-0.378],[0.149,-0.201],[0.995,-1.336],[1.336,0.995],[-0.119,0.159],[0,0]],"v":[[5.468,-10.041],[5.249,-9.844],[4.663,-9.289],[2.557,-6.932],[1.237,-5.225],[-0.122,-3.214],[-1.457,-0.965],[-2.699,1.451],[-3.793,3.958],[-4.701,6.465],[-5.403,8.871],[-5.916,11.071],[-6.28,12.956],[-6.48,14.426],[-6.654,15.715],[-6.737,14.418],[-6.833,12.921],[-6.848,10.972],[-6.778,8.654],[-6.555,6.061],[-6.141,3.292],[-5.528,0.452],[-4.731,-2.362],[-3.789,-5.051],[-2.757,-7.527],[-1.683,-9.698],[0.183,-12.881],[0.822,-13.794],[1.051,-14.102],[5.272,-14.72],[5.889,-10.499],[5.497,-10.066]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[375.606,369.696],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.154,-0.142],[0.285,-0.285],[0.89,-1.136],[0.506,-0.664],[0.466,-0.787],[0.447,-0.857],[0.426,-0.893],[0.391,-0.901],[0.317,-0.886],[0.24,-0.832],[0.155,-0.742],[0.064,-0.613],[0.057,-0.44],[0,0],[0.05,0.89],[0.036,0.624],[0.002,0.773],[-0.095,0.882],[-0.145,0.962],[-0.211,1.006],[-0.299,1.006],[-0.344,0.982],[-0.365,0.929],[-0.36,0.848],[-0.399,0.705],[-0.535,0.816],[-0.192,0.247],[0,0],[-1.33,-1.001],[1.002,-1.33],[0.13,-0.12]],"o":[[0,0],[-0.126,0.107],[-0.558,0.585],[-0.466,0.55],[-0.458,0.693],[-0.484,0.776],[-0.484,0.84],[-0.454,0.884],[-0.373,0.906],[-0.308,0.887],[-0.251,0.832],[-0.136,0.744],[-0.079,0.613],[-0.113,0.886],[0,0],[-0.026,-0.448],[-0.049,-0.626],[0.016,-0.772],[0.086,-0.882],[0.153,-0.96],[0.226,-1.001],[0.27,-1.015],[0.306,-0.997],[0.344,-0.938],[0.412,-0.822],[0.749,-1.434],[0.276,-0.404],[0.161,-0.215],[1.002,-1.33],[1.329,1.002],[-0.11,0.146],[0,0]],"v":[[5.866,-11.157],[5.629,-10.94],[4.995,-10.327],[2.73,-7.747],[1.315,-5.887],[-0.14,-3.697],[-1.565,-1.251],[-2.889,1.374],[-4.051,4.093],[-5.01,6.81],[-5.75,9.415],[-6.286,11.794],[-6.664,13.832],[-6.868,15.421],[-7.046,16.812],[-7.125,15.413],[-7.217,13.797],[-7.218,11.697],[-7.125,9.197],[-6.865,6.405],[-6.398,3.427],[-5.717,0.374],[-4.839,-2.648],[-3.806,-5.535],[-2.678,-8.189],[-1.51,-10.514],[0.515,-13.918],[1.202,-14.889],[1.449,-15.217],[5.671,-15.812],[6.264,-11.59],[5.903,-11.19]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[385.397,386.802],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16,9.333],[8.667,0.333],[23.897,-4.788],[-8.368,-26.683],[1.748,-1.464],[-4.237,-5.06],[0,0],[-5.06,4.237],[-0.51,2.603],[0,0],[-9.49,9.835]],"o":[[9.667,-10.333],[-1.333,-14.667],[-24.637,4.935],[-2.112,0.313],[-5.06,4.237],[0,0],[4.237,5.06],[2.18,-1.825],[18.318,4.86],[0,0],[10.369,-10.746]],"v":[[41.819,-10.251],[30.819,-32.584],[-17.848,-50.584],[-46.171,9.291],[-52.085,11.932],[-53.582,28.836],[-36.165,49.638],[-19.261,51.135],[-15.21,44.254],[19.486,34.749],[47.45,29.495]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078000005086,0.078000005086,0.078000005086,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[400.866,383.533],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":3,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"middle spline","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.49,"y":1},"o":{"x":0.51,"y":0},"n":"0p49_1_0p51_0","t":0,"s":[8,-73,0],"e":[8,-69,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.49,"y":1},"o":{"x":0.51,"y":0},"n":"0p49_1_0p51_0","t":3,"s":[8,-69,0],"e":[8,-73,0],"to":[0,0,0],"ti":[0,0,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[71,71,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[37.665,5.519],[-46.498,-4.641]],"o":[[0,0],[38.998,-4.641],[-42.248,5.186]],"v":[[-0.5,23.319],[-42.248,-17.622],[42.248,-17.622]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"eye left","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.37,"y":0},"n":"0p833_1_0p37_0","t":0,"s":[-32,-34,0],"e":[-32,-25,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.37,"y":0},"n":"0p833_1_0p37_0","t":3,"s":[-32,-25,0],"e":[-32,-34,0],"to":[0,0,0],"ti":[0,0,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[73,73,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[15.855,0],[0,-24.024],[-17,0],[-0.081,21.632]],"o":[[0,0],[-0.072,-21.772],[-17,0],[0,24.024],[15.785,0],[0,0]],"v":[[1.003,0.25],[16.997,-6.754],[0.003,-43.5],[-16.997,0],[0.003,43.5],[16.996,6.958]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"eye right","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.37,"y":0},"n":"0p833_1_0p37_0","t":0,"s":[52,-34,0],"e":[52,-25,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.37,"y":0},"n":"0p833_1_0p37_0","t":3,"s":[52,-25,0],"e":[52,-34,0],"to":[0,0,0],"ti":[0,0,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[73,73,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[15.855,0],[0,-24.024],[-17,0],[-0.081,21.632]],"o":[[0,0],[-0.072,-21.772],[-17,0],[0,24.024],[15.785,0],[0,0]],"v":[[1.003,0.25],[16.997,-6.754],[0.003,-43.5],[-16.997,0],[0.003,43.5],[16.996,6.958]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"nose","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":40,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":0,"s":[11.131,-2.66,0],"e":[11.131,7.34,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":3,"s":[11.131,7.34,0],"e":[11.131,-2.66,0],"to":[0,0,0],"ti":[0,0,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[-10.369,-211.66,0],"ix":1},"s":{"a":0,"k":[67,67,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.619,8.587],[-10.879,-15.092]],"o":[[-5.619,-8.587],[10.879,15.092]],"v":[[-29,-198],[6,-223]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"mouth 2","parent":13,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-11,"ix":10},"p":{"a":0,"k":[19,40,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[11.322,0],[19.224,0],[19.051,2.982],[0.002,-11.326],[-19.761,-0.077],[0,27.486]],"o":[[-19.05,2.982],[-19.225,0],[-11.321,0],[0.002,30.415],[31.995,0.124],[0,-11.322]],"v":[[57.5,-28.162],[0.001,-15.69],[-57.5,-27.162],[-78,-6.66],[1.005,28.038],[78,-7.663]],"c":true}],"e":[{"i":[[11.322,0],[19.224,0],[19.051,2.982],[0.002,-11.326],[-19.761,-0.077],[0,27.486]],"o":[[-19.05,2.982],[-19.225,0],[-11.321,0],[0.002,30.415],[31.994,0.124],[0,-11.322]],"v":[[56.611,-23.591],[-1.11,-9.975],[-57.944,-24.877],[-77.334,-10.089],[1.005,28.038],[78.222,-8.805]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[{"i":[[11.322,0],[19.224,0],[19.051,2.982],[0.002,-11.326],[-19.761,-0.077],[0,27.486]],"o":[[-19.05,2.982],[-19.225,0],[-11.321,0],[0.002,30.415],[31.994,0.124],[0,-11.322]],"v":[[56.611,-23.591],[-1.11,-9.975],[-57.944,-24.877],[-77.334,-10.089],[1.005,28.038],[78.222,-8.805]],"c":true}],"e":[{"i":[[11.322,0],[19.224,0],[19.051,2.982],[0.002,-11.326],[-19.761,-0.077],[0,27.486]],"o":[[-19.05,2.982],[-19.225,0],[-11.321,0],[0.002,30.415],[31.995,0.124],[0,-11.322]],"v":[[57.5,-28.162],[0.001,-15.69],[-57.5,-27.162],[-78,-6.66],[1.005,28.038],[78,-7.663]],"c":true}]},{"t":6}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[85.892,85.892],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"tounge","parent":12,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":0,"s":[30,3,0],"e":[28.474,10.853,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":3,"s":[28.474,10.853,0],"e":[30,3,0],"to":[0,0,0],"ti":[0,0,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[123,123,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.116,2.862],[-0.681,6.787]],"o":[[-5.097,2.581],[1.108,-11.042]],"v":[[8.158,-13.809],[1.067,0.861]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.5,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[81.427,81.427],"ix":3},"r":{"a":0,"k":-3.831,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.501,1.719],[-17.333,-1.333],[-2.065,-9.013]],"o":[[-7,-0.333],[3.677,-4.62],[2.367,10.333]],"v":[[-9.833,12.833],[0.167,-4.167],[17.167,-4.167]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.874509803922,0.266666666667,0.094117647059,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[182.095,182.095],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"mouth","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-11,"ix":10},"p":{"a":0,"k":[19,40,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":0,"s":[{"i":[[11.322,0],[19.224,0],[19.051,2.982],[0.002,-11.326],[-19.761,-0.077],[0,27.486]],"o":[[-19.05,2.982],[-19.225,0],[-11.321,0],[0.002,30.415],[31.995,0.124],[0,-11.322]],"v":[[57.5,-28.162],[0.001,-15.69],[-57.5,-27.162],[-78,-6.66],[1.005,28.038],[78,-7.663]],"c":true}],"e":[{"i":[[11.322,0],[19.224,0],[19.051,2.982],[0.002,-11.326],[-19.761,-0.077],[0,27.486]],"o":[[-19.05,2.982],[-19.225,0],[-11.321,0],[0.002,30.415],[31.994,0.124],[0,-11.322]],"v":[[56.611,-23.591],[-1.11,-9.975],[-57.944,-24.877],[-77.334,-10.089],[1.005,28.038],[78.222,-8.805]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":3,"s":[{"i":[[11.322,0],[19.224,0],[19.051,2.982],[0.002,-11.326],[-19.761,-0.077],[0,27.486]],"o":[[-19.05,2.982],[-19.225,0],[-11.321,0],[0.002,30.415],[31.994,0.124],[0,-11.322]],"v":[[56.611,-23.591],[-1.11,-9.975],[-57.944,-24.877],[-77.334,-10.089],[1.005,28.038],[78.222,-8.805]],"c":true}],"e":[{"i":[[11.322,0],[19.224,0],[19.051,2.982],[0.002,-11.326],[-19.761,-0.077],[0,27.486]],"o":[[-19.05,2.982],[-19.225,0],[-11.321,0],[0.002,30.415],[31.995,0.124],[0,-11.322]],"v":[[57.5,-28.162],[0.001,-15.69],[-57.5,-27.162],[-78,-6.66],[1.005,28.038],[78,-7.663]],"c":true}]},{"t":6}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[85.892,85.892],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"--BODY--","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.34,"y":1},"o":{"x":0.4,"y":0},"n":"0p34_1_0p4_0","t":0,"s":[400,300,0],"e":[400,317,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.4,"y":0},"n":"0p34_1_0p4_0","t":3,"s":[400,317,0],"e":[400,300,0],"to":[0,0,0],"ti":[0,0,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.344,15.543],[-2.276,0.299],[-30.441,0],[-6.695,-0.878],[0.198,-2.287],[47.291,0]],"o":[[-0.198,-2.287],[6.695,-0.878],[30.441,0],[2.276,0.299],[-1.344,15.543],[-47.291,0]],"v":[[-56.742,-31.993],[-53.043,-36.618],[0,-39],[53.043,-36.618],[56.742,-31.993],[0,39]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[223.275,223.275],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Hose 2::Shoulder","parent":13,"hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n parentVal += eval([layerChain][0]).rotation;\n }\n return parentVal;\n}"},"p":{"a":0,"k":[-86,24,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\n$bm_rt = [\n 100,\n 100\n];"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 2::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 2::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var autoRotate = eff('Auto Rotate Start');\n if (autoRotate == 1) {\n var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (straight <= hoseLength) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n } else {\n $bm_rt = 0;\n }\n ;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[20,20],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = [\n 100,\n 100\n];"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Hose 1::Shoulder","parent":13,"hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n parentVal += eval([layerChain][0]).rotation;\n }\n return parentVal;\n}"},"p":{"a":0,"k":[78,24,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\n$bm_rt = [\n 100,\n 100\n];"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 1::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 1::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var autoRotate = eff('Auto Rotate Start');\n if (autoRotate == 1) {\n var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (straight <= hoseLength) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n } else {\n $bm_rt = 0;\n }\n ;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[20,20],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = [\n 100,\n 100\n];"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Hose 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11,"x":"var $bm_rt;\n$bm_rt = 100;"},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n parentVal += eval([layerChain][0]).rotation;\n }\n return parentVal;\n}"},"p":{"a":0,"k":[236,286,0],"ix":2,"x":"var $bm_rt;\nvar p = [\n 0,\n 0\n ];\ntry {\n if (thisLayer.hasParent) {\n p = parent.fromComp([\n 0,\n 0,\n 0\n ]);\n }\n $bm_rt = p;\n} catch (err) {\n $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0,0],"ix":1,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nvar s = [\n 100,\n 100\n ];\nif (hasParent) {\n var sFactor = parentTotal();\n s = [\n s[0] * sFactor[0],\n s[1] * sFactor[1]\n ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n var sFactor = [\n 1,\n 1\n ];\n var scaleNorm = [\n 0,\n 0\n ];\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n scaleNorm = eval([layerChain][0]).scale;\n if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n scaleNorm = [\n 100 / scaleNorm[0],\n 100 / scaleNorm[1]\n ];\n }\n sFactor = [\n sFactor[0] * scaleNorm[0],\n sFactor[1] * scaleNorm[1]\n ];\n }\n return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3,"x":"var $bm_rt;\n$bm_rt = 4;"},"p":{"a":0,"k":[0,0],"ix":4,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"r":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\n$bm_rt = 0;"},"ir":{"a":0,"k":500,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"is":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"or":{"a":0,"k":113,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"e":{"a":0,"k":0,"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":25,"ix":5,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 2::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 2::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3,"x":"var $bm_rt;\n$bm_rt = 4;"},"p":{"a":0,"k":[0,0],"ix":4,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"r":{"a":0,"k":90,"ix":5,"x":"var $bm_rt;\n$bm_rt = 0;"},"ir":{"a":0,"k":200,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"is":{"a":0,"k":100,"ix":8,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"or":{"a":0,"k":200,"ix":7,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\n$bm_rt = 0;"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0.01,"ix":1,"x":"var $bm_rt;\n$bm_rt = 0.01;"},"e":{"a":0,"k":24.99,"ix":2,"x":"var $bm_rt;\n$bm_rt = 24.99;"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\n$bm_rt = -90;"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n -s,\n 0\n];"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar flop;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var bendDir = eff('Bend Direction');\n var autoFlop = eff('AutoFlop');\n flop = bendDir > 0 ? 1 : -1;\n autoFlop > 0 ? 0 : flop *= -1;\n var s = flop == 1 ? [\n -100,\n 100\n ] : [\n 100,\n 100\n ];\n if (eff('Parent Scale') < 0) {\n s = [\n -s[0],\n s[1]\n ];\n }\n $bm_rt = s;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var baseRot = ctrl('Base Rotation');\n var flop = content('Admin').content('ArcMath').transform.scale[0];\n var rotOffset = flop < 0 ? -45 : 225;\n $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Hose 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11,"x":"var $bm_rt;\n$bm_rt = 100;"},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n parentVal += eval([layerChain][0]).rotation;\n }\n return parentVal;\n}"},"p":{"a":0,"k":[400,286,0],"ix":2,"x":"var $bm_rt;\nvar p = [\n 0,\n 0\n ];\ntry {\n if (thisLayer.hasParent) {\n p = parent.fromComp([\n 0,\n 0,\n 0\n ]);\n }\n $bm_rt = p;\n} catch (err) {\n $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0,0],"ix":1,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nvar s = [\n 100,\n 100\n ];\nif (hasParent) {\n var sFactor = parentTotal();\n s = [\n s[0] * sFactor[0],\n s[1] * sFactor[1]\n ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n var sFactor = [\n 1,\n 1\n ];\n var scaleNorm = [\n 0,\n 0\n ];\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain += '.parent';\n scaleNorm = eval([layerChain][0]).scale;\n if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n scaleNorm = [\n 100 / scaleNorm[0],\n 100 / scaleNorm[1]\n ];\n }\n sFactor = [\n sFactor[0] * scaleNorm[0],\n sFactor[1] * scaleNorm[1]\n ];\n }\n return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3,"x":"var $bm_rt;\n$bm_rt = 4;"},"p":{"a":0,"k":[0,0],"ix":4,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"r":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\n$bm_rt = 0;"},"ir":{"a":0,"k":500,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"is":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"or":{"a":0,"k":113,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"e":{"a":0,"k":0,"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":25,"ix":5,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 1::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hose 1::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3,"x":"var $bm_rt;\n$bm_rt = 4;"},"p":{"a":0,"k":[0,0],"ix":4,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"r":{"a":0,"k":90,"ix":5,"x":"var $bm_rt;\n$bm_rt = 0;"},"ir":{"a":0,"k":200,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"is":{"a":0,"k":100,"ix":8,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"or":{"a":0,"k":200,"ix":7,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\n$bm_rt = 0;"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0.01,"ix":1,"x":"var $bm_rt;\n$bm_rt = 0.01;"},"e":{"a":0,"k":24.99,"ix":2,"x":"var $bm_rt;\n$bm_rt = 24.99;"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\n$bm_rt = -90;"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = [\n 0,\n 0\n];"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n -s,\n 0\n];"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar flop;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var bendDir = eff('Bend Direction');\n var autoFlop = eff('AutoFlop');\n flop = bendDir > 0 ? 1 : -1;\n autoFlop > 0 ? 0 : flop *= -1;\n var s = flop == 1 ? [\n -100,\n 100\n ] : [\n 100,\n 100\n ];\n if (eff('Parent Scale') < 0) {\n s = [\n -s[0],\n s[1]\n ];\n }\n $bm_rt = s;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var baseRot = ctrl('Base Rotation');\n var flop = content('Admin').content('ArcMath').transform.scale[0];\n var rotOffset = flop < 0 ? -45 : 225;\n $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"handle","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":9,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":0,"s":[132,-18,0],"e":[127,-13,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.6,"y":1},"o":{"x":0.4,"y":0},"n":"0p6_1_0p4_0","t":3,"s":[127,-13,0],"e":[132,-18,0],"to":[0,0,0],"ti":[0,0,0]},{"t":6}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[-111,111,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,21.188],[-4.812,-0.367],[0,0],[0,-40],[0,0],[0,0]],"o":[[0,-21.188],[0,0],[0,0],[0,40],[0,0],[-4.812,-0.067]],"v":[[-4.23,0.741],[21.333,-18.726],[21.333,-34],[-21.333,0],[32.877,39.417],[29.029,23.459]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.967,128.967],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"shadow","sr":1,"ks":{"o":{"a":0,"k":50,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,420.824,0],"ix":2},"a":{"a":0,"k":[18,90.824,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,-0.667]},"o":{"x":[0.37,0.37,0.37],"y":[0,0,0]},"n":["0p833_0p833_0p37_0","0p833_0p833_0p37_0","0p833_-0p667_0p37_0"],"t":0,"s":[90,90,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,2.667]},"o":{"x":[0.37,0.37,0.37],"y":[0,0,0]},"n":["0p833_0p833_0p37_0","0p833_0p833_0p37_0","0p833_2p667_0p37_0"],"t":3,"s":[100,100,100],"e":[90,90,100]},{"t":6}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[112,14.352],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18,90.824],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"yellow","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[800,600],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627451,0.121568627451,0.121568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764705882,0.062745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":2520,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/night_own.json b/external/rlottie/example/resource/night_own.json new file mode 100644 index 000000000..8295bf078 --- /dev/null +++ b/external/rlottie/example/resource/night_own.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":60,"ip":0,"op":42,"w":800,"h":600,"nm":"both wing","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"left eye Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[388.739,339.119,0],"ix":2},"a":{"a":0,"k":[61.417,54.715,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.463,-1.546],[1.546,0.463],[-0.463,1.546],[-1.546,-0.464]],"o":[[-0.463,1.546],[-1.546,-0.463],[0.463,-1.546],[1.545,0.463]],"v":[[2.799,0.839],[-0.838,2.8],[-2.799,-0.838],[0.839,-2.798]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40800000359,0.40800000359,0.40800000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[63.609,58.09],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-22.228,-35.258]],"o":[[0,0],[0,0]],"v":[[-26.416,-19.715],[26.416,19.715]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[61.416,54.715],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.344,2.108],[0.647,-0.815],[-5.527,-4.393],[-3.38,4.252],[-0.282,0.979],[3.273,2.601]],"o":[[-0.89,0.494],[-3.38,4.252],[5.528,4.394],[0.646,-0.813],[-2.809,-2.782],[-3.272,-2.601]],"v":[[-6.686,-11.062],[-9.011,-9.1],[-5.123,6.554],[11.006,6.809],[12.391,4.102],[3.262,-3.995]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[63.852,55.915],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.245,3.279],[1.78,-2.239],[-12.224,-9.717],[-6.421,8.079],[-0.147,2.978],[7.182,5.708]],"o":[[-2.869,0.815],[-6.422,8.079],[12.224,9.717],[1.781,-2.238],[-4.829,-6.319],[-7.182,-5.709]],"v":[[-13.249,-23.918],[-20.348,-19.349],[-9.84,12.873],[23.921,15.839],[26.77,7.894],[8.647,-10.387]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.745000023935,0.023999999551,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[58.543,60.603],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"nose Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[428.559,400.809,0],"ix":2},"a":{"a":0,"k":[16.853,34.516,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.412,9.474],[-1.702,7.37],[-2.586,-14.341],[-5.909,-9.193]],"o":[[-1.537,-10.304],[-5.545,2.582],[2.539,14.085],[-3.364,-6.396]],"v":[[0.637,1.503],[1.085,-25.788],[-4.037,-2.421],[6.623,25.788]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.246999987434,0.246999987434,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.345,35.584],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.544,-23.068],[13.188,-16.711],[0.673,20.085],[-11.076,-0.179]],"o":[[-0.426,18.067],[-12.416,-17.378],[-0.683,-20.378],[8.553,0.138]],"v":[[16.059,-8.318],[0.183,34.266],[-15.92,-8.318],[0.569,-34.087]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.853,34.516],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"right eye Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[467.347,339.161,0],"ix":2},"a":{"a":0,"k":[60.439,55.96,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.537,-1.521],[1.522,-0.538],[0.537,1.522],[-1.522,0.537]],"o":[[0.537,1.521],[-1.522,0.537],[-0.536,-1.522],[1.522,-0.536]],"v":[[2.756,-0.973],[0.971,2.756],[-2.757,0.971],[-0.973,-2.757]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40800000359,0.40800000359,0.40800000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.246,58.697],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[],"o":[],"v":[],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.477999997606,0.477999997606,0.477999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.5,0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[20.509,-36.283]],"o":[[0,0],[0,0]],"v":[[25.44,-20.96],[-25.44,20.96]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[60.439,55.96],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.238,2.267],[-0.686,-0.782],[5.311,-4.654],[3.58,4.085],[0.328,0.964],[-3.143,2.756]],"o":[[0.912,0.451],[3.58,4.085],[-5.309,4.654],[-0.686,-0.782],[2.672,-2.913],[3.144,-2.755]],"v":[[6.165,-11.393],[8.582,-9.546],[5.449,6.277],[-10.647,7.308],[-12.162,4.669],[-3.433,-3.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[58.047,57.299],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-7.079,3.624],[-1.885,-2.152],[11.744,-10.292],[6.803,7.761],[0.291,2.968],[-6.898,6.047]],"o":[[2.905,0.677],[6.802,7.76],[-11.743,10.293],[-1.885,-2.151],[4.52,-6.544],[6.9,-6.046]],"v":[[12.167,-24.629],[19.477,-20.405],[10.529,12.283],[-23.052,16.868],[-26.279,9.068],[-9.056,-10.061]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.745000023935,0.023999999551,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[63.511,61.806],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"details Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[428.769,320.093,0],"ix":2},"a":{"a":0,"k":[114.641,80.52,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.14,4.372],[13.871,-15.765],[29.213,-18.407],[11.999,2.015],[5.112,6.926],[-7.275,16.968],[-17.085,2.144],[-8.485,-3.638],[-0.979,22.103],[-5.514,27.54]],"o":[[-2.202,4.518],[13.475,-15.473],[24.24,-17.783],[-8.484,-3.638],[-10.226,-13.855],[7.276,-16.969],[8.543,-1.073],[8.484,3.638],[4.38,29.362],[-5.355,28.812]],"v":[[47.884,20.297],[31.618,40.86],[7.995,50.305],[-17.964,46.624],[-38.527,30.359],[-44.291,-19.224],[-4.402,-49.232],[21.558,-45.551],[42.121,-29.285],[51.566,-5.662]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[158.736,110.484],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-9.936,-15.563],[7.839,-15.331],[7.78,-4.968],[-27.584,-15.946],[-18.864,-17.228],[0.009,0.015],[7.705,24.703],[0.461,37.074],[-7.943,6.36],[-8.604,0.33]],"o":[[9.936,15.562],[-3.92,7.666],[-8.571,4.707],[-33.006,-15.738],[-19.162,-17.381],[-0.01,-0.015],[7.692,24.374],[2.837,32.427],[7.781,-4.968],[17.206,-0.659]],"v":[[41.087,-26.655],[43.454,23.204],[25.806,42.595],[0.789,50.444],[-24.055,44.961],[-43.444,27.313],[-51.293,2.298],[-45.811,-22.547],[-28.163,-41.936],[-3.146,-49.785]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[67.119,110.342],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.757,1.756],[-30.411,-30.701],[4.379,-8.171],[10.237,3.834],[24.87,23.094]],"o":[[1.503,-3.489],[4.896,4.943],[-3.096,5.775],[-19.305,-7.232],[-13.969,-12.972]],"v":[[-47.559,-34.433],[27.438,1.567],[43.937,30.814],[17.584,34.088],[-23.56,-17.183]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925,0.709999952129,0.416000007181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":10,"ml2":{"a":0,"k":10,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[60.816,50.422],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.757,1.756],[-30.411,-30.701],[4.379,-8.171],[10.237,3.834],[24.87,23.094]],"o":[[1.503,-3.489],[4.896,4.943],[-3.096,5.775],[-19.305,-7.232],[-13.969,-12.972]],"v":[[-47.559,-34.433],[27.438,1.567],[43.937,30.814],[17.584,34.088],[-23.56,-17.183]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[60.816,50.422],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.757,1.756],[30.41,-30.7],[-4.379,-8.171],[-10.237,3.835],[-24.871,23.095]],"o":[[-1.503,-3.49],[-4.897,4.943],[3.096,5.775],[19.306,-7.231],[13.969,-12.971]],"v":[[47.559,-34.432],[-27.437,1.566],[-43.936,30.815],[-17.584,34.087],[23.561,-17.183]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925,0.709999952129,0.416000007181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":10,"ml2":{"a":0,"k":10,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[168.467,52.463],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.757,1.756],[30.41,-30.7],[-4.379,-8.171],[-10.237,3.835],[-24.871,23.095]],"o":[[-1.503,-3.49],[-4.897,4.943],[3.096,5.775],[19.306,-7.231],[13.969,-12.971]],"v":[[47.559,-34.432],[-27.437,1.566],[-43.936,30.815],[-17.584,34.087],[23.561,-17.183]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[168.467,52.463],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"legs Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[424.502,501.059,0],"ix":2},"a":{"a":0,"k":[107.717,38.642,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.823,0],[0,0],[0.132,-5.156],[-10.987,-1.283],[-1.236,-0.087],[-3.426,-1.329],[-0.28,-0.739],[0.764,-1.376],[0.704,-1.45],[0.695,-1.346],[-1.986,-5.54],[-3.604,-1.548],[-1.933,0],[-1.597,0.845],[-1.021,-1.242],[-4.078,0],[-1.3,0.431],[-1.512,1.707],[-0.609,-1.087],[-1.403,-0.382],[0,0],[-1.468,0],[-2.628,3.253],[1.236,2.264],[11.376,8.595],[14.032,2.425]],"o":[[0,0],[-12.095,0.001],[-0.116,4.464],[1.424,0.166],[3.119,0.219],[1.276,0.495],[0.002,0.56],[-0.621,1.119],[-0.66,1.356],[-3.458,6.696],[0.656,1.829],[2.061,0.884],[2.181,0],[0.404,1.39],[2.337,2.843],[1.445,0],[2.34,-0.776],[0.243,1.352],[2.018,3.599],[0,0],[1.607,0.449],[4.063,0],[7.164,-8.872],[-3.505,-6.415],[-5.749,-4.344],[-3.282,-0.566]],"v":[[-27.017,-37.788],[-27.018,-37.788],[-44.793,-27.428],[-31.753,-16.092],[-27.812,-15.749],[-18.803,-14.027],[-14.259,-11.635],[-16.068,-7.816],[-18.098,-3.979],[-20.173,0.118],[-24.911,18.678],[-19.113,24.56],[-13.095,25.893],[-7.456,24.532],[-5.365,28.508],[4.88,33.048],[9.016,32.398],[14.734,28.543],[16.013,32.191],[22.719,37.066],[22.887,37.112],[27.518,37.788],[37.746,32.814],[33.034,1.569],[11.587,-22.893],[-17.816,-36.934]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-8.908,0.001],[-3.174,-0.549],[-5.729,-4.328],[-2.111,-3.865],[4.266,-5.282],[2.577,0],[1.176,0.327],[-3.781,12.999],[1.242,0.141],[0.017,0],[8.163,-2.707],[0.885,0],[1.436,1.747],[2.122,1.312],[0.097,0],[8.278,0],[1.503,0.645],[-4.552,9.362],[1.264,3.353],[3.239,1.256],[4.954,0.58],[-0.061,2.367]],"o":[[2.404,0],[12.836,2.218],[12.063,9.116],[2.799,5.123],[-1.672,2.069],[-1.018,0],[-2.088,-0.583],[1.221,-4.199],[-0.017,-0.002],[-2.244,0],[-0.804,0.266],[-2.427,0],[-4.418,-5.373],[-0.1,-0.061],[-2.069,-0.001],[-1.201,0],[-7.38,-3.169],[2.54,-5.224],[-1.045,-2.774],[-5.614,-2.177],[-7.737,-0.903],[0.058,-2.28]],"v":[[-27.018,-32.788],[-18.667,-32.005],[8.574,-18.904],[28.645,3.967],[33.855,29.672],[27.518,32.786],[24.23,32.297],[20.862,17.776],[18.431,8.201],[18.379,8.198],[7.443,27.653],[4.88,28.048],[-1.501,25.332],[-0.85,7.577],[-1.145,7.486],[-13.095,20.893],[-17.139,19.965],[-13.6,-1.794],[-9.581,-13.398],[-16.996,-18.689],[-31.173,-21.059],[-39.796,-27.299]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.709999952129,0.416000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[170.275,39.246],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.328,0],[1.388,0.387],[0,0],[1.506,2.684],[-1.851,6.366],[0.155,1.02],[6.482,-2.148],[1.177,0],[1.84,2.237],[-0.148,2.566],[3.343,0],[1.747,0.75],[0.71,1.98],[-3.34,6.466],[-0.678,1.394],[-0.607,1.092],[0.51,1.356],[3.107,1.206],[3.199,0.224],[1.367,0.159],[-0.128,4.976],[-10.357,0],[-3.141,-0.543],[-5.928,-4.479],[-3.387,-6.201],[6.248,-7.736]],"o":[[-1.24,0],[0,0],[-1.193,-0.325],[-1.672,-2.982],[0.292,-1.004],[-1.54,5.594],[-1.044,0.347],[-3.288,0],[-1.718,-2.09],[-1.85,2.099],[-1.592,0],[-2.23,-0.958],[-1.618,-4.517],[0.706,-1.368],[0.674,-1.388],[1.64,-2.953],[-0.625,-1.656],[-3.778,-1.465],[-1.207,-0.085],[-7.316,-0.855],[0.097,-3.818],[2.682,0],[13.433,2.322],[11.022,8.328],[0.113,0.207],[-2.168,2.684]],"v":[[27.706,35.287],[23.745,34.704],[23.563,34.654],[18.382,30.969],[18.648,17.077],[18.779,13.953],[8.415,30.025],[5.067,30.548],[-3.247,26.92],[-5.262,19.734],[-12.908,23.392],[-17.941,22.262],[-22.372,17.834],[-17.765,1.266],[-15.662,-2.886],[-13.695,-6.603],[-11.732,-12.516],[-17.713,-16.359],[-27.452,-18.242],[-31.275,-18.574],[-42.107,-27.362],[-26.831,-35.287],[-18.055,-34.47],[10.266,-20.9],[31.027,2.767],[35.988,31.242]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[170.088,39.246],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.095,0],[3.283,-0.567],[5.749,-4.345],[3.504,-6.416],[-7.164,-8.871],[-4.062,0],[-1.605,0.448],[0,0],[-2.018,3.598],[-0.244,1.351],[-2.341,-0.777],[-1.445,0],[-2.337,2.844],[-0.403,1.391],[-2.181,0],[-2.059,0.884],[-0.656,1.829],[3.458,6.696],[0.66,1.357],[0.622,1.119],[-0.005,0.595],[-1.277,0.495],[-3.119,0.22],[-1.425,0.166],[0.115,4.463]],"o":[[-2.824,0],[-14.032,2.425],[-11.376,8.594],[-1.237,2.264],[2.628,3.254],[1.467,0],[0,0],[1.403,-0.382],[0.609,-1.087],[1.512,1.707],[1.299,0.43],[4.078,0],[1.022,-1.242],[1.597,0.845],[1.933,0],[3.605,-1.548],[1.986,-5.541],[-0.696,-1.347],[-0.704,-1.45],[-0.763,-1.375],[0.275,-0.705],[3.426,-1.328],[1.237,-0.087],[10.987,-1.283],[-0.132,-5.156]],"v":[[27.019,-37.787],[17.816,-36.933],[-11.587,-22.892],[-33.033,1.569],[-37.745,32.813],[-27.518,37.787],[-22.887,37.112],[-22.718,37.066],[-16.013,32.191],[-14.734,28.543],[-9.015,32.399],[-4.88,33.048],[5.365,28.507],[7.456,24.531],[13.096,25.893],[19.113,24.56],[24.912,18.678],[20.173,0.118],[18.098,-3.979],[16.067,-7.816],[14.263,-11.669],[18.804,-14.028],[27.813,-15.749],[31.753,-16.092],[44.794,-27.428]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-2.404,0],[-0.059,-2.281],[7.736,-0.904],[5.615,-2.178],[1.045,-2.773],[-2.541,-5.225],[7.38,-3.169],[1.201,0],[2.069,0],[0.099,-0.061],[4.417,-5.373],[2.428,0],[0.803,0.267],[2.244,0],[0.017,-0.002],[-1.221,-4.2],[2.088,-0.582],[1.018,0],[1.671,2.069],[-2.798,5.123],[-12.065,9.115],[-12.837,2.219]],"o":[[8.908,0],[0.061,2.367],[-4.954,0.579],[-3.238,1.256],[-1.264,3.354],[4.551,9.361],[-1.503,0.646],[-8.278,0],[-0.097,0],[-2.123,1.312],[-1.437,1.747],[-0.885,0],[-8.164,-2.706],[-0.018,0],[-1.242,0.14],[3.781,12.999],[-1.176,0.328],[-2.577,0],[-4.266,-5.282],[2.112,-3.865],[5.728,-4.329],[3.173,-0.548]],"v":[[27.019,-32.787],[39.796,-27.299],[31.173,-21.058],[16.996,-18.689],[9.581,-13.398],[13.602,-1.793],[17.14,19.965],[13.096,20.893],[1.145,7.485],[0.851,7.577],[1.503,25.332],[-4.88,28.048],[-7.441,27.652],[-18.378,8.198],[-18.43,8.201],[-20.862,17.776],[-24.23,32.296],[-27.518,32.787],[-33.855,29.671],[-28.646,3.966],[-8.573,-18.903],[18.668,-32.006]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.709999952129,0.416000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.159,38.037],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":6,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.241,0],[2.168,2.685],[-0.113,0.207],[-11.021,8.329],[-13.439,2.323],[-2.682,0],[-0.098,-3.817],[7.315,-0.856],[1.208,-0.085],[3.779,-1.465],[0.624,-1.656],[-1.64,-2.953],[-0.675,-1.389],[-0.707,-1.368],[1.619,-4.517],[2.23,-0.958],[1.591,0],[0,0],[1.851,2.099],[1.718,-2.09],[3.288,0],[1.045,0.347],[1.54,5.593],[-0.292,-1.004],[1.672,-2.983],[1.193,-0.325],[0,0]],"o":[[-3.327,0],[-6.248,-7.736],[3.386,-6.2],[5.927,-4.478],[3.142,-0.543],[10.354,0],[0.127,4.976],[-1.367,0.159],[-3.199,0.224],[-3.107,1.206],[-0.511,1.357],[0.606,1.092],[0.677,1.393],[3.34,6.466],[-0.71,1.98],[-1.747,0.75],[0,0],[-3.344,-0.001],[0.149,2.566],[-1.84,2.237],[-1.177,0],[-6.481,-2.148],[-0.155,1.02],[1.852,6.365],[-1.505,2.684],[0,0],[-1.387,0.387]],"v":[[-27.705,35.287],[-35.986,31.241],[-31.025,2.767],[-10.268,-20.899],[18.055,-34.47],[26.833,-35.287],[42.107,-27.363],[31.277,-18.574],[27.452,-18.242],[17.713,-16.359],[11.734,-12.517],[13.695,-6.604],[15.663,-2.886],[17.765,1.265],[22.372,17.834],[17.941,22.262],[12.911,23.392],[12.908,23.392],[5.262,19.733],[3.247,26.92],[-5.067,30.548],[-8.416,30.025],[-18.779,13.952],[-18.649,17.077],[-18.382,30.969],[-23.563,34.654],[-23.745,34.704]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.346,38.037],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"bg Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[428.705,418.648,0],"ix":2},"a":{"a":0,"k":[119.86,141.181,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.594,-28.634],[36.568,-22.904],[22.556,1.736],[6.701,6.605],[2.471,7.033],[6.359,-4.66],[27.431,-11.288],[32.634,16.235],[18.177,23.216],[0.133,23.646],[-8.826,14.793],[-9.401,4.669],[-6.785,1.084],[-8.177,0],[0,0],[1.1,2.061],[-5.126,6.82],[-10.278,10.969],[-20.154,9.286],[-27.504,-2.564],[-21.046,-21.835],[0.526,-13.595],[0,0],[8.952,-7.169],[2.141,-2.85]],"o":[[-28.346,-18.252],[14.862,-23.125],[11.392,-6.975],[-0.876,-5.469],[-2.47,-7.034],[3.102,-19.355],[24.907,-25.239],[32.414,6.973],[23.192,16.38],[8.736,17.83],[1.892,11.581],[-3.365,4.669],[4.662,1.084],[0,0],[11.038,0],[7.891,2.061],[6.68,10.837],[-1.326,18.137],[-15.139,18.741],[-27.504,2.875],[-25.618,-4.153],[-4.046,4.086],[0,10.876],[-4.475,3.584],[-9.666,1.168]],"v":[[30.502,82.407],[-29.512,82.407],[-63.566,42.684],[-63.442,40.188],[-69.8,20.978],[-80.56,11.243],[-106.215,-4.156],[-115.139,-52.248],[-99.21,-71.659],[-72.472,-82.407],[-49.985,-81.703],[-32.9,-75.67],[-25.8,-72.085],[-5.192,-71.001],[18.931,-71.001],[37.148,-73.062],[56.648,-76.709],[78.93,-73.936],[101.385,-60.82],[115.139,-34.324],[106.966,-2.985],[77.963,17.508],[72.202,28.224],[57.694,39.706],[45.754,49.044]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925000011921,0.709999978542,0.416000008583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[115.656,199.704],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-9.397],[-31.333,-7.409],[-72.132,21.274],[-39.988,-6.643],[0.016,-23.711],[28.355,-11.054],[55.729,14.667],[42.977,8.342],[0,11.204],[-8.071,12.991],[-14.963,-4.621],[-81.894,14.471],[-9.973,-25.147]],"o":[[0,12.474],[-35.081,10.819],[-72.132,21.274],[-39.988,-6.643],[0.016,-23.711],[28.355,-11.054],[55.729,14.667],[28,-33.334],[0,-7.967],[16.143,-25.984],[57.498,17.762],[20.315,-3.589],[4.986,12.574]],"v":[[119.61,-7.859],[96.099,62.382],[72.295,33.698],[45.955,78.687],[-0.031,94.975],[-41.066,78.687],[-55.705,40.308],[-96.705,62.382],[-119.61,-7.859],[-106.109,-41.409],[-48.296,-90.354],[63.098,-88.692],[111.73,-42.542]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.709999952129,0.416000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[119.86,95.225],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,248,0],"ix":2},"a":{"a":0,"k":[400,248,0],"ix":1},"s":{"a":0,"k":[-100,100,100],"ix":6}},"ao":0,"w":800,"h":496,"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":176,"ix":10},"p":{"a":0,"k":[384,250,0],"ix":2},"a":{"a":0,"k":[400,248,0],"ix":1},"s":{"a":0,"k":[130,-130,100],"ix":6}},"ao":0,"w":800,"h":496,"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":176,"ix":10},"p":{"a":0,"k":[384,250,0],"ix":2},"a":{"a":0,"k":[400,248,0],"ix":1},"s":{"a":0,"k":[155,-155,100],"ix":6}},"ao":0,"w":800,"h":496,"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,248,0],"ix":2},"a":{"a":0,"k":[400,248,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":496,"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":3,"ix":10},"p":{"a":0,"k":[416,248,0],"ix":2},"a":{"a":0,"k":[400,248,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"w":800,"h":496,"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Comp 1","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":3,"ix":10},"p":{"a":0,"k":[416,248,0],"ix":2},"a":{"a":0,"k":[400,248,0],"ix":1},"s":{"a":0,"k":[155,155,100],"ix":6}},"ao":0,"w":800,"h":496,"ip":0,"op":123,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-20],"e":[-20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":24,"s":[-20],"e":[-20]},{"t":41}],"ix":10},"p":{"a":0,"k":[344.75,261.25,0],"ix":2},"a":{"a":0,"k":[165.747,-4.779,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.333,"y":0},"n":"0p4_1_0p333_0","t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}]},{"t":23}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":6,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":35,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.104,-4.784],"ix":2},"a":{"a":0,"k":[164.104,-4.784],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').transform.rotation;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.485,"y":1},"o":{"x":0.333,"y":0},"n":"0p485_1_0p333_0","t":0,"s":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}],"e":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}]},{"i":{"x":0.576,"y":1},"o":{"x":0.333,"y":0},"n":"0p576_1_0p333_0","t":23,"s":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}],"e":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}]},{"t":33}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925490260124,0.709803938866,0.415686309338,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.186,-4.838],"ix":2},"a":{"a":0,"k":[164.186,-4.838],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.563],"y":[0.97]},"o":{"x":[0.349],"y":[0.017]},"n":["0p563_0p97_0p349_0p017"],"t":0,"s":[0],"e":[81.911]},{"i":{"x":[0.687],"y":[1.011]},"o":{"x":[0.389],"y":[-0.009]},"n":["0p687_1p011_0p389_-0p009"],"t":23,"s":[81.911],"e":[0]},{"t":33}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":1,"s":[-25],"e":[-18]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25,"s":[-18],"e":[-25]},{"t":41}],"ix":10},"p":{"a":0,"k":[344.75,261.25,0],"ix":2},"a":{"a":0,"k":[165.747,-4.779,0],"ix":1},"s":{"a":0,"k":[48,48,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.333,"y":0},"n":"0p4_1_0p333_0","t":1,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}]},{"t":24}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":6,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":35,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.104,-4.784],"ix":2},"a":{"a":0,"k":[164.104,-4.784],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').transform.rotation;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.485,"y":1},"o":{"x":0.333,"y":0},"n":"0p485_1_0p333_0","t":1,"s":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}],"e":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}]},{"i":{"x":0.576,"y":1},"o":{"x":0.333,"y":0},"n":"0p576_1_0p333_0","t":24,"s":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}],"e":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}]},{"t":34}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925490260124,0.709803938866,0.415686309338,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.186,-4.838],"ix":2},"a":{"a":0,"k":[164.186,-4.838],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.563],"y":[0.97]},"o":{"x":[0.349],"y":[0.017]},"n":["0p563_0p97_0p349_0p017"],"t":1,"s":[0],"e":[81.911]},{"i":{"x":[0.687],"y":[1.011]},"o":{"x":[0.389],"y":[-0.009]},"n":["0p687_1p011_0p389_-0p009"],"t":24,"s":[81.911],"e":[0]},{"t":34}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":124,"st":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2,"s":[-30],"e":[-16]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":26,"s":[-16],"e":[-30]},{"t":41}],"ix":10},"p":{"a":0,"k":[344.75,261.25,0],"ix":2},"a":{"a":0,"k":[165.747,-4.779,0],"ix":1},"s":{"a":0,"k":[46,46,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.333,"y":0},"n":"0p4_1_0p333_0","t":2,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}]},{"t":25}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":6,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":35,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.104,-4.784],"ix":2},"a":{"a":0,"k":[164.104,-4.784],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').transform.rotation;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.485,"y":1},"o":{"x":0.333,"y":0},"n":"0p485_1_0p333_0","t":2,"s":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}],"e":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}]},{"i":{"x":0.576,"y":1},"o":{"x":0.333,"y":0},"n":"0p576_1_0p333_0","t":25,"s":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}],"e":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}]},{"t":35}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925490260124,0.709803938866,0.415686309338,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.186,-4.838],"ix":2},"a":{"a":0,"k":[164.186,-4.838],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.563],"y":[0.97]},"o":{"x":[0.349],"y":[0.017]},"n":["0p563_0p97_0p349_0p017"],"t":2,"s":[0],"e":[81.911]},{"i":{"x":[0.687],"y":[1.011]},"o":{"x":[0.389],"y":[-0.009]},"n":["0p687_1p011_0p389_-0p009"],"t":25,"s":[81.911],"e":[0]},{"t":35}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":2,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":3,"s":[-35],"e":[-14]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":27,"s":[-14],"e":[-35]},{"t":41}],"ix":10},"p":{"a":0,"k":[344.75,261.25,0],"ix":2},"a":{"a":0,"k":[165.747,-4.779,0],"ix":1},"s":{"a":0,"k":[44,44,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.333,"y":0},"n":"0p4_1_0p333_0","t":3,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}]},{"t":26}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":6,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":35,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.104,-4.784],"ix":2},"a":{"a":0,"k":[164.104,-4.784],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').transform.rotation;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.485,"y":1},"o":{"x":0.333,"y":0},"n":"0p485_1_0p333_0","t":3,"s":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}],"e":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}]},{"i":{"x":0.576,"y":1},"o":{"x":0.333,"y":0},"n":"0p576_1_0p333_0","t":26,"s":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}],"e":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}]},{"t":36}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925490260124,0.709803938866,0.415686309338,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.186,-4.838],"ix":2},"a":{"a":0,"k":[164.186,-4.838],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.563],"y":[0.97]},"o":{"x":[0.349],"y":[0.017]},"n":["0p563_0p97_0p349_0p017"],"t":3,"s":[0],"e":[81.911]},{"i":{"x":[0.687],"y":[1.011]},"o":{"x":[0.389],"y":[-0.009]},"n":["0p687_1p011_0p389_-0p009"],"t":26,"s":[81.911],"e":[0]},{"t":36}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":126,"st":3,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":4,"s":[-40],"e":[-12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":28,"s":[-12],"e":[-40]},{"t":41}],"ix":10},"p":{"a":0,"k":[344.75,261.25,0],"ix":2},"a":{"a":0,"k":[165.747,-4.779,0],"ix":1},"s":{"a":0,"k":[42,42,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.333,"y":0},"n":"0p4_1_0p333_0","t":4,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}]},{"t":27}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":6,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":35,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.104,-4.784],"ix":2},"a":{"a":0,"k":[164.104,-4.784],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').transform.rotation;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.485,"y":1},"o":{"x":0.333,"y":0},"n":"0p485_1_0p333_0","t":4,"s":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}],"e":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}]},{"i":{"x":0.576,"y":1},"o":{"x":0.333,"y":0},"n":"0p576_1_0p333_0","t":27,"s":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}],"e":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}]},{"t":37}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925490260124,0.709803938866,0.415686309338,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.186,-4.838],"ix":2},"a":{"a":0,"k":[164.186,-4.838],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.563],"y":[0.97]},"o":{"x":[0.349],"y":[0.017]},"n":["0p563_0p97_0p349_0p017"],"t":4,"s":[0],"e":[81.911]},{"i":{"x":[0.687],"y":[1.011]},"o":{"x":[0.389],"y":[-0.009]},"n":["0p687_1p011_0p389_-0p009"],"t":27,"s":[81.911],"e":[0]},{"t":37}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":127,"st":4,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[-45],"e":[-8]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":29,"s":[-8],"e":[-45]},{"t":41}],"ix":10},"p":{"a":0,"k":[344.75,261.25,0],"ix":2},"a":{"a":0,"k":[165.747,-4.779,0],"ix":1},"s":{"a":0,"k":[40,40,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.333,"y":0},"n":"0p4_1_0p333_0","t":5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}]},{"t":28}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":6,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":35,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.104,-4.784],"ix":2},"a":{"a":0,"k":[164.104,-4.784],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').transform.rotation;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.485,"y":1},"o":{"x":0.333,"y":0},"n":"0p485_1_0p333_0","t":5,"s":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}],"e":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}]},{"i":{"x":0.576,"y":1},"o":{"x":0.333,"y":0},"n":"0p576_1_0p333_0","t":28,"s":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}],"e":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}]},{"t":38}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925490260124,0.709803938866,0.415686309338,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.186,-4.838],"ix":2},"a":{"a":0,"k":[164.186,-4.838],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.563],"y":[0.97]},"o":{"x":[0.349],"y":[0.017]},"n":["0p563_0p97_0p349_0p017"],"t":5,"s":[0],"e":[81.911]},{"i":{"x":[0.687],"y":[1.011]},"o":{"x":[0.389],"y":[-0.009]},"n":["0p687_1p011_0p389_-0p009"],"t":28,"s":[81.911],"e":[0]},{"t":38}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":128,"st":5,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[-50],"e":[-8]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[-8],"e":[-50]},{"t":41}],"ix":10},"p":{"a":0,"k":[344.75,261.25,0],"ix":2},"a":{"a":0,"k":[165.747,-4.779,0],"ix":1},"s":{"a":0,"k":[38,38,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.333,"y":0},"n":"0p4_1_0p333_0","t":6,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170,-8],[172,-8]],"c":false}]},{"t":29}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":6,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":35,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.104,-4.784],"ix":2},"a":{"a":0,"k":[164.104,-4.784],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\n$bm_rt = content('Shape 1').transform.rotation;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.485,"y":1},"o":{"x":0.333,"y":0},"n":"0p485_1_0p333_0","t":6,"s":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}],"e":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}]},{"i":{"x":0.576,"y":1},"o":{"x":0.333,"y":0},"n":"0p576_1_0p333_0","t":29,"s":[{"i":[[-73.658,-118.409],[-147.395,-96.641]],"o":[[143.69,161.306],[147.395,96.641]],"v":[[-180,10],[164.321,-4.825]],"c":false}],"e":[{"i":[[-150,250],[0,0]],"o":[[150,-250],[0,0]],"v":[[-180,10],[172,-8]],"c":false}]},{"t":39}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925490260124,0.709803938866,0.415686309338,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[164.186,-4.838],"ix":2},"a":{"a":0,"k":[164.186,-4.838],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.563],"y":[0.97]},"o":{"x":[0.349],"y":[0.017]},"n":["0p563_0p97_0p349_0p017"],"t":6,"s":[0],"e":[81.911]},{"i":{"x":[0.687],"y":[1.011]},"o":{"x":[0.389],"y":[-0.009]},"n":["0p687_1p011_0p389_-0p009"],"t":29,"s":[81.911],"e":[0]},{"t":39}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":129,"st":6,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"newOwl","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[396,290,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('Null 1').transform.position;"},"a":{"a":0,"k":[426,412,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":792,"h":612,"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Comp 2","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[634,420,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('Null 1').transform.position;"},"a":{"a":0,"k":[400,248,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":800,"h":496,"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Null 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.745,"y":1},"o":{"x":0.248,"y":0},"n":"0p745_1_0p248_0","t":0,"s":[397,293,0],"e":[398,308,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.328,"y":1},"o":{"x":0.333,"y":0},"n":"0p328_1_0p333_0","t":24,"s":[398,308,0],"e":[398,293,0],"to":[0,0,0],"ti":[0,2.5,0]},{"t":42}],"ix":2},"a":{"a":0,"k":[49,48,0],"ix":1},"s":{"a":0,"k":[52.471,78,100],"ix":6}},"ao":0,"ip":0,"op":123,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,121.324,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[870.727,558.906],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.929412004059,0.705881993911,0.450980003207,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.11796875,0.114369283938,0.07841090782,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.363,7.453],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/ondas.json b/external/rlottie/example/resource/ondas.json new file mode 100644 index 000000000..4818f1418 --- /dev/null +++ b/external/rlottie/example/resource/ondas.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":25,"ip":0,"op":175,"w":600,"h":200,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Capa de formas 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[300,88,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-604,-284]],"c":false},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[39.5,2.75],[35.924,-1.559],[36.995,-1.156],[44.829,-1.288],[51.088,1.559]],"o":[[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-36.664,-2.553],[-32.262,1.4],[-32,1],[-38.162,1.096],[-56.889,-1.736]],"v":[[-330,7],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[313,-8.5],[283,19],[161,-42],[62.576,25.059],[-18,-10],[-113.838,26.904],[-213.111,-43.264]],"c":true}],"e":[{"i":[[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[28.993,-0.63],[28.406,-1.166],[20.727,-0.691],[43.266,1.9],[29.686,1.497]],"o":[[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-11.26,0.245],[-33.207,1.363],[-35.994,1.2],[-43.642,-1.917],[-25.352,-1.279]],"v":[[-315,-21],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[345,28.5],[309,0],[178,33],[71.844,-20.084],[-7,30],[-128.266,-46.9],[-227.648,31.279]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[{"i":[[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[28.993,-0.63],[28.406,-1.166],[20.727,-0.691],[43.266,1.9],[29.686,1.497]],"o":[[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-11.26,0.245],[-33.207,1.363],[-35.994,1.2],[-43.642,-1.917],[-25.352,-1.279]],"v":[[-315,-21],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[345,28.5],[309,0],[178,33],[71.844,-20.084],[-7,30],[-128.266,-46.9],[-227.648,31.279]],"c":true}],"e":[{"i":[[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[22.099,-6.451],[0.25,0.009],[25.563,-0.691],[41.486,0.99],[60.663,-1.035]],"o":[[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-80.5,23.5],[-28.945,-0.993],[-62.01,1.676],[-71.668,-1.711],[-42.39,0.724]],"v":[[-347,1],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[344,-5.5],[305,18],[187,-34],[44.945,-10.257],[-34,-42],[-137.486,10.01],[-263.61,-34.724]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":50,"s":[{"i":[[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[22.099,-6.451],[0.25,0.009],[25.563,-0.691],[41.486,0.99],[60.663,-1.035]],"o":[[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-80.5,23.5],[-28.945,-0.993],[-62.01,1.676],[-71.668,-1.711],[-42.39,0.724]],"v":[[-347,1],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[344,-5.5],[305,18],[187,-34],[44.945,-10.257],[-34,-42],[-137.486,10.01],[-263.61,-34.724]],"c":true}],"e":[{"i":[[23,-1],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[36.275,-2.267],[46.011,0],[0.306,-0.016],[21.403,-0.856],[43.848,-0.253],[34.576,1.765]],"o":[[-6.319,0.275],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-32,2],[-42,0],[-41.73,2.135],[-50,2],[-30.74,0.178],[-20.412,-1.042]],"v":[[-301,-20],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[309,15.5],[301,-24],[211,15],[53.73,-16.135],[-30,2],[-152.848,-68.747],[-258.576,5.235]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":75,"s":[{"i":[[23,-1],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[36.275,-2.267],[46.011,0],[0.306,-0.016],[21.403,-0.856],[43.848,-0.253],[34.576,1.765]],"o":[[-6.319,0.275],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-32,2],[-42,0],[-41.73,2.135],[-50,2],[-30.74,0.178],[-20.412,-1.042]],"v":[[-301,-20],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[309,15.5],[301,-24],[211,15],[53.73,-16.135],[-30,2],[-152.848,-68.747],[-258.576,5.235]],"c":true}],"e":[{"i":[[-9,-75],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.489,1.067],[28,0],[0.312,0.208],[34.572,0],[33.942,-0.219],[31.15,-0.014]],"o":[[0.754,6.279],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-37,-1],[-29.709,0],[-24.059,-16.072],[-44,0],[-64.06,0.413],[-2.443,0.001]],"v":[[-310,52],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[319,19.5],[221,-17],[88.5,12],[29.175,-2.414],[-53,-43],[-140.94,14.587],[-269.15,-23.986]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":100,"s":[{"i":[[-9,-75],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.489,1.067],[28,0],[0.312,0.208],[34.572,0],[33.942,-0.219],[31.15,-0.014]],"o":[[0.754,6.279],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-37,-1],[-29.709,0],[-24.059,-16.072],[-44,0],[-64.06,0.413],[-2.443,0.001]],"v":[[-310,52],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[319,19.5],[221,-17],[88.5,12],[29.175,-2.414],[-53,-43],[-140.94,14.587],[-269.15,-23.986]],"c":true}],"e":[{"i":[[9,8],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[28.994,0.624],[0.305,0.008],[34.798,0],[42.507,-1.345],[32.057,0.226]],"o":[[-4.727,-4.202],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-45.446,-0.977],[-53.635,-1.448],[-88.006,0],[-41.477,1.313],[-2.79,-0.02]],"v":[[-305,1],[-322,36],[-323,118.5],[314.5,112],[356.5,54],[342,13.5],[356,-16],[300,17],[106.635,-21.552],[-6,36],[-171.523,-5.313],[-276.057,15.774]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":125,"s":[{"i":[[9,8],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[28.994,0.624],[0.305,0.008],[34.798,0],[42.507,-1.345],[32.057,0.226]],"o":[[-4.727,-4.202],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-45.446,-0.977],[-53.635,-1.448],[-88.006,0],[-41.477,1.313],[-2.79,-0.02]],"v":[[-305,1],[-322,36],[-323,118.5],[314.5,112],[356.5,54],[342,13.5],[356,-16],[300,17],[106.635,-21.552],[-6,36],[-171.523,-5.313],[-276.057,15.774]],"c":true}],"e":[{"i":[[20,-8],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[47,-8],[0.236,0.002],[29.708,0],[48.429,1.52],[49.864,-0.786]],"o":[[-5.872,2.349],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-11.65,1.983],[-39.206,-0.383],[-67,0],[-45.549,-1.43],[-59.216,0.933]],"v":[[-305,1],[-322,36],[-323,118.5],[314.5,112],[356.5,54],[342,13.5],[325,-29],[228,3],[106.206,-10.617],[7,22],[-112.451,-29.57],[-222.784,28.067]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":150,"s":[{"i":[[20,-8],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[47,-8],[0.236,0.002],[29.708,0],[48.429,1.52],[49.864,-0.786]],"o":[[-5.872,2.349],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-11.65,1.983],[-39.206,-0.383],[-67,0],[-45.549,-1.43],[-59.216,0.933]],"v":[[-305,1],[-322,36],[-323,118.5],[314.5,112],[356.5,54],[342,13.5],[325,-29],[228,3],[106.206,-10.617],[7,22],[-112.451,-29.57],[-222.784,28.067]],"c":true}],"e":[{"i":[[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[39.5,2.75],[35.924,-1.559],[36.995,-1.156],[44.829,-1.288],[51.088,1.559]],"o":[[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-36.664,-2.553],[-32.262,1.4],[-32,1],[-38.162,1.096],[-56.889,-1.736]],"v":[[-330,7],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[313,-8.5],[283,19],[161,-42],[62.576,25.059],[-18,-10],[-113.838,26.904],[-213.111,-43.264]],"c":true}]},{"t":174}],"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[32.5,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[29,0],[40.5,-0.5],[31,-0.484],[40,0]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-30.5,0],[-38.51,0.475],[-32,0.5],[-39.513,0]],"v":[[-213,-10],[-300,14],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[313,-8.5],[283,19],[181,-11],[91,21],[-30,-27],[-119.5,21]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":true}],"ip":0,"op":182,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Capa de formas 7","sr":1,"ks":{"o":{"a":0,"k":20,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[383,69,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[145.483,118.069,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[22,0],[21.482,1.006],[20.41,-1.327],[21.5,0.5],[17.059,0.867],[63.749,1.868],[23,0],[20,1],[22.004,0.917],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-68.647,-3.214],[-19.465,1.266],[-19.521,-0.454],[-36.595,-1.859],[-18.992,-0.557],[-19.026,0],[-20.998,-1.05],[-24,-1],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,-20],[180,21],[110.189,-28.317],[71.685,22.194],[26.245,-17.806],[-61,21],[-139.559,-0.52],[-183.124,52.185],[-261.621,-20.847],[-300,20.25],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,21]],"c":true}],"e":[{"i":[[22,0],[21.5,0.5],[20.5,0.5],[13.632,-0.169],[20.516,0.334],[24.57,-0.327],[23,0],[19.965,1.547],[22.004,0.917],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-20.001,-0.465],[-19.501,-0.476],[-13.947,0.173],[-62.676,-1.02],[-18.998,0.253],[-19.026,0],[-15.15,-1.174],[-24,-1],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,20],[166.253,-43.715],[117.063,32.011],[81.996,-6.949],[48.928,28.97],[-61,-20],[-117.563,36.939],[-161.503,-28.47],[-207.694,36.092],[-299,-19.75],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,-20]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":37,"s":[{"i":[[22,0],[21.5,0.5],[20.5,0.5],[13.632,-0.169],[20.516,0.334],[24.57,-0.327],[23,0],[19.965,1.547],[22.004,0.917],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-20.001,-0.465],[-19.501,-0.476],[-13.947,0.173],[-62.676,-1.02],[-18.998,0.253],[-19.026,0],[-15.15,-1.174],[-24,-1],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,20],[166.253,-43.715],[117.063,32.011],[81.996,-6.949],[48.928,28.97],[-61,-20],[-117.563,36.939],[-161.503,-28.47],[-207.694,36.092],[-299,-19.75],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,-20]],"c":true}],"e":[{"i":[[22,0],[21.5,0.5],[20.474,1.15],[21.5,0.5],[22.558,-0.334],[23,0],[33.017,0.52],[20,1],[22.004,0.917],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-20.001,-0.465],[-38.703,-2.174],[-19.52,-0.454],[-18.7,0.277],[-19,0],[-19.024,-0.299],[-20.998,-1.05],[-24,-1],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,-20],[180,21],[120.5,-19],[55.188,38.279],[1.5,-42.368],[-61.687,36.245],[-119.625,-11.53],[-179,70.818],[-241,-20],[-269.069,87.16],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,21]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":77,"s":[{"i":[[22,0],[21.5,0.5],[20.474,1.15],[21.5,0.5],[22.558,-0.334],[23,0],[33.017,0.52],[20,1],[22.004,0.917],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-20.001,-0.465],[-38.703,-2.174],[-19.52,-0.454],[-18.7,0.277],[-19,0],[-19.024,-0.299],[-20.998,-1.05],[-24,-1],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,-20],[180,21],[120.5,-19],[55.188,38.279],[1.5,-42.368],[-61.687,36.245],[-119.625,-11.53],[-179,70.818],[-241,-20],[-269.069,87.16],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,21]],"c":true}],"e":[{"i":[[22,0],[21.5,0.5],[20.5,0.5],[21.797,0.045],[20.512,0.493],[29.381,-2.453],[40.578,-1.211],[20,1],[22.004,0.917],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-20.001,-0.465],[-19.501,-0.476],[-21.508,-0.045],[-30.369,-0.729],[-24.835,2.073],[-19.018,0.568],[-20.998,-1.05],[-24,-1],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,20],[179.313,-8.989],[119.813,37.092],[60.687,-15.418],[4.249,35.745],[-61,-6.941],[-121,20],[-177.313,10.491],[-247.561,33.551],[-299,-19.75],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,-20]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":112,"s":[{"i":[[22,0],[21.5,0.5],[20.5,0.5],[21.797,0.045],[20.512,0.493],[29.381,-2.453],[40.578,-1.211],[20,1],[22.004,0.917],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-20.001,-0.465],[-19.501,-0.476],[-21.508,-0.045],[-30.369,-0.729],[-24.835,2.073],[-19.018,0.568],[-20.998,-1.05],[-24,-1],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,20],[179.313,-8.989],[119.813,37.092],[60.687,-15.418],[4.249,35.745],[-61,-6.941],[-121,20],[-177.313,10.491],[-247.561,33.551],[-299,-19.75],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,-20]],"c":true}],"e":[{"i":[[22,0],[21.5,0.5],[20.5,0.5],[21.5,0.5],[19.121,-5.062],[22.966,1.25],[26.143,-0.695],[26.405,-1.112],[29.291,-0.497],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-20.001,-0.465],[-19.501,-0.476],[-19.52,-0.454],[-21.756,5.76],[-24.921,-1.357],[-24.714,0.657],[-18.952,0.798],[-64.182,1.089],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,-20],[180,21],[123.249,7.256],[69.623,-13.379],[13.873,1.674],[-61,21],[-124.437,-43.715],[-179.687,31.858],[-241,-20],[-300,20.25],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,21]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":149,"s":[{"i":[[22,0],[21.5,0.5],[20.5,0.5],[21.5,0.5],[19.121,-5.062],[22.966,1.25],[26.143,-0.695],[26.405,-1.112],[29.291,-0.497],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-20.001,-0.465],[-19.501,-0.476],[-19.52,-0.454],[-21.756,5.76],[-24.921,-1.357],[-24.714,0.657],[-18.952,0.798],[-64.182,1.089],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,-20],[180,21],[123.249,7.256],[69.623,-13.379],[13.873,1.674],[-61,21],[-124.437,-43.715],[-179.687,31.858],[-241,-20],[-300,20.25],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,21]],"c":true}],"e":[{"i":[[22,0],[21.482,1.006],[20.41,-1.327],[21.5,0.5],[17.059,0.867],[63.749,1.868],[23,0],[20,1],[22.004,0.917],[0,0],[0,0],[0,-6],[-3,0],[3,2],[3.073,2.561]],"o":[[-22.006,0],[-68.647,-3.214],[-19.465,1.266],[-19.521,-0.454],[-36.595,-1.859],[-18.992,-0.557],[-19.026,0],[-20.998,-1.05],[-24,-1],[0,0],[0,0],[0,6],[3,0],[-3,-2],[-6,-5]],"v":[[240,-20],[180,21],[110.189,-28.317],[71.685,22.194],[26.245,-17.806],[-61,21],[-139.559,-0.52],[-183.124,52.185],[-261.621,-20.847],[-300,20.25],[-320.25,38.25],[-321,137],[319,142],[317,37],[300,21]],"c":true}]},{"t":174}],"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,99.171],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":178,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Capa de formas 9","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[300,88,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[165.038,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[29,0],[40.5,-0.5],[31,-0.484],[40,0],[5.609,1.379]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-30.5,0],[-38.51,0.475],[-32,0.5],[-6.441,0],[-28.799,-7.08]],"v":[[-213,-10],[-300,14],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[313,-8.5],[283,19],[181,-11],[91,21],[-30,-27],[-119.5,21],[-137.512,18.797]],"c":true}],"e":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[29,0],[30,-2],[31,-0.484],[40,0],[5.431,-1.868]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-30.5,0],[-38.428,2.562],[-32,0.5],[-6.441,0],[-27.885,9.593]],"v":[[-210,11],[-315,-21],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[345,28.5],[309,0],[154,18],[84,-12],[-6,20],[-120.5,-31],[-138.228,-28.016]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[29,0],[30,-2],[31,-0.484],[40,0],[5.431,-1.868]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-30.5,0],[-38.428,2.562],[-32,0.5],[-6.441,0],[-27.885,9.593]],"v":[[-210,11],[-315,-21],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[345,28.5],[309,0],[154,18],[84,-12],[-6,20],[-120.5,-31],[-138.228,-28.016]],"c":true}],"e":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[32.996,-0.509],[40.5,-0.5],[26.102,-1.054],[40,0],[8.011,1.557]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-129.59,2],[-38.51,0.475],[-24.774,1],[-6.441,0],[-41.132,-7.994]],"v":[[-272,-20],[-347,1],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[344,-5.5],[305,18],[192,-24],[38,18],[-57.631,-55],[-124.5,15],[-146.349,12.513]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":50,"s":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[32.996,-0.509],[40.5,-0.5],[26.102,-1.054],[40,0],[8.011,1.557]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-129.59,2],[-38.51,0.475],[-24.774,1],[-6.441,0],[-41.132,-7.994]],"v":[[-272,-20],[-347,1],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[344,-5.5],[305,18],[192,-24],[38,18],[-57.631,-55],[-124.5,15],[-146.349,12.513]],"c":true}],"e":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[34.781,-18.728],[28.998,-0.31],[37.553,-2],[31.004,0],[30.01,0],[6.81,-2.891]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-13,7],[-93.451,1],[-36.936,1.967],[-62.706,0],[-6.441,0],[-34.965,14.846]],"v":[[-262,9],[-301,-20],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[309,15.5],[276,-25],[211,15],[61.212,-50],[-30,2],[-141.5,-56],[-161.431,-51.381]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":75,"s":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[34.781,-18.728],[28.998,-0.31],[37.553,-2],[31.004,0],[30.01,0],[6.81,-2.891]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-13,7],[-93.451,1],[-36.936,1.967],[-62.706,0],[-6.441,0],[-34.965,14.846]],"v":[[-262,9],[-301,-20],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[309,15.5],[276,-25],[211,15],[61.212,-50],[-30,2],[-141.5,-56],[-161.431,-51.381]],"c":true}],"e":[{"i":[[17.342,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[22.776,0],[69.184,3],[24.31,-1],[69.272,-2],[3.83,2.046]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-32.362,0],[-96.933,-4.203],[-18.117,0.745],[-6.439,0.186],[-19.663,-10.506]],"v":[[-187,-27],[-310,52],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[315,-54.5],[225,16],[156.576,-27],[52,14],[-52.788,-71],[-133.5,19],[-148.67,15.731]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":100,"s":[{"i":[[17.342,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[22.776,0],[69.184,3],[24.31,-1],[69.272,-2],[3.83,2.046]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-32.362,0],[-96.933,-4.203],[-18.117,0.745],[-6.439,0.186],[-19.663,-10.506]],"v":[[-187,-27],[-310,52],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[315,-54.5],[225,16],[156.576,-27],[52,14],[-52.788,-71],[-133.5,19],[-148.67,15.731]],"c":true}],"e":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[29,0],[32.603,17],[51.656,3.506],[23.532,0],[24.687,-2.99]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-30.5,0],[-58.529,-30.518],[-117.884,-8],[-23.73,0],[-27.739,3.359]],"v":[[-250,20],[-305,1],[-322,36],[-323,118.5],[314.5,112],[356.5,54],[342,13.5],[356,-16],[290,9],[111,-45],[7,22],[-129.568,-63],[-181.015,-6.01]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":125,"s":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[29,0],[32.603,17],[51.656,3.506],[23.532,0],[24.687,-2.99]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-30.5,0],[-58.529,-30.518],[-117.884,-8],[-23.73,0],[-27.739,3.359]],"v":[[-250,20],[-305,1],[-322,36],[-323,118.5],[314.5,112],[356.5,54],[342,13.5],[356,-16],[290,9],[111,-45],[7,22],[-129.568,-63],[-181.015,-6.01]],"c":true}],"e":[{"i":[[59,0],[28,-9],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[98.917,4.172],[26.603,1],[79.612,-3.1],[20.518,-1],[7.066,-9.166]],"o":[[-34.5,0],[-6.021,1.935],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-71.121,-3],[-29.189,-1.097],[-102.736,4],[-9.766,0.476],[-19.913,25.833]],"v":[[-231,31],[-305,1],[-322,36],[-323,118.5],[314.5,112],[356.5,54],[342,13.5],[356,-16],[202,12],[117,-55],[7,22],[-116.254,-55],[-143.398,-9.834]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":150,"s":[{"i":[[59,0],[28,-9],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[98.917,4.172],[26.603,1],[79.612,-3.1],[20.518,-1],[7.066,-9.166]],"o":[[-34.5,0],[-6.021,1.935],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-71.121,-3],[-29.189,-1.097],[-102.736,4],[-9.766,0.476],[-19.913,25.833]],"v":[[-231,31],[-305,1],[-322,36],[-323,118.5],[314.5,112],[356.5,54],[342,13.5],[356,-16],[202,12],[117,-55],[7,22],[-116.254,-55],[-143.398,-9.834]],"c":true}],"e":[{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[29,0],[40.5,-0.5],[31,-0.484],[40,0],[5.609,1.379]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-30.5,0],[-38.51,0.475],[-32,0.5],[-6.441,0],[-28.799,-7.08]],"v":[[-213,-10],[-300,14],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[313,-8.5],[283,19],[181,-11],[91,21],[-30,-27],[-119.5,21],[-137.512,18.797]],"c":true}]},{"t":174}],"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[32.5,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[29,0],[40.5,-0.5],[31,-0.484],[40,0]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-30.5,0],[-38.51,0.475],[-32,0.5],[-39.513,0]],"v":[[-213,-10],[-300,14],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[313,-8.5],[283,19],[181,-11],[91,21],[-30,-27],[-119.5,21]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[27.202,0],[15.5,-7],[8,-3],[-0.5,-1.5],[0,0],[1.5,4.5],[6,0],[39.5,-0.5],[29,0],[40.5,-0.5],[31,-0.484],[40,0],[5.609,1.379]],"o":[[-34.5,0],[-5.764,2.603],[-8,3],[0.5,1.5],[0,0],[-1.5,-4.5],[-6,0],[-39.997,0.506],[-30.5,0],[-38.51,0.475],[-32,0.5],[-6.441,0],[-28.799,-7.08]],"v":[[-213,-10],[-300,14],[-322,36],[-323,118.5],[314.5,112],[316.5,10],[313,-8.5],[283,19],[181,-11],[91,21],[-30,-27],[-119.5,21],[-137.512,18.797]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":182,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Capa de formas 6","sr":1,"ks":{"o":{"a":0,"k":40,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[300,83,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[41.129,-12.788],[26.96,-0.808],[1.399,-0.957],[19.256,-0.204],[26.627,-0.522],[21,0],[38,-1],[47.027,-1.206],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-7.061,0],[-30.705,9.547],[-31.026,0.93],[-19,13],[-37.752,0.4],[-18.418,0.361],[-25.08,0],[-52.991,1.395],[-39,1],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[333,-52],[273.705,21.453],[196.04,-2.192],[148,15],[96.752,88.6],[17.418,-14.361],[-35,30],[-104,-42],[-222,47],[-309,-23]],"c":true}],"e":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[6.641,18.354],[14.109,0.193],[27,1],[39.165,0.801],[19.535,-1.188],[31,0],[44,1],[39,-2],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-7.603,0],[-5.132,-14.182],[-21.95,-0.3],[-36.975,-1.369],[-36.893,-0.755],[-28.506,1.734],[-26.476,0],[-78.986,-1.795],[-33.017,1.693],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[326,60],[314.139,25.326],[293.95,-4.7],[230,33],[161.835,-31.801],[59.506,9.266],[-13,-19],[-100,62],[-220,-28],[-298,84]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":32,"s":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[6.641,18.354],[14.109,0.193],[27,1],[39.165,0.801],[19.535,-1.188],[31,0],[44,1],[39,-2],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-7.603,0],[-5.132,-14.182],[-21.95,-0.3],[-36.975,-1.369],[-36.893,-0.755],[-28.506,1.734],[-26.476,0],[-78.986,-1.795],[-33.017,1.693],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[326,60],[314.139,25.326],[293.95,-4.7],[230,33],[161.835,-31.801],[59.506,9.266],[-13,-19],[-100,62],[-220,-28],[-298,84]],"c":true}],"e":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[7.65,-6.414],[7.247,-5.107],[4.918,0.164],[12.569,8.758],[22.573,-8.821],[17.943,0.427],[41,0],[25.988,0.619],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-7.603,0],[-5.911,4.956],[-7.332,5.167],[-14.474,-0.482],[-24.151,-16.829],[-5.86,2.29],[-39.04,-0.93],[-46,0],[-38.989,-0.928],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[299,-19],[276.739,-7.642],[257.287,8.255],[218,21],[180.151,0.829],[78.519,-2.331],[0,19],[-89,-30],[-220,20],[-305,-18]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":66,"s":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[7.65,-6.414],[7.247,-5.107],[4.918,0.164],[12.569,8.758],[22.573,-8.821],[17.943,0.427],[41,0],[25.988,0.619],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-7.603,0],[-5.911,4.956],[-7.332,5.167],[-14.474,-0.482],[-24.151,-16.829],[-5.86,2.29],[-39.04,-0.93],[-46,0],[-38.989,-0.928],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[299,-19],[276.739,-7.642],[257.287,8.255],[218,21],[180.151,0.829],[78.519,-2.331],[0,19],[-89,-30],[-220,20],[-305,-18]],"c":true}],"e":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[2.174,-0.262],[4.752,3.855],[26,0],[7.165,-7.199],[23.02,-0.207],[36,0],[45.011,0],[23,-1],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-9.088,0],[-1.05,0.127],[-6.536,-5.303],[-16,0],[-12.471,12.53],[-38.545,0.347],[-43.012,0],[-33,0],[-33.983,1.478],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[318,29],[308.787,35.235],[300.95,30.3],[216,-41],[173.835,-10.801],[97.545,33.653],[12,-52],[-91,21],[-219,-19],[-308,21]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":104,"s":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[2.174,-0.262],[4.752,3.855],[26,0],[7.165,-7.199],[23.02,-0.207],[36,0],[45.011,0],[23,-1],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-9.088,0],[-1.05,0.127],[-6.536,-5.303],[-16,0],[-12.471,12.53],[-38.545,0.347],[-43.012,0],[-33,0],[-33.983,1.478],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[318,29],[308.787,35.235],[300.95,30.3],[216,-41],[173.835,-10.801],[97.545,33.653],[12,-52],[-91,21],[-219,-19],[-308,21]],"c":true}],"e":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[7.65,-6.414],[7.247,-5.107],[31.981,3.198],[31.084,18.789],[26.175,-15.755],[17.906,1.226],[26,0],[34,1],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-7.603,0],[-5.911,4.956],[-7.332,5.167],[-20,-2],[-31.151,-18.829],[-10.519,6.331],[-73,-5],[-58.009,0],[-38.983,-1.147],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[328,-28],[311.739,-15.642],[303.287,2.255],[243,46],[182.151,-23.171],[75.519,-5.331],[0,19],[-107,-20],[-220,20],[-305,-51]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":140,"s":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[7.65,-6.414],[7.247,-5.107],[31.981,3.198],[31.084,18.789],[26.175,-15.755],[17.906,1.226],[26,0],[34,1],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-7.603,0],[-5.911,4.956],[-7.332,5.167],[-20,-2],[-31.151,-18.829],[-10.519,6.331],[-73,-5],[-58.009,0],[-38.983,-1.147],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[328,-28],[311.739,-15.642],[303.287,2.255],[243,46],[182.151,-23.171],[75.519,-5.331],[0,19],[-107,-20],[-220,20],[-305,-51]],"c":true}],"e":[{"i":[[1,5],[-2,-6],[-7,0],[0,4],[14.036,0],[41.129,-12.788],[26.96,-0.808],[1.399,-0.957],[19.256,-0.204],[26.627,-0.522],[21,0],[38,-1],[47.027,-1.206],[2,3]],"o":[[-1,-5],[2,6],[7,0],[0,-4],[-7.061,0],[-30.705,9.547],[-31.026,0.93],[-19,13],[-37.752,0.4],[-18.418,0.361],[-25.08,0],[-52.991,1.395],[-39,1],[-2,-3]],"v":[[-328,-31],[-338,120],[336,139],[326,-6],[333,-52],[273.705,21.453],[196.04,-2.192],[148,15],[96.752,88.6],[17.418,-14.361],[-35,30],[-104,-42],[-222,47],[-309,-23]],"c":true}]},{"t":174}],"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882352941,0.376470588235,0.576470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":181,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/party_penguin.json b/external/rlottie/example/resource/party_penguin.json new file mode 100644 index 000000000..06bb8ac28 --- /dev/null +++ b/external/rlottie/example/resource/party_penguin.json @@ -0,0 +1 @@ +{"v":"4.10.2","fr":30,"ip":0,"op":58,"w":800,"h":800,"nm":"Fancy 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":3,"nm":"GLOBAL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[54,551,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Hat Outlines","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.158,"y":1},"o":{"x":0.075,"y":0.312},"n":"0p158_1_0p075_0p312","t":14,"s":[555.632,379.901,0],"e":[568.441,362.019,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.842,"y":1},"o":{"x":1,"y":0},"n":"0p842_1_1_0","t":29,"s":[568.441,362.019,0],"e":[555.632,379.901,0],"to":[0,0,0],"ti":[0,0,0]},{"t":34}],"ix":2},"a":{"a":0,"k":[555.632,379.901,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.296,0.995],[0,0],[0.995,-1.296],[-1.296,-0.995],[0,0],[-0.995,1.296]],"o":[[0,0],[-1.296,-0.995],[-0.996,1.297],[0,0],[1.297,0.995],[0.995,-1.296]],"v":[[28.034,17.79],[-24.43,-22.485],[-28.578,-21.94],[-28.033,-17.791],[24.43,22.484],[28.578,21.939]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[555.56,383.074],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.026,3.091],[0,0],[3.091,-4.026],[0,0],[0,0],[0,0]],"o":[[0,0],[-4.026,-3.091],[0,0],[0,0],[0,0],[3.091,-4.026]],"v":[[19.117,-2.46],[-2.198,-18.822],[-15.085,-17.129],[-23.902,-5.643],[11.993,21.914],[20.811,10.428]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[562.183,374.355],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Tie Outlines","parent":8,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[502.404,453,0],"ix":2},"a":{"a":0,"k":[502.404,453,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.852,0.654],[0,0],[0.654,-0.852],[0,0],[-0.852,-0.654],[0,0],[-0.654,0.852],[0,0]],"o":[[0,0],[-0.852,-0.654],[0,0],[-0.654,0.852],[0,0],[0.852,0.654],[0,0],[0.654,-0.852]],"v":[[6.301,-1.525],[-0.156,-6.48],[-2.893,-6.12],[-6.661,-1.214],[-6.301,1.525],[0.155,6.48],[2.893,6.121],[6.66,1.215]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[501.763,453.567],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.864,1.125],[0,0],[1.467,0.227],[0,0],[-0.761,-1.42],[0,0]],"o":[[0,0],[0.904,-1.178],[0,0],[-1.592,-0.246],[0,0],[0.67,1.25]],"v":[[0.98,7.35],[8.825,-2.868],[7.574,-5.988],[-6.948,-8.229],[-8.967,-5.376],[-2.291,7.083]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[512.737,462.455],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.864,1.125],[0,0],[-0.598,-1.359],[0,0],[1.568,0.368],[0,0]],"o":[[0,0],[0.904,-1.178],[0,0],[0.649,1.474],[0,0],[-1.381,-0.324]],"v":[[-8.442,2.354],[-0.597,-7.865],[2.74,-7.462],[8.657,5.987],[6.423,8.675],[-7.339,5.445]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[491.688,444.06],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Legs Right","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[411.027,495.735,0],"ix":2},"a":{"a":0,"k":[411.027,495.735,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.8,-3.743],[-3.758,4.746]],"o":[[-3.743,4.8],[4.774,3.723],[0,0]],"v":[[-6.793,-9.596],[-4.88,5.873],[10.536,4.028]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[410.821,497.93],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Legs Left","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[483.024,549.985,0],"ix":2},"a":{"a":0,"k":[483.024,549.985,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.8,-3.743],[-3.758,4.746]],"o":[[-3.743,4.8],[4.774,3.723],[0,0]],"v":[[-6.793,-9.596],[-4.88,5.873],[10.536,4.028]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[481.814,552.431],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Eyes","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[528.919,419.966,0],"ix":2},"a":{"a":0,"k":[528.919,419.966,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":19,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[498.824,384.003],[487.435,399.044],[565.432,458.108],[576.822,443.068]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[493.78,392.277],[491.988,393.65],[566.012,450.516],[567.804,449.143]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[493.78,392.277],[491.988,393.65],[566.012,450.516],[567.804,449.143]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[498.824,384.003],[487.435,399.044],[565.432,458.108],[576.822,443.068]],"c":true}]},{"t":25}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.335,3.042],[3.043,2.335],[2.336,-3.042],[-3.042,-2.336]],"o":[[2.336,-3.042],[-3.042,-2.336],[-2.335,3.043],[3.042,2.335]],"v":[[5.508,4.229],[4.228,-5.508],[-5.509,-4.229],[-4.229,5.509]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[556.462,441.11],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.335,3.042],[3.043,2.335],[2.336,-3.042],[-3.042,-2.336]],"o":[[2.335,-3.042],[-3.042,-2.336],[-2.335,3.043],[3.042,2.335]],"v":[[5.509,4.229],[4.228,-5.508],[-5.509,-4.229],[-4.229,5.509]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[501.377,398.823],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"belly","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[499.737,455.46,0],"ix":2},"a":{"a":0,"k":[499.737,455.46,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-8.652,-6.643],[6.642,-8.652],[0,0],[0,0]],"o":[[6.642,-8.652],[8.652,6.642],[0,0],[0,0],[0,0]],"v":[[-0.947,-30.385],[26.746,-34.023],[30.385,-6.332],[-5.695,40.667],[-37.027,16.613]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[540.039,460.227],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-8.652,-6.642],[6.642,-8.652],[0,0],[0,0]],"o":[[6.642,-8.652],[8.652,6.642],[0,0],[0,0],[0,0]],"v":[[-0.947,-30.385],[26.746,-34.024],[30.385,-6.332],[-5.695,40.666],[-37.027,16.613]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[483.324,416.688],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.347,9.496],[0,0],[0,0],[0,0],[-13.318,-10.225],[0,0],[-10.132,13.198],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-10.132,13.199],[0,0],[13.318,10.224],[0,0],[0,0],[0,0],[-8.762,3.9]],"v":[[11.966,-28.935],[18.368,-74.081],[-15.857,-70.098],[-62.668,-9.121],[-56.898,33.289],[-17.082,63.857],[25.379,58.471],[72.799,-3.298],[70.701,-34.535],[29.089,-16.01]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[493.819,462.152],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Body","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.37],"y":[1]},"o":{"x":[0.45],"y":[0]},"n":["0p37_1_0p45_0"],"t":0,"s":[50],"e":[-14.62]},{"i":{"x":[0.674],"y":[-0.319]},"o":{"x":[0.341],"y":[0]},"n":["0p674_-0p319_0p341_0"],"t":19,"s":[-14.62],"e":[-14.418]},{"i":{"x":[0.56],"y":[1]},"o":{"x":[0.64],"y":[0.067]},"n":["0p56_1_0p64_0p067"],"t":23,"s":[-14.418],"e":[50]},{"t":56}],"ix":10},"p":{"a":0,"k":[459.201,356.344,0],"ix":2},"a":{"a":0,"k":[449.08,358.479,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":6,"s":[100,100,100],"e":[131,78,100]},{"i":{"x":[0.27,0.27,0.27],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p27_1_0p167_0p167","0p27_1_0p167_0p167","0p27_1_0p167_0"],"t":10,"s":[131,78,100],"e":[100,100,100]},{"t":17}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.465,7.119],[7.118,5.465],[5.465,-7.118],[-7.119,-5.465]],"o":[[5.465,-7.119],[-7.119,-5.465],[-5.466,7.119],[7.119,5.465]],"v":[[12.89,9.896],[9.896,-12.889],[-12.889,-9.895],[-9.895,12.89]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.952999997606,0.808000033509,0.395999983245,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[555.002,442.372],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.92,1.1],[-3.672,-2.82],[1.116,-4.212],[1.755,1.347]],"o":[[-1.755,-1.348],[3.781,-2.167],[3.673,2.82],[-0.567,2.139],[0,0]],"v":[[-7.978,-1.473],[-7.691,-6.658],[4.632,-5.83],[8.617,5.861],[3.682,7.478]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[521.655,428.655],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.126,-0.646],[2.156,1.654],[-0.656,2.472],[-1.03,-0.791]],"o":[[1.03,0.791],[-2.219,1.271],[-2.155,-1.655],[0.332,-1.255],[0,0]],"v":[[4.682,0.864],[4.513,3.908],[-2.719,3.421],[-5.056,-3.44],[-2.161,-4.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[519.534,432.603],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-8.652,-6.643],[6.642,-8.652],[0,0],[0,0]],"o":[[6.642,-8.652],[8.652,6.642],[0,0],[0,0],[0,0]],"v":[[-0.947,-30.385],[26.746,-34.023],[30.385,-6.332],[-5.695,40.667],[-37.027,16.613]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[540.039,460.227],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-8.652,-6.642],[6.642,-8.652],[0,0],[0,0]],"o":[[6.642,-8.652],[8.652,6.642],[0,0],[0,0],[0,0]],"v":[[-0.947,-30.385],[26.746,-34.024],[30.385,-6.332],[-5.695,40.666],[-37.027,16.613]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[483.324,416.688],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[7.01,5.381],[-5.087,6.626],[0,0],[0,0]],"o":[[-5.087,6.626],[-7.009,-5.381],[0,0],[0,0],[0,0]],"v":[[1.419,23.922],[-20.483,26.176],[-23.964,4.436],[3.667,-31.556],[29.05,-12.07]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[527.549,419.108],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.347,9.496],[0,0],[0,0],[0,0],[-13.318,-10.225],[0,0],[-10.132,13.198],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-10.132,13.199],[0,0],[13.318,10.224],[0,0],[0,0],[0,0],[-8.762,3.9]],"v":[[11.966,-28.935],[18.368,-74.081],[-15.857,-70.098],[-62.668,-9.121],[-56.898,33.289],[-17.082,63.857],[25.379,58.471],[72.799,-3.298],[70.701,-34.535],[29.089,-16.01]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[493.819,462.152],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[35.29,27.092],[0,0],[27.092,-35.29],[0,0],[-14.019,-10.762],[0,0],[-10.762,14.018],[0,0]],"o":[[0,0],[-35.29,-27.092],[0,0],[-10.762,14.018],[0,0],[14.018,10.761],[0,0],[27.092,-35.289]],"v":[[61.762,-78.449],[61.762,-78.449],[-51.19,-63.604],[-92.936,-9.225],[-87.039,35.645],[-10.009,94.779],[34.86,88.882],[76.606,34.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[442.313,523.242],"ix":2},"a":{"a":0,"k":[-52.793,64.655],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Glass Outlines","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[601.505,484.344,0],"ix":2},"a":{"a":0,"k":[601.505,484.344,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.306,-5.957],[-6.185,0.826],[-8.305,-3.702],[-3.784,5.958]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[592.294,492.253],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.586,-1.251],[0,0],[1.347,0.192],[0,0],[-0.612,1.05],[0,0]],"o":[[0,0],[0.577,1.232],[0,0],[-1.204,-0.171],[0,0],[0.695,-1.194]],"v":[[1.794,-8.294],[8.957,7.011],[7.165,9.432],[-7.684,7.32],[-8.922,4.763],[-1.237,-8.43]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[609.898,479.757],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Arm R Outlines","parent":8,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.41],"y":[1]},"o":{"x":[0.59],"y":[0]},"n":["0p41_1_0p59_0"],"t":0,"s":[38],"e":[-42]},{"i":{"x":[0.41],"y":[1]},"o":{"x":[0.59],"y":[0]},"n":["0p41_1_0p59_0"],"t":28,"s":[-42],"e":[38]},{"t":53}],"ix":10},"p":{"a":0,"k":[575.043,479.064,0],"ix":2},"a":{"a":0,"k":[575.043,479.064,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[22.26,22.26],"ix":2},"p":{"a":0,"k":[4,-5],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.117646998985,0.121569001441,0.333332974303,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[570.715,484.126],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.105,0.259],[0,0],[0,0],[-2.281,5.643],[5.595,2.31]],"o":[[0,0],[0,0],[5.644,2.281],[2.269,-5.613],[-6.747,-2.786]],"v":[[-7.052,-14.471],[-15.484,6.389],[-1.134,12.19],[13.215,6.102],[7.208,-8.214]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[585.274,482.801],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Arm L Outlines","parent":8,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[460.434,386.251,0],"ix":2},"a":{"a":0,"k":[460.434,386.251,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.265,-0.087],[0,0],[0,0],[5.784,-1.897],[-1.843,-5.766]],"o":[[0,0],[0,0],[-1.897,-5.784],[-5.752,1.886],[2.223,6.953]],"v":[[-7.56,15.327],[13.819,8.316],[8.996,-6.392],[-4.91,-13.43],[-11.977,0.394]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[452.776,378.078],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"chandelier base","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[344.204,-453.167,0],"ix":2},"a":{"a":0,"k":[445.204,67.833,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[10.771,0],[0,0],[0,10.771],[0,0],[-4.486,0],[0,0],[0,-4.486],[0,0]],"o":[[0,0],[-10.771,0],[0,0],[0,-4.486],[0,0],[4.486,0],[0,0],[0,10.771]],"v":[[14.55,16.216],[-14.55,16.216],[-34.053,-3.287],[-34.053,-8.093],[-25.931,-16.216],[25.931,-16.216],[34.053,-8.093],[34.053,-3.287]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[448.062,70.049],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.689,0],[0,0],[0,4.69],[0,0],[-1.953,0],[0,0],[0,-1.953],[0,0]],"o":[[0,0],[-4.689,0],[0,0],[0,-1.953],[0,0],[1.953,0],[0,0],[0,4.69]],"v":[[6.334,7.059],[-6.335,7.059],[-14.825,-1.431],[-14.825,-3.523],[-11.289,-7.059],[11.289,-7.059],[14.825,-3.523],[14.825,-1.431]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[448.063,90.319],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"ix":17,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"chandelier bottom 2","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.16],"y":[1]},"o":{"x":[0.57],"y":[0]},"n":["0p16_1_0p57_0"],"t":3,"s":[22],"e":[-22]},{"i":{"x":[0.16],"y":[1]},"o":{"x":[0.57],"y":[0]},"n":["0p16_1_0p57_0"],"t":21.473,"s":[-22],"e":[-21.933]},{"i":{"x":[0.16],"y":[1]},"o":{"x":[0.57],"y":[0]},"n":["0p16_1_0p57_0"],"t":26,"s":[-21.933],"e":[22]},{"t":55}],"ix":10},"p":{"a":0,"k":[346.204,-429.167,0],"ix":2},"a":{"a":0,"k":[445.992,91.903,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.487,-12.331],[7.486,-12.331],[7.486,12.331],[-7.487,12.331]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.523,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[366.388,306.969],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.393,0],[0,0],[0,5.392],[0,0],[2.246,0],[0,0],[0,-2.245],[0,0]],"o":[[0,0],[5.392,0],[0,0],[0,-2.245],[0,0],[-2.246,0],[0,0],[0,5.392]],"v":[[-7.284,8.118],[7.285,8.118],[17.048,-1.645],[17.048,-4.052],[12.983,-8.118],[-12.983,-8.118],[-17.048,-4.052],[-17.048,-1.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[366.914,315.483],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[7.093,-12.691],[0.261,-4.766],[0,0],[1.729,-3.557],[4.702,22.165]],"o":[[-7.974,-14.081],[-2.124,3.8],[0,0],[-0.232,4.257],[-8.24,16.946],[0,0]],"v":[[36.922,-47.763],[6.956,-47.724],[3.435,-34.5],[-0.245,32.901],[-3.113,44.897],[-36.922,37.465]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.776,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[404.283,275.725],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[10.727,-12.691],[0.393,-4.766],[0,0],[2.616,-3.556],[7.111,22.164]],"o":[[0,0],[-12.059,-14.08],[-3.212,3.8],[0,0],[-0.351,4.256],[-12.461,16.947],[0,0]],"v":[[60.66,-36.493],[51.008,-47.764],[5.693,-47.725],[0.37,-34.501],[-5.196,32.9],[-9.535,44.896],[-60.66,37.464]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.414,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[388.878,273.833],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.311,-8.748],[5.311,-8.748],[5.311,8.748],[-5.311,8.748]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.499,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[328.433,304.094],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.826,0],[0,0],[0,3.826],[0,0],[1.593,0],[0,0],[0,-1.593],[0,0]],"o":[[0,0],[3.825,0],[0,0],[0,-1.593],[0,0],[-1.594,0],[0,0],[0,3.826]],"v":[[-5.168,5.759],[5.168,5.759],[12.095,-1.167],[12.095,-2.874],[9.21,-5.759],[-9.21,-5.759],[-12.095,-2.874],[-12.095,-1.167]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[328.807,310.135],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.487,-12.331],[-7.487,-12.331],[-7.487,12.331],[7.487,12.331]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.523,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[532.021,305.346],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.393,0],[0,0],[0,5.392],[0,0],[-2.246,0],[0,0],[0,-2.245],[0,0]],"o":[[0,0],[-5.392,0],[0,0],[0,-2.245],[0,0],[2.246,0],[0,0],[0,5.392]],"v":[[7.285,8.118],[-7.284,8.118],[-17.048,-1.645],[-17.048,-4.052],[-12.982,-8.118],[12.983,-8.118],[17.049,-4.052],[17.049,-1.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[531.494,313.861],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-7.093,-12.691],[-0.261,-4.766],[0,0],[-1.729,-3.557],[-4.702,22.165]],"o":[[7.974,-14.081],[2.124,3.8],[0,0],[0.232,4.257],[8.24,16.946],[0,0]],"v":[[-36.921,-47.763],[-6.956,-47.724],[-3.435,-34.5],[0.245,32.901],[3.113,44.897],[36.922,37.465]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.776,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[494.125,274.103],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-10.727,-12.691],[-0.393,-4.766],[0,0],[-2.616,-3.556],[-7.111,22.164]],"o":[[0,0],[12.059,-14.081],[3.212,3.8],[0,0],[0.351,4.256],[12.461,16.947],[0,0]],"v":[[-60.66,-36.493],[-51.008,-47.762],[-5.693,-47.725],[-0.37,-34.501],[5.196,32.9],[9.535,44.896],[60.66,37.464]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.414,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[509.53,272.212],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.311,-8.748],[-5.311,-8.748],[-5.311,8.748],[5.311,8.748]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.499,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[569.975,302.473],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.826,0],[0,0],[0,3.826],[0,0],[-1.593,0],[0,0],[0,-1.593],[0,0]],"o":[[0,0],[-3.825,0],[0,0],[0,-1.593],[0,0],[1.594,0],[0,0],[0,3.826]],"v":[[5.168,5.759],[-5.168,5.759],[-12.095,-1.167],[-12.095,-2.874],[-9.21,-5.759],[9.21,-5.759],[12.095,-2.874],[12.095,-1.167]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[569.601,308.513],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.927],[3.927,0],[0,-3.927],[-3.927,0]],"o":[[0,-3.927],[-3.927,0],[0,3.927],[3.927,0]],"v":[[7.11,0],[0,-7.11],[-7.11,0],[0,7.11]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.188,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[448.063,157.884],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":3,"cix":2,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,5.821],[5.821,0],[0,-5.821],[-5.821,0]],"o":[[0,-5.821],[-5.821,0],[0,5.821],[5.821,0]],"v":[[10.54,0],[0,-10.54],[-10.54,0],[0,10.54]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.243,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[448.063,357.338],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":3,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[448.062,90.319],[448.062,347.609]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.243,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.776000019148,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":3,"cix":2,"ix":15,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":218,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/peli-canon.json b/external/rlottie/example/resource/peli-canon.json new file mode 100644 index 000000000..d7a78c7a0 --- /dev/null +++ b/external/rlottie/example/resource/peli-canon.json @@ -0,0 +1 @@ +{"v":"4.10.2","fr":24,"ip":0,"op":105,"w":1500,"h":1500,"nm":"Interactive link","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":3,"nm":"RECOIL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.24],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p24_1_0p167_0p167"],"t":33.6,"s":[0],"e":[-8]},{"i":{"x":[0.24],"y":[1]},"o":{"x":[0.167],"y":[0.182]},"n":["0p24_1_0p167_0p182"],"t":41.6,"s":[-8],"e":[0]},{"t":60.8}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.48,"y":1},"o":{"x":0.52,"y":0},"n":"0p48_1_0p52_0","t":33.6,"s":[960,540,0],"e":[806,540,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.48,"y":1},"o":{"x":0.52,"y":0},"n":"0p48_1_0p52_0","t":36.8,"s":[806,540,0],"e":[960,540,0],"to":[0,0,0],"ti":[0,0,0]},{"t":57.6}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Smoke Move","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.64,"y":0},"n":"0p833_1_0p64_0","t":32.8,"s":[960,540,0],"e":[466,540,0],"to":[0,0,0],"ti":[0,0,0]},{"t":72.8}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":15.2,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Smoke Size","parent":2,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[237.027,-106.941,0],"ix":2},"a":{"a":0,"k":[-46,36,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.56,0.56,0.56],"y":[0,0,0]},"n":["0p833_0p833_0p56_0","0p833_0p833_0p56_0","0p833_1_0p56_0"],"t":32.8,"s":[0,0,100],"e":[100,100,100]},{"t":36}],"ix":6}},"ao":0,"ip":32.8,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Smoke 4","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.56,"y":0},"n":"0p833_0p833_0p56_0","t":32.8,"s":[77,125,0],"e":[102,174,0],"to":[0,0,0],"ti":[0,0,0]},{"t":52}],"ix":2},"a":{"a":0,"k":[434.027,-253.941,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,17.667]},"o":{"x":[0.56,0.56,0.56],"y":[0,0,0]},"n":["0p833_0p833_0p56_0","0p833_0p833_0p56_0","0p833_17p667_0p56_0"],"t":32.8,"s":[48,48,100],"e":[0,0,100]},{"t":52}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[127.148,127.148],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.941176470588,0.921568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[434.027,-253.941],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[117.417,117.417],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":32.8,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Smoke 3","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.56,"y":0},"n":"0p833_0p833_0p56_0","t":32.8,"s":[95,-5,0],"e":[-67,-145,0],"to":[0,0,0],"ti":[0,0,0]},{"t":66.4}],"ix":2},"a":{"a":0,"k":[434.027,-253.941,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,17.667]},"o":{"x":[0.56,0.56,0.56],"y":[0,0,0]},"n":["0p833_0p833_0p56_0","0p833_0p833_0p56_0","0p833_17p667_0p56_0"],"t":32.8,"s":[48,48,100],"e":[0,0,100]},{"t":66.4}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":38.4,"s":[80.71,80.71],"e":[0,0]},{"t":62.4}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":38.4,"s":[-43.263,-88],"e":[-2,-423],"to":[0,0],"ti":[0,0]},{"t":62.4}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.941176470588,0.921568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[483.273,-188.457],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[127.148,127.148],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.941176470588,0.921568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[434.027,-253.941],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[117.417,117.417],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":32.8,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Smoke 2","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.56,"y":0},"n":"0p833_0p833_0p56_0","t":32.8,"s":[117,59,0],"e":[300,308,0],"to":[0,0,0],"ti":[0,0,0]},{"t":68}],"ix":2},"a":{"a":0,"k":[434.027,-253.941,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,17.667]},"o":{"x":[0.56,0.56,0.56],"y":[0,0,0]},"n":["0p833_0p833_0p56_0","0p833_0p833_0p56_0","0p833_17p667_0p56_0"],"t":32.8,"s":[100,100,100],"e":[0,0,100]},{"t":60}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":35.2,"s":[99.664,99.664],"e":[0,0]},{"t":52.8}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":35.2,"s":[0,-59],"e":[204,-115.733],"to":[0,0],"ti":[0,0]},{"t":52.8}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.941176470588,0.921568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[433.914,-183.835],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 4","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":35.2,"s":[99.664,99.664],"e":[0,0]},{"t":62.4}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":35.2,"s":[0,-59],"e":[42,101],"to":[0,0],"ti":[0,0]},{"t":62.4}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.941176470588,0.921568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[433.914,-183.835],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[127.148,127.148],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.941176470588,0.921568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[434.027,-253.941],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[117.417,117.417],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":32.8,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Smoke","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.56,"y":0},"n":"0p833_0p833_0p56_0","t":32.8,"s":[23,5,0],"e":[23,-80,0],"to":[0,0,0],"ti":[0,0,0]},{"t":66.4}],"ix":2},"a":{"a":0,"k":[434.027,-253.941,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,17.667]},"o":{"x":[0.56,0.56,0.56],"y":[0,0,0]},"n":["0p833_0p833_0p56_0","0p833_0p833_0p56_0","0p833_17p667_0p56_0"],"t":32.8,"s":[100,100,100],"e":[0,0,100]},{"t":66.4}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[127.148,127.148],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.941176470588,0.921568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[434.027,-253.941],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[117.417,117.417],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":32.8,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"gun mask","parent":13,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-1.035,"ix":10},"p":{"a":0,"k":[-13.325,60.246,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[133.333,133.333,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[224.133,457.844],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254991718,0.2588239782,0.427451010311,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952940996955,0.941175991881,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[130.066,192.922],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"gun quick","parent":13,"tt":2,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-6,"ix":10},"p":{"a":0,"k":[-46.405,49.873,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[133.333,133.333,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":3,"nm":"Body Main","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p52_1_0p167_0p167"],"t":0,"s":[3],"e":[4]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":3.378,"s":[4],"e":[0]},{"i":{"x":[0.833],"y":[0.889]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p889_0p48_0"],"t":11.822,"s":[0],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.333]},"n":["0p52_1_0p167_0p333"],"t":15.2,"s":[3],"e":[4]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":18.578,"s":[4],"e":[0]},{"i":{"x":[0.833],"y":[0.889]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p889_0p48_0"],"t":27.022,"s":[0],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.333]},"n":["0p52_1_0p167_0p333"],"t":30.4,"s":[3],"e":[4]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":33.778,"s":[4],"e":[0]},{"i":{"x":[0.833],"y":[0.889]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p889_0p48_0"],"t":42.222,"s":[0],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.333]},"n":["0p52_1_0p167_0p333"],"t":45.6,"s":[3],"e":[4]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":48.978,"s":[4],"e":[0]},{"i":{"x":[0.833],"y":[0.889]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p889_0p48_0"],"t":57.422,"s":[0],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.333]},"n":["0p52_1_0p167_0p333"],"t":60.8,"s":[3],"e":[4]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":64.178,"s":[4],"e":[0]},{"i":{"x":[0.833],"y":[0.889]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p889_0p48_0"],"t":72.622,"s":[0],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.333]},"n":["0p52_1_0p167_0p333"],"t":76,"s":[3],"e":[4]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":79.378,"s":[4],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p833_0p48_0"],"t":87.822,"s":[0],"e":[3]},{"t":91.2}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.52,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p52_1_0p167_0p167","t":0,"s":[10.895,75.112,0],"e":[10.895,57.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.48,"y":0},"n":"0p52_1_0p48_0","t":4.222,"s":[10.895,57.112,0],"e":[10.895,105.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.9},"o":{"x":0.48,"y":0},"n":"0p833_0p9_0p48_0","t":12.667,"s":[10.895,105.112,0],"e":[10.895,75.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.167,"y":0.278},"n":"0p52_1_0p167_0p278","t":15.2,"s":[10.895,75.112,0],"e":[10.895,57.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.48,"y":0},"n":"0p52_1_0p48_0","t":19.422,"s":[10.895,57.112,0],"e":[10.895,105.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.9},"o":{"x":0.48,"y":0},"n":"0p833_0p9_0p48_0","t":27.867,"s":[10.895,105.112,0],"e":[10.895,75.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.167,"y":0.278},"n":"0p52_1_0p167_0p278","t":30.4,"s":[10.895,75.112,0],"e":[10.895,57.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.48,"y":0},"n":"0p52_1_0p48_0","t":34.622,"s":[10.895,57.112,0],"e":[10.895,105.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.9},"o":{"x":0.48,"y":0},"n":"0p833_0p9_0p48_0","t":43.067,"s":[10.895,105.112,0],"e":[10.895,75.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.167,"y":0.278},"n":"0p52_1_0p167_0p278","t":45.6,"s":[10.895,75.112,0],"e":[10.895,57.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.48,"y":0},"n":"0p52_1_0p48_0","t":49.822,"s":[10.895,57.112,0],"e":[10.895,105.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.9},"o":{"x":0.48,"y":0},"n":"0p833_0p9_0p48_0","t":58.267,"s":[10.895,105.112,0],"e":[10.895,75.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.167,"y":0.278},"n":"0p52_1_0p167_0p278","t":60.8,"s":[10.895,75.112,0],"e":[10.895,57.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.48,"y":0},"n":"0p52_1_0p48_0","t":65.022,"s":[10.895,57.112,0],"e":[10.895,105.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.9},"o":{"x":0.48,"y":0},"n":"0p833_0p9_0p48_0","t":73.467,"s":[10.895,105.112,0],"e":[10.895,75.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.167,"y":0.278},"n":"0p52_1_0p167_0p278","t":76,"s":[10.895,75.112,0],"e":[10.895,57.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.48,"y":0},"n":"0p52_1_0p48_0","t":80.222,"s":[10.895,57.112,0],"e":[10.895,105.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.9},"o":{"x":0.48,"y":0},"n":"0p833_0p9_0p48_0","t":88.667,"s":[10.895,105.112,0],"e":[10.895,75.112,0],"to":[0,0,0],"ti":[0,0,0]},{"t":91.2}],"ix":2},"a":{"a":0,"k":[60,60,0],"ix":1},"s":{"a":0,"k":[75,75,100],"ix":6}},"ao":0,"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"wing 5","parent":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":0,"s":[59],"e":[146]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":10.133,"s":[146],"e":[59]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":15.2,"s":[59],"e":[146]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":25.333,"s":[146],"e":[59]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":30.4,"s":[59],"e":[146]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":40.533,"s":[146],"e":[59]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":45.6,"s":[59],"e":[146]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":55.733,"s":[146],"e":[59]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":60.8,"s":[59],"e":[146]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":70.933,"s":[146],"e":[59]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":76,"s":[59],"e":[146]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":86.133,"s":[146],"e":[59]},{"t":91.2}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.79,"y":0},"n":"0p833_0p833_0p79_0","t":0,"s":[0.267,50.477,0],"e":[-11.733,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.79,"y":0},"n":"0p833_1_0p79_0","t":10.133,"s":[-11.733,50.477,0],"e":[0.267,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.79,"y":0},"n":"0p833_0p833_0p79_0","t":15.2,"s":[0.267,50.477,0],"e":[-11.733,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.79,"y":0},"n":"0p833_1_0p79_0","t":25.333,"s":[-11.733,50.477,0],"e":[0.267,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.79,"y":0},"n":"0p833_0p833_0p79_0","t":30.4,"s":[0.267,50.477,0],"e":[-11.733,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.79,"y":0},"n":"0p833_1_0p79_0","t":40.533,"s":[-11.733,50.477,0],"e":[0.267,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.79,"y":0},"n":"0p833_0p833_0p79_0","t":45.6,"s":[0.267,50.477,0],"e":[-11.733,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.79,"y":0},"n":"0p833_1_0p79_0","t":55.733,"s":[-11.733,50.477,0],"e":[0.267,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.79,"y":0},"n":"0p833_0p833_0p79_0","t":60.8,"s":[0.267,50.477,0],"e":[-11.733,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.79,"y":0},"n":"0p833_1_0p79_0","t":70.933,"s":[-11.733,50.477,0],"e":[0.267,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.79,"y":0},"n":"0p833_0p833_0p79_0","t":76,"s":[0.267,50.477,0],"e":[-11.733,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.79,"y":0},"n":"0p833_1_0p79_0","t":86.133,"s":[-11.733,50.477,0],"e":[0.267,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"t":91.2}],"ix":2},"a":{"a":0,"k":[336.892,14.647,0],"ix":1},"s":{"a":0,"k":[-65,65,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":0,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5.742,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":7.656,"s":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}],"e":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":10.133,"s":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}],"e":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":11.541,"s":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":13.005,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":15.2,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20.942,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":22.856,"s":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}],"e":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":25.333,"s":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}],"e":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":26.741,"s":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":28.205,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":30.4,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":36.142,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":38.056,"s":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}],"e":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":40.533,"s":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}],"e":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41.941,"s":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":43.405,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":45.6,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51.342,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":53.256,"s":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}],"e":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":55.733,"s":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}],"e":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":57.141,"s":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":58.605,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":60.8,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":66.542,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":68.456,"s":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}],"e":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":70.933,"s":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}],"e":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":72.341,"s":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":73.805,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":76,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81.742,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":83.656,"s":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}],"e":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":86.133,"s":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}],"e":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":87.541,"s":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":89.005,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}]},{"t":91.2}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152941176471,0.2,0.239215686275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[174.225,86.647],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Top Beak Outlines","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.26],"y":[1]},"o":{"x":[0.55],"y":[0]},"n":["0p26_1_0p55_0"],"t":2.109,"s":[0],"e":[-68]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":8.727,"s":[-68],"e":[-62]},{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.161],"y":[0]},"n":["0p25_1_0p161_0"],"t":12.8,"s":[-62],"e":[-62]},{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.396],"y":[0]},"n":["0p25_1_0p396_0"],"t":72,"s":[-62],"e":[-68]},{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p25_1_0p167_0"],"t":75.2,"s":[-68],"e":[0]},{"t":80}],"ix":10},"p":{"a":0,"k":[14.53,13.181,0],"ix":2},"a":{"a":0,"k":[7.365,40.329,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[19.537,0],[0,0],[0,-19.537],[0,0],[0,0],[0,0]],"o":[[0,0],[-19.537,0],[0,0],[0,0],[0,0],[0,-19.537]],"v":[[114.406,-21.413],[-114.407,-21.413],[-149.782,13.962],[-149.782,21.413],[149.781,21.413],[149.781,13.962]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.337000020345,0.258999992819,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[150.031,21.663],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Bottom Beak Outlines","parent":15,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.26],"y":[1]},"o":{"x":[0.55],"y":[0]},"n":["0p26_1_0p55_0"],"t":1.6,"s":[0],"e":[18]},{"i":{"x":[0.26],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p26_1_0p167_0"],"t":8.8,"s":[18],"e":[18]},{"i":{"x":[0.26],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p26_1_0p167_0"],"t":72,"s":[18],"e":[0]},{"t":77.6}],"ix":10},"p":{"a":0,"k":[112.476,79.031,0],"ix":2},"a":{"a":0,"k":[10.209,15.628,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-77.12,0],[-0.52,76.997]],"o":[[0.52,76.997],[77.119,0],[0,0]],"v":[[-140.209,-69.629],[0,69.629],[140.209,-69.629]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.866999966491,0.776000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[150.209,79.629],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"small mask 2","parent":15,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":8.868,"ix":10},"p":{"a":0,"k":[162.027,67.974,0],"ix":2},"a":{"a":0,"k":[38.875,-61.949,0],"ix":1},"s":{"a":0,"k":[133.333,133.333,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[53.75,31.898],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254991718,0.2588239782,0.427451010311,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952940996955,0.941175991881,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.875,-61.949],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Head","parent":17,"tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p52_1_0p167_0p167"],"t":0,"s":[3],"e":[5]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":4.222,"s":[5],"e":[-6]},{"i":{"x":[0.833],"y":[0.909]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p909_0p48_0"],"t":11.822,"s":[-6],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.509]},"n":["0p52_1_0p167_0p509"],"t":15.2,"s":[3],"e":[5]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":19.422,"s":[5],"e":[-6]},{"i":{"x":[0.833],"y":[0.909]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p909_0p48_0"],"t":27.022,"s":[-6],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.509]},"n":["0p52_1_0p167_0p509"],"t":30.4,"s":[3],"e":[5]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":34.622,"s":[5],"e":[-6]},{"i":{"x":[0.833],"y":[0.909]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p909_0p48_0"],"t":42.222,"s":[-6],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.509]},"n":["0p52_1_0p167_0p509"],"t":45.6,"s":[3],"e":[5]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":49.822,"s":[5],"e":[-6]},{"i":{"x":[0.833],"y":[0.909]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p909_0p48_0"],"t":57.422,"s":[-6],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.509]},"n":["0p52_1_0p167_0p509"],"t":60.8,"s":[3],"e":[5]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":65.022,"s":[5],"e":[-6]},{"i":{"x":[0.833],"y":[0.909]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p909_0p48_0"],"t":72.622,"s":[-6],"e":[3]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.509]},"n":["0p52_1_0p167_0p509"],"t":76,"s":[3],"e":[5]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":80.222,"s":[5],"e":[-6]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p833_0p48_0"],"t":87.822,"s":[-6],"e":[3]},{"t":91.2}],"ix":10},"p":{"a":0,"k":[16.908,51.505,0],"ix":2},"a":{"a":0,"k":[16.908,51.505,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,5.418],[5.418,0],[0,-5.418],[-5.418,0]],"o":[[0,-5.418],[-5.418,0],[0,5.418],[5.418,0]],"v":[[9.81,0],[0,-9.81],[-9.81,0],[0,9.81]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.35,"y":1},"o":{"x":0.167,"y":0.075},"n":"0p35_1_0p167_0p075","t":2.4,"s":[93.656,43.492],"e":[80.656,43.492],"to":[0,0],"ti":[0,0]},{"i":{"x":0.35,"y":0.35},"o":{"x":0.167,"y":0.167},"n":"0p35_0p35_0p167_0p167","t":9.6,"s":[80.656,43.492],"e":[80.656,43.492],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":76.8,"s":[80.656,43.492],"e":[93.656,43.492],"to":[0,0],"ti":[0,0]},{"t":80.8}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-34.333],[-34.333,0],[0,34.333],[34.333,0]],"o":[[0,34.333],[34.333,0],[0,-34.333],[-34.333,0]],"v":[[-62.166,0],[0,62.166],[62.166,0],[0,-62.166]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.941000007181,0.922000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.067,62.416],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-5.557,0],[0,0]],"o":[[0,0],[-2.85,4.769],[0,0],[0,0]],"v":[[10.193,-21.154],[-8.623,10.328],[-2.48,21.154],[11.473,21.154]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.941000007181,0.922000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.723,57.927],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"small mask","parent":15,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":8.868,"ix":10},"p":{"a":0,"k":[157.188,77.464,0],"ix":2},"a":{"a":0,"k":[38.875,-61.949,0],"ix":1},"s":{"a":0,"k":[133.333,133.333,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[53.75,31.898],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254991718,0.2588239782,0.427451010311,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952940996955,0.941175991881,0.921568986481,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.875,-61.949],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Neck","parent":10,"tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.35],"y":[1]},"o":{"x":[0.167],"y":[0.137]},"n":["0p35_1_0p167_0p137"],"t":0,"s":[0],"e":[-24]},{"i":{"x":[0.35],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p35_1_0p167_0"],"t":23.2,"s":[-24],"e":[-24]},{"i":{"x":[0.35],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p35_1_0p167_0"],"t":75.2,"s":[-24],"e":[0]},{"t":84.8}],"ix":10},"p":{"a":0,"k":[8.184,36.832,0],"ix":2},"a":{"a":0,"k":[20.509,191.313,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-31.721,0],[0,31.721]],"o":[[0,0],[0,0],[0,31.721],[31.721,0],[0,0]],"v":[[57.436,-96.172],[-57.436,-96.172],[-57.436,38.736],[0,96.172],[57.436,38.736]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.941000007181,0.922000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[77.216,158.588],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Front Leg Outlines","parent":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p42_1_0p167_0p167"],"t":0,"s":[2.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":3.378,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.932]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p932_0p25_0"],"t":12.667,"s":[22.178],"e":[2.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-2.223]},"n":["0p42_1_0p167_-2p223"],"t":15.2,"s":[2.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":18.578,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.932]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p932_0p25_0"],"t":27.867,"s":[22.178],"e":[2.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-2.223]},"n":["0p42_1_0p167_-2p223"],"t":30.4,"s":[2.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":33.778,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.932]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p932_0p25_0"],"t":43.067,"s":[22.178],"e":[2.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-2.223]},"n":["0p42_1_0p167_-2p223"],"t":45.6,"s":[2.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":48.978,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.932]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p932_0p25_0"],"t":58.267,"s":[22.178],"e":[2.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-2.223]},"n":["0p42_1_0p167_-2p223"],"t":60.8,"s":[2.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64.178,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.932]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p932_0p25_0"],"t":73.467,"s":[22.178],"e":[2.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-2.223]},"n":["0p42_1_0p167_-2p223"],"t":76,"s":[2.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":79.378,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p833_0p25_0"],"t":88.667,"s":[22.178],"e":[2.178]},{"t":91.2}],"ix":10},"p":{"a":0,"k":[-99.14,166.91,0],"ix":2},"a":{"a":0,"k":[65.762,6.163,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.577,-6.966],[0,0],[0.694,-2.36],[3.024,0.418],[0,0],[0.975,-2.897],[3.412,2.33],[0.591,1.594],[0,0]],"o":[[0,0],[1.688,2.108],[-0.861,2.928],[0,0],[-3.028,-0.418],[-1.319,3.917],[-1.291,-0.881],[0,0],[-3.103,-8.367]],"v":[[-7.838,-25.886],[22.348,11.824],[23.751,18.958],[16.853,23.219],[14.624,22.911],[7.724,27.182],[-1.725,30.521],[-4.652,26.768],[-21.342,-18.242]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.31,60.893],"ix":2},"a":{"a":0,"k":[-9.385,-16.997],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p42_1_0p167_0p167"],"t":0,"s":[6],"e":[19]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2.533,"s":[19],"e":[-25]},{"i":{"x":[0.833],"y":[0.882]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p882_0p25_0"],"t":12.667,"s":[-25],"e":[6]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.282]},"n":["0p42_1_0p167_0p282"],"t":15.2,"s":[6],"e":[19]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17.733,"s":[19],"e":[-25]},{"i":{"x":[0.833],"y":[0.882]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p882_0p25_0"],"t":27.867,"s":[-25],"e":[6]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.282]},"n":["0p42_1_0p167_0p282"],"t":30.4,"s":[6],"e":[19]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":32.933,"s":[19],"e":[-25]},{"i":{"x":[0.833],"y":[0.882]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p882_0p25_0"],"t":43.067,"s":[-25],"e":[6]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.282]},"n":["0p42_1_0p167_0p282"],"t":45.6,"s":[6],"e":[19]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":48.133,"s":[19],"e":[-25]},{"i":{"x":[0.833],"y":[0.882]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p882_0p25_0"],"t":58.267,"s":[-25],"e":[6]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.282]},"n":["0p42_1_0p167_0p282"],"t":60.8,"s":[6],"e":[19]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":63.333,"s":[19],"e":[-25]},{"i":{"x":[0.833],"y":[0.882]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p882_0p25_0"],"t":73.467,"s":[-25],"e":[6]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.282]},"n":["0p42_1_0p167_0p282"],"t":76,"s":[6],"e":[19]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":78.533,"s":[19],"e":[-25]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p833_0p25_0"],"t":88.667,"s":[-25],"e":[6]},{"t":91.2}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.75,2.75],[0,0],[-2.75,2.75],[0,0],[-2.75,-2.75],[2.75,-2.75],[0,0]],"o":[[0,0],[-2.75,-2.75],[0,0],[2.75,-2.75],[2.75,2.75],[0,0],[-2.75,2.75]],"v":[[-31.045,31.045],[-31.045,31.045],[-31.045,21.045],[21.045,-31.045],[31.045,-31.045],[31.045,-21.045],[-21.045,31.045]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.478,34.045],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Bottom Body Outlines","parent":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-51.067,125.81,0],"ix":2},"a":{"a":0,"k":[174.225,86.647,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[73.071,73.071],"ix":2},"p":{"a":0,"k":[79,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254991718,0.2588239782,0.427451010311,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.941000007181,0.922000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233.351,-3.486],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-95.692,0],[-0.645,95.54]],"o":[[0.645,95.54],[95.692,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.941000007181,0.922000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[174.225,86.647],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Back Leg","parent":19,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p42_1_0p167_0p167"],"t":0,"s":[0.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5.067,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.964]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p964_0p36_0"],"t":13.511,"s":[22.178],"e":[0.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-0.85]},"n":["0p42_1_0p167_-0p85"],"t":15.2,"s":[0.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20.267,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.964]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p964_0p36_0"],"t":28.711,"s":[22.178],"e":[0.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-0.85]},"n":["0p42_1_0p167_-0p85"],"t":30.4,"s":[0.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35.467,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.964]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p964_0p36_0"],"t":43.911,"s":[22.178],"e":[0.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-0.85]},"n":["0p42_1_0p167_-0p85"],"t":45.6,"s":[0.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":50.667,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.964]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p964_0p36_0"],"t":59.111,"s":[22.178],"e":[0.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-0.85]},"n":["0p42_1_0p167_-0p85"],"t":60.8,"s":[0.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":65.867,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.964]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p964_0p36_0"],"t":74.311,"s":[22.178],"e":[0.178]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[-0.85]},"n":["0p42_1_0p167_-0p85"],"t":76,"s":[0.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":81.067,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p833_0p36_0"],"t":89.511,"s":[22.178],"e":[0.178]},{"t":91.2}],"ix":10},"p":{"a":0,"k":[182.152,135.748,0],"ix":2},"a":{"a":0,"k":[65.762,6.163,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.577,-6.966],[0,0],[0.694,-2.36],[3.024,0.418],[0,0],[0.975,-2.897],[3.412,2.33],[0.591,1.594],[0,0]],"o":[[0,0],[1.688,2.108],[-0.861,2.928],[0,0],[-3.028,-0.418],[-1.319,3.917],[-1.291,-0.881],[0,0],[-3.103,-8.367]],"v":[[-7.838,-25.886],[22.348,11.824],[23.751,18.958],[16.853,23.219],[14.624,22.911],[7.724,27.182],[-1.725,30.521],[-4.652,26.768],[-21.342,-18.242]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.31,60.893],"ix":2},"a":{"a":0,"k":[-9.385,-16.997],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p42_1_0p167_0p167"],"t":0,"s":[0],"e":[17]},{"i":{"x":[0.833],"y":[0.779]},"o":{"x":[0.167],"y":[0.221]},"n":["0p833_0p779_0p167_0p221"],"t":4.222,"s":[17],"e":[-23]},{"i":{"x":[0.833],"y":[0.917]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p917_0p36_0"],"t":13.511,"s":[-23],"e":[0]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.28]},"n":["0p42_1_0p167_0p28"],"t":15.2,"s":[0],"e":[17]},{"i":{"x":[0.833],"y":[0.779]},"o":{"x":[0.167],"y":[0.221]},"n":["0p833_0p779_0p167_0p221"],"t":19.422,"s":[17],"e":[-23]},{"i":{"x":[0.833],"y":[0.917]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p917_0p36_0"],"t":28.711,"s":[-23],"e":[0]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.28]},"n":["0p42_1_0p167_0p28"],"t":30.4,"s":[0],"e":[17]},{"i":{"x":[0.833],"y":[0.779]},"o":{"x":[0.167],"y":[0.221]},"n":["0p833_0p779_0p167_0p221"],"t":34.622,"s":[17],"e":[-23]},{"i":{"x":[0.833],"y":[0.917]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p917_0p36_0"],"t":43.911,"s":[-23],"e":[0]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.28]},"n":["0p42_1_0p167_0p28"],"t":45.6,"s":[0],"e":[17]},{"i":{"x":[0.833],"y":[0.779]},"o":{"x":[0.167],"y":[0.221]},"n":["0p833_0p779_0p167_0p221"],"t":49.822,"s":[17],"e":[-23]},{"i":{"x":[0.833],"y":[0.917]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p917_0p36_0"],"t":59.111,"s":[-23],"e":[0]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.28]},"n":["0p42_1_0p167_0p28"],"t":60.8,"s":[0],"e":[17]},{"i":{"x":[0.833],"y":[0.779]},"o":{"x":[0.167],"y":[0.221]},"n":["0p833_0p779_0p167_0p221"],"t":65.022,"s":[17],"e":[-23]},{"i":{"x":[0.833],"y":[0.917]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p917_0p36_0"],"t":74.311,"s":[-23],"e":[0]},{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.28]},"n":["0p42_1_0p167_0p28"],"t":76,"s":[0],"e":[17]},{"i":{"x":[0.833],"y":[0.779]},"o":{"x":[0.167],"y":[0.221]},"n":["0p833_0p779_0p167_0p221"],"t":80.222,"s":[17],"e":[-23]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p833_0p36_0"],"t":89.511,"s":[-23],"e":[0]},{"t":91.2}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.75,2.75],[0,0],[-2.75,2.75],[0,0],[-2.75,-2.75],[2.75,-2.75],[0,0]],"o":[[0,0],[-2.75,-2.75],[0,0],[2.75,-2.75],[2.75,2.75],[0,0],[-2.75,2.75]],"v":[[-31.045,31.045],[-31.045,31.045],[-31.045,21.045],[21.045,-31.045],[31.045,-31.045],[31.045,-21.045],[-21.045,31.045]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.478,34.045],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.2,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"muzzle top","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.01},"n":"0p833_1_0p167_0p01","t":0,"s":[1.365,-0.526,0],"e":[107.365,-0.526,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.25,"y":1},"o":{"x":0.167,"y":0.104},"n":"0p25_1_0p167_0p104","t":12,"s":[107.365,-0.526,0],"e":[124.365,-0.526,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.25,"y":1},"o":{"x":0.167,"y":0},"n":"0p25_1_0p167_0","t":32,"s":[124.365,-0.526,0],"e":[81.052,-0.138,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.016},"n":"0p833_1_0p167_0p016","t":36,"s":[81.052,-0.138,0],"e":[107.365,-0.526,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.48,"y":0.48},"o":{"x":0,"y":0},"n":"0p48_0p48_0_0","t":40.8,"s":[107.365,-0.526,0],"e":[107.365,-0.526,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.48,"y":1},"o":{"x":0.52,"y":0},"n":"0p48_1_0p52_0","t":68,"s":[107.365,-0.526,0],"e":[39.052,-0.138,0],"to":[0,0,0],"ti":[0,0,0]},{"t":74.4}],"ix":2},"a":{"a":0,"k":[-67.077,-188.693,0],"ix":1},"s":{"a":0,"k":[101.719,87.719,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":12,"s":[56.154,114.613],"e":[81.154,114.613]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":32,"s":[81.154,114.613],"e":[56.154,114.613]},{"t":36}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":7,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152941176471,0.2,0.239215686275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-51.347,-187.696],"ix":2},"a":{"a":0,"k":[28.612,1.172],"ix":1},"s":{"a":0,"k":[84.896,85.078],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":106.4,"st":-91.2,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"cannon tip","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"n":"0p833_0p833_0p33_0","t":-4.8,"s":[-71.354,-187.749,0],"e":[-59.36,-187.377,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p67_1_0p167_0p167","t":-0.8,"s":[-59.36,-187.377,0],"e":[-63.359,-187.305,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":0.67},"o":{"x":0.33,"y":0.33},"n":"0p67_0p67_0p33_0p33","t":1.6,"s":[-63.359,-187.305,0],"e":[-63.359,-187.305,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":0.33,"y":0},"n":"0p67_1_0p33_0","t":14.4,"s":[-63.359,-187.305,0],"e":[-54.306,-187.474,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":0.33,"y":0},"n":"0p67_1_0p33_0","t":32,"s":[-54.306,-187.474,0],"e":[-67.24,-187.253,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":0.33,"y":0},"n":"0p67_1_0p33_0","t":36.8,"s":[-67.24,-187.253,0],"e":[-63.359,-187.305,0],"to":[0,0,0],"ti":[0,0,0]},{"t":41.6}],"ix":2},"a":{"a":0,"k":[320.141,-109.805,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[38.281,69.609],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[320.141,-109.805],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":106.4,"st":-91.2,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 11","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75.336,-0.031,0],"ix":2},"a":{"a":0,"k":[-100.117,-188.035,0],"ix":1},"s":{"a":0,"k":[87.719,87.719,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20.234,77.93],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":5,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.56862745098,0.866666666667,0.776470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-100.117,-188.035],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":10.4,"op":71.2,"st":-91.2,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"circle 4","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[38.329,-2.022,0],"ix":2},"a":{"a":0,"k":[176.195,-111.805,0],"ix":1},"s":{"a":0,"k":[87.719,87.719,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15.609,15.609],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.56862745098,0.866666666667,0.776470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[176.195,-111.805],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":106.4,"st":-91.2,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"circle 3","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[8.797,-2.022,0],"ix":2},"a":{"a":0,"k":[176.195,-111.805,0],"ix":1},"s":{"a":0,"k":[87.719,87.719,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15.609,15.609],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.56862745098,0.866666666667,0.776470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[176.195,-111.805],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":106.4,"st":-91.2,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"circle 2","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-20.735,-2.022,0],"ix":2},"a":{"a":0,"k":[176.195,-111.805,0],"ix":1},"s":{"a":0,"k":[87.719,87.719,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15.609,15.609],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.56862745098,0.866666666667,0.776470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[176.195,-111.805],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":106.4,"st":-91.2,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Main Cannon","parent":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.32],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p32_1_0p167_0"],"t":0,"s":[-76.287],"e":[-39.287]},{"i":{"x":[0.32],"y":[1]},"o":{"x":[0.167],"y":[0.227]},"n":["0p32_1_0p167_0p227"],"t":13.6,"s":[-39.287],"e":[7.379]},{"i":{"x":[0.32],"y":[1]},"o":{"x":[0.167],"y":[0.37]},"n":["0p32_1_0p167_0p37"],"t":18.4,"s":[7.379],"e":[4.379]},{"i":{"x":[0.621],"y":[1.105]},"o":{"x":[0.288],"y":[0]},"n":["0p621_1p105_0p288_0"],"t":20,"s":[4.379],"e":[6.847]},{"i":{"x":[0.631],"y":[1]},"o":{"x":[0.299],"y":[0.069]},"n":["0p631_1_0p299_0p069"],"t":24.8,"s":[6.847],"e":[3.379]},{"i":{"x":[0.598],"y":[9.405]},"o":{"x":[0.268],"y":[0]},"n":["0p598_9p405_0p268_0"],"t":30.4,"s":[3.379],"e":[3.178]},{"i":{"x":[0.647],"y":[0.988]},"o":{"x":[0.314],"y":[0.095]},"n":["0p647_0p988_0p314_0p095"],"t":48.8,"s":[3.178],"e":[9.235]},{"i":{"x":[0.644],"y":[1]},"o":{"x":[0.311],"y":[-0.018]},"n":["0p644_1_0p311_-0p018"],"t":56.8,"s":[9.235],"e":[4.379]},{"i":{"x":[0.48],"y":[1]},"o":{"x":[0.52],"y":[0]},"n":["0p48_1_0p52_0"],"t":68,"s":[4.379],"e":[-58.621]},{"t":74.4}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.25,"y":1},"o":{"x":0.167,"y":0.144},"n":"0p25_1_0p167_0p144","t":32.8,"s":[61.277,-85.284,0],"e":[41.255,-85.689,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.25,"y":1},"o":{"x":0.167,"y":0.144},"n":"0p25_1_0p167_0p144","t":36.8,"s":[41.255,-85.689,0],"e":[61.277,-85.284,0],"to":[0,0,0],"ti":[0,0,0]},{"t":42.4}],"ix":2},"a":{"a":0,"k":[-61.324,3.45,0],"ix":1},"s":{"a":0,"k":[69.18,69.18,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-16.8,"s":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[40.221,-26.561],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[40.221,31.773]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[75.833,-29.167],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[75.833,29.167]],"c":true}]},{"i":{"x":0.32,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p32_1_0p167_0p167","t":-13.6,"s":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[75.833,-29.167],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[75.833,29.167]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[9.87,-28.07],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[9.87,30.263]],"c":true}]},{"i":{"x":0.32,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p32_1_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[9.87,-28.07],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[9.87,30.263]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[75.833,-29.167],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[75.833,29.167]],"c":true}]},{"i":{"x":0.48,"y":1},"o":{"x":0.167,"y":0},"n":"0p48_1_0p167_0","t":10.4,"s":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[75.833,-29.167],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[75.833,29.167]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[75.833,-29.167],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[75.833,29.167]],"c":true}]},{"i":{"x":0.48,"y":1},"o":{"x":0.52,"y":0},"n":"0p48_1_0p52_0","t":68,"s":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[75.833,-29.167],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[75.833,29.167]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,-16.108],[0,0],[-16.108,0],[0,0]],"o":[[0,0],[-16.108,0],[0,0],[0,16.108],[0,0],[0,0]],"v":[[9.87,-28.07],[-46.667,-29.167],[-75.833,0],[-75.833,0],[-46.667,29.167],[9.87,30.263]],"c":true}]},{"t":74.4}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152941176471,0.2,0.239215686275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":106.4,"st":-91.2,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"tip","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-3.2,"s":[-63.901,-230.501,0],"e":[-63.761,-243.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":-0.8,"s":[-63.761,-243.5,0],"e":[-63.75,-244.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":1.6}],"ix":2},"a":{"a":0,"k":[-63.75,-244,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-55.5,-250.5],[-72,-237.5],[-55.5,-238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":106.4,"st":-91.2,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"sight top 2","parent":7,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"n":"0p833_0p833_0p33_0","t":-6.4,"s":[-3.643,-15.564,0],"e":[-2.062,-40.969,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.569,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p569_1_0p167_0p167","t":-1.6,"s":[-2.062,-40.969,0],"e":[-2.174,-7.462,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.66,"y":1},"o":{"x":0.326,"y":0},"n":"0p66_1_0p326_0","t":13.6,"s":[-2.174,-7.462,0],"e":[-2.174,-37.462,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.706,"y":0.706},"o":{"x":0.334,"y":0.334},"n":"0p706_0p706_0p334_0p334","t":16,"s":[-2.174,-37.462,0],"e":[-2.174,-37.462,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0},"n":"0p67_1_0p167_0","t":32.8,"s":[-2.174,-37.462,0],"e":[-1.941,-21.675,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0},"n":"0p67_1_0p167_0","t":38.165,"s":[-1.941,-21.675,0],"e":[-2.012,-40.967,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0},"n":"0p67_1_0p167_0","t":43.53,"s":[-2.012,-40.967,0],"e":[-2.174,-37.462,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":0.67},"o":{"x":0.167,"y":0.167},"n":"0p67_0p67_0p167_0p167","t":48,"s":[-2.174,-37.462,0],"e":[-2.174,-37.462,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":0.167,"y":0},"n":"0p67_1_0p167_0","t":68,"s":[-2.174,-37.462,0],"e":[-2.174,-4.462,0],"to":[0,0,0],"ti":[0,0,0]},{"t":72}],"ix":2},"a":{"a":0,"k":[170.521,-153.707,0],"ix":1},"s":{"a":0,"k":[55.839,73.652,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[77.043,37.414],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.56862745098,0.866666666667,0.776470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[170.521,-153.707],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":106.4,"st":-91.2,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"swivel","tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":2.662,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.32,"y":1},"o":{"x":0.27,"y":0},"n":"0p32_1_0p27_0","t":1.6,"s":[1087.278,777.499,0],"e":[1113.149,531.355,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.332,"y":0.332},"o":{"x":0.173,"y":0.173},"n":"0p332_0p332_0p173_0p173","t":12.8,"s":[1113.149,531.355,0],"e":[1113.149,531.355,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.24,"y":1},"o":{"x":0.325,"y":0},"n":"0p24_1_0p325_0","t":66.4,"s":[1113.149,531.355,0],"e":[1114.638,517.183,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.24,"y":1},"o":{"x":0.43,"y":0},"n":"0p24_1_0p43_0","t":72.8,"s":[1114.638,517.183,0],"e":[1087.278,777.499,0],"to":[0,0,0],"ti":[0,0,0]},{"t":84}],"ix":2},"a":{"a":0,"k":[62.977,-55.023,0],"ix":1},"s":{"a":0,"k":[164.787,164.787,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[62.047,62.047],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.337254901961,0.258823529412,0.427450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152941176471,0.2,0.239215686275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[62.977,-55.023],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":243.2,"st":-44.8,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Body Main","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p52_1_0p167_0p167"],"t":0,"s":[3],"e":[4]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":3.2,"s":[4],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p833_0p48_0"],"t":11.2,"s":[0],"e":[3]},{"t":14.4}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.52,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p52_1_0p167_0p167","t":0,"s":[970.895,615.112,0],"e":[970.895,597.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.52,"y":1},"o":{"x":0.48,"y":0},"n":"0p52_1_0p48_0","t":4,"s":[970.895,597.112,0],"e":[970.895,645.112,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.48,"y":0},"n":"0p833_0p833_0p48_0","t":12,"s":[970.895,645.112,0],"e":[970.895,615.112,0],"to":[0,0,0],"ti":[0,0,0]},{"t":14.4}],"ix":2},"a":{"a":0,"k":[60,60,0],"ix":1},"s":{"a":0,"k":[75,75,100],"ix":6}},"ao":0,"ip":0,"op":14.4,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"wing 5","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":0,"s":[59],"e":[146]},{"i":{"x":[0.39],"y":[1]},"o":{"x":[0.79],"y":[0]},"n":["0p39_1_0p79_0"],"t":9.6,"s":[146],"e":[59]},{"t":14.4}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.79,"y":0},"n":"0p833_0p833_0p79_0","t":0,"s":[0.267,50.477,0],"e":[-11.733,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.79,"y":0},"n":"0p833_1_0p79_0","t":9.6,"s":[-11.733,50.477,0],"e":[0.267,50.477,0],"to":[0,0,0],"ti":[0,0,0]},{"t":14.4}],"ix":2},"a":{"a":0,"k":[336.892,14.647,0],"ix":1},"s":{"a":0,"k":[-65,65,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":0,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5.44,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":7.253,"s":[{"i":[[-24.545,-97.308],[-33.816,0],[-8.099,99.396],[30.355,0.919]],"o":[[24.545,97.308],[33.816,0],[0,0],[-30.355,-0.919]],"v":[[9.497,81.606],[126.549,226.875],[186.89,-79.109],[23.772,-83.224]],"c":true}],"e":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.75,"y":0},"n":"0p833_0p833_0p75_0","t":9.6,"s":[{"i":[[-32.666,-125.331],[0,0],[-12.173,101.503],[0,0]],"o":[[32.666,125.331],[0,0],[0,0],[0,0]],"v":[[34.21,123.997],[161.316,256.65],[193.949,-75.126],[41.189,-104.236]],"c":true}],"e":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10.934,"s":[{"i":[[-21.953,-84.231],[-31.381,0],[-8.392,99.548],[28.169,0.853]],"o":[[22.165,115.562],[31.381,0],[0,0],[-28.169,-0.853]],"v":[[5.328,68.178],[121.151,203.71],[187.398,-78.822],[25.027,-84.737]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}]},{"i":{"x":0.39,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p39_1_0p167_0p167","t":12.32,"s":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[85.898,2.602]],"o":[[0.645,95.54],[95.692,0],[0,0],[-85.898,-2.602]],"v":[[-173.975,-86.397],[38.84,95.215],[173.975,-86.397],[-8.097,-44.775]],"c":true}],"e":[{"i":[[0,0],[-95.692,0],[-0.645,95.54],[0,0]],"o":[[0.645,95.54],[95.692,0],[0,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397],[3.736,-86.397]],"c":true}]},{"t":14.4}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152941176471,0.2,0.239215686275,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[174.225,86.647],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":14.4,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Top Beak Outlines","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[116.797,76.583,0],"ix":2},"a":{"a":0,"k":[7.365,40.329,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[19.537,0],[0,0],[0,-19.537],[0,0],[0,0],[0,0]],"o":[[0,0],[-19.537,0],[0,0],[0,0],[0,0],[0,-19.537]],"v":[[114.406,-21.413],[-114.407,-21.413],[-149.782,13.962],[-149.782,21.413],[149.781,21.413],[149.781,13.962]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.337000020345,0.258999992819,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[150.031,21.663],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":14.4,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Bottom Beak Outlines","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[112.476,79.031,0],"ix":2},"a":{"a":0,"k":[10.209,15.628,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-77.12,0],[-0.52,76.997]],"o":[[0.52,76.997],[77.119,0],[0,0]],"v":[[-140.209,-69.629],[0,69.629],[140.209,-69.629]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.866999966491,0.776000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[150.209,79.629],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":14.4,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Head","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p52_1_0p167_0p167"],"t":0,"s":[3],"e":[5]},{"i":{"x":[0.52],"y":[1]},"o":{"x":[0.48],"y":[0]},"n":["0p52_1_0p48_0"],"t":4,"s":[5],"e":[-6]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.48],"y":[0]},"n":["0p833_0p833_0p48_0"],"t":11.2,"s":[-6],"e":[3]},{"t":14.4}],"ix":10},"p":{"a":0,"k":[16.908,51.505,0],"ix":2},"a":{"a":0,"k":[16.908,51.505,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,5.418],[5.418,0],[0,-5.418],[-5.418,0]],"o":[[0,-5.418],[-5.418,0],[0,5.418],[5.418,0]],"v":[[9.81,0],[0,-9.81],[-9.81,0],[0,9.81]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[93.656,43.492],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-34.333],[-34.333,0],[0,34.333],[34.333,0]],"o":[[0,34.333],[34.333,0],[0,-34.333],[-34.333,0]],"v":[[-62.166,0],[0,62.166],[62.166,0],[0,-62.166]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.941000007181,0.922000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.067,62.416],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-5.557,0],[0,0]],"o":[[0,0],[-2.85,4.769],[0,0],[0,0]],"v":[[10.193,-21.154],[-8.623,10.328],[-2.48,21.154],[11.473,21.154]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.941000007181,0.922000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.723,57.927],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":14.4,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Neck","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[63.25,62.357,0],"ix":2},"a":{"a":0,"k":[75.575,216.838,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-31.721,0],[0,31.721]],"o":[[0,0],[0,0],[0,31.721],[31.721,0],[0,0]],"v":[[57.436,-96.172],[-57.436,-96.172],[-57.436,38.736],[0,96.172],[57.436,38.736]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.941000007181,0.922000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[77.216,158.588],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":14.4,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Front Leg Outlines","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p42_1_0p167_0p167"],"t":0,"s":[2.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":3.2,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p833_0p25_0"],"t":12,"s":[22.178],"e":[2.178]},{"t":14.4}],"ix":10},"p":{"a":0,"k":[-99.14,166.91,0],"ix":2},"a":{"a":0,"k":[65.762,6.163,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.577,-6.966],[0,0],[0.694,-2.36],[3.024,0.418],[0,0],[0.975,-2.897],[3.412,2.33],[0.591,1.594],[0,0]],"o":[[0,0],[1.688,2.108],[-0.861,2.928],[0,0],[-3.028,-0.418],[-1.319,3.917],[-1.291,-0.881],[0,0],[-3.103,-8.367]],"v":[[-7.838,-25.886],[22.348,11.824],[23.751,18.958],[16.853,23.219],[14.624,22.911],[7.724,27.182],[-1.725,30.521],[-4.652,26.768],[-21.342,-18.242]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.31,60.893],"ix":2},"a":{"a":0,"k":[-9.385,-16.997],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p42_1_0p167_0p167"],"t":0,"s":[6],"e":[19]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2.4,"s":[19],"e":[-25]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.25],"y":[0]},"n":["0p833_0p833_0p25_0"],"t":12,"s":[-25],"e":[6]},{"t":14.4}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.75,2.75],[0,0],[-2.75,2.75],[0,0],[-2.75,-2.75],[2.75,-2.75],[0,0]],"o":[[0,0],[-2.75,-2.75],[0,0],[2.75,-2.75],[2.75,2.75],[0,0],[-2.75,2.75]],"v":[[-31.045,31.045],[-31.045,31.045],[-31.045,21.045],[21.045,-31.045],[31.045,-31.045],[31.045,-21.045],[-21.045,31.045]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.478,34.045],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":14.4,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Bottom Body Outlines","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-51.067,125.81,0],"ix":2},"a":{"a":0,"k":[174.225,86.647,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-95.692,0],[-0.645,95.54]],"o":[[0.645,95.54],[95.692,0],[0,0]],"v":[[-173.975,-86.397],[0,86.397],[173.975,-86.397]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.941000007181,0.922000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[174.225,86.647],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":14.4,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Back Leg","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p42_1_0p167_0p167"],"t":0,"s":[0.178],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":4.8,"s":[3],"e":[22.178]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p833_0p36_0"],"t":12.8,"s":[22.178],"e":[0.178]},{"t":14.4}],"ix":10},"p":{"a":0,"k":[-43.14,174.91,0],"ix":2},"a":{"a":0,"k":[65.762,6.163,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.577,-6.966],[0,0],[0.694,-2.36],[3.024,0.418],[0,0],[0.975,-2.897],[3.412,2.33],[0.591,1.594],[0,0]],"o":[[0,0],[1.688,2.108],[-0.861,2.928],[0,0],[-3.028,-0.418],[-1.319,3.917],[-1.291,-0.881],[0,0],[-3.103,-8.367]],"v":[[-7.838,-25.886],[22.348,11.824],[23.751,18.958],[16.853,23.219],[14.624,22.911],[7.724,27.182],[-1.725,30.521],[-4.652,26.768],[-21.342,-18.242]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.31,60.893],"ix":2},"a":{"a":0,"k":[-9.385,-16.997],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.42],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p42_1_0p167_0p167"],"t":0,"s":[0],"e":[17]},{"i":{"x":[0.833],"y":[0.779]},"o":{"x":[0.167],"y":[0.221]},"n":["0p833_0p779_0p167_0p221"],"t":4,"s":[17],"e":[-23]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.36],"y":[0]},"n":["0p833_0p833_0p36_0"],"t":12.8,"s":[-23],"e":[0]},{"t":14.4}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.75,2.75],[0,0],[-2.75,2.75],[0,0],[-2.75,-2.75],[2.75,-2.75],[0,0]],"o":[[0,0],[-2.75,-2.75],[0,0],[2.75,-2.75],[2.75,2.75],[0,0],[-2.75,2.75]],"v":[[-31.045,31.045],[-31.045,31.045],[-31.045,21.045],[21.045,-31.045],[31.045,-31.045],[31.045,-21.045],[-21.045,31.045]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.152999997606,0.2,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.478,34.045],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":14.4,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pelican Transition - fast","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,750,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[150,150,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":14.4,"op":105.6,"st":14.4,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Pelican loop","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,750,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[150,150,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":14.4,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/personal_character.json b/external/rlottie/example/resource/personal_character.json new file mode 100644 index 000000000..a56074e1f --- /dev/null +++ b/external/rlottie/example/resource/personal_character.json @@ -0,0 +1 @@ +{"v":"5.1.14","fr":30,"ip":0,"op":162,"w":900,"h":900,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Front Hair","parent":8,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.16,"y":0.16},"o":{"x":0.167,"y":0.167},"n":"0p16_0p16_0p167_0p167","t":0,"s":[101.385,187.205,0],"e":[101.385,187.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.84,"y":0},"n":"0p15_1_0p84_0","t":6,"s":[101.385,187.205,0],"e":[98.385,187.205,0],"to":[-0.5,0,0],"ti":[0.5,0,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.85,"y":0.85},"n":"0p15_0p15_0p85_0p85","t":20,"s":[98.385,187.205,0],"e":[98.385,187.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0},"n":"0p833_0p833_0p85_0","t":47,"s":[98.385,187.205,0],"e":[101.385,187.205,0],"to":[0.5,0,0],"ti":[-0.91666668653488,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":53,"s":[101.385,187.205,0],"e":[103.885,187.205,0],"to":[0.91666668653488,0,0],"ti":[-0.41666665673256,0,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.85,"y":0.85},"n":"0p15_0p15_0p85_0p85","t":67,"s":[103.885,187.205,0],"e":[103.885,187.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0},"n":"0p833_0p833_0p85_0","t":94,"s":[103.885,187.205,0],"e":[101.385,187.205,0],"to":[-0.41666665673256,0,0],"ti":[0.41666665673256,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":100,"s":[101.385,187.205,0],"e":[101.385,187.205,0],"to":[0,0,0],"ti":[0,0,0]},{"t":114}],"ix":2},"a":{"a":0,"k":[128,239,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":265,"h":166,"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Mouth","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p15_1_0p85_0"],"t":124,"s":[0],"e":[5.203]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p15_1_0p85_0"],"t":136,"s":[5.203],"e":[0]},{"t":148}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.15,"y":1},"o":{"x":0.85,"y":0},"n":"0p15_1_0p85_0","t":124,"s":[19.267,100.511,0],"e":[19.267,98.636,0],"to":[0,-0.3125,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.85,"y":0},"n":"0p15_1_0p85_0","t":136,"s":[19.267,98.636,0],"e":[19.267,100.511,0],"to":[0,0,0],"ti":[0,-0.3125,0]},{"t":148}],"ix":2},"a":{"a":0,"k":[42.667,13.167,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-34.167,0],[0,0]],"o":[[0,0],[34.166,0],[0,0]],"v":[[-35.166,-5.667],[1.001,5.667],[35.166,-5.667]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925,0.455000005984,0.395999983245,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[42.666,13.167],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Nose","parent":8,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.16],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p16_1_0p167_0"],"t":0,"s":[0],"e":[0]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.84],"y":[0]},"n":["0p15_1_0p84_0"],"t":6,"s":[0],"e":[-4]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p15_1_0p85_0"],"t":20,"s":[-4],"e":[-4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.85],"y":[0]},"n":["0p833_0p833_0p85_0"],"t":47,"s":[-4],"e":[0]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p15_1_0p167_0p167"],"t":53,"s":[0],"e":[4]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":67,"s":[4],"e":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":94,"s":[4],"e":[0]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":100,"s":[0],"e":[0]},{"t":114}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.16,"y":0.16},"o":{"x":0.167,"y":0.167},"n":"0p16_0p16_0p167_0p167","t":0,"s":[102.885,146.327,0],"e":[102.885,146.327,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.84,"y":0},"n":"0p15_1_0p84_0","t":6,"s":[102.885,146.327,0],"e":[110.885,139.327,0],"to":[1.33333337306976,-1.16666662693024,0],"ti":[-1.33333337306976,1.16666662693024,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.85,"y":0.85},"n":"0p15_0p15_0p85_0p85","t":20,"s":[110.885,139.327,0],"e":[110.885,139.327,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0},"n":"0p833_0p833_0p85_0","t":47,"s":[110.885,139.327,0],"e":[102.885,146.327,0],"to":[-1.33333337306976,1.16666662693024,0],"ti":[2.58333325386047,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":53,"s":[102.885,146.327,0],"e":[95.385,139.327,0],"to":[-2.58333325386047,0,0],"ti":[1.25,1.16666662693024,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.167,"y":0.167},"n":"0p15_0p15_0p167_0p167","t":67,"s":[95.385,139.327,0],"e":[95.385,139.327,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":94,"s":[95.385,139.327,0],"e":[102.885,146.327,0],"to":[1.25,1.16666662693024,0],"ti":[-1.25,-1.16666662693024,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.167,"y":0.167},"n":"0p15_0p15_0p167_0p167","t":100,"s":[102.885,146.327,0],"e":[102.885,146.327,0],"to":[0,0,0],"ti":[0,0,0]},{"t":114}],"ix":2},"a":{"a":0,"k":[20.266,37.538,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.843,-4.933],[0,0],[0,0],[4.52,8.394],[4.842,4.946],[-2.583,11.623],[-7.426,0],[-2.583,-11.623]],"o":[[-4.843,4.946],[-4.52,8.394],[0,0],[0,0],[-4.843,-4.933],[2.583,-11.623],[7.425,0],[2.583,11.623]],"v":[[14.529,32.213],[7.425,28.895],[0.001,35.351],[-7.425,28.895],[-14.527,32.213],[-17.433,8.232],[0.001,-37.288],[17.434,8.232]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.925,0.455000005984,0.395999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[20.266,37.539],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Eye","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-36.067,12.5,0],"ix":2},"a":{"a":0,"k":[6.333,6.333,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.16,0.16,0.16],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p16_1_0p167_0p167","0p16_1_0p167_0p167","0p16_1_0p167_0"],"t":0,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.84,0.84,0.84],"y":[0,0,0]},"n":["0p15_1_0p84_0","0p15_1_0p84_0","0p15_1_0p84_0"],"t":6,"s":[205,18,100],"e":[100,100,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p15_1_0p85_0","0p15_1_0p85_0","0p15_1_0p85_0"],"t":20,"s":[100,100,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p833_0p833_0p85_0","0p833_0p833_0p85_0","0p833_1_0p85_0"],"t":30,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p15_1_0p167_0p167","0p15_1_0p167_0p167","0p15_1_0p167_0"],"t":36,"s":[205,18,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"n":["0p833_1_0p167_0","0p833_1_0p167_0","0p833_1_0p167_0"],"t":42,"s":[100,100,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":47,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p15_1_0p167_0p167","0p15_1_0p167_0p167","0p15_1_0p167_0"],"t":53,"s":[205,18,100],"e":[100,100,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p15_1_0p85_0","0p15_1_0p85_0","0p15_1_0p85_0"],"t":67,"s":[100,100,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p833_0p833_0p85_0","0p833_0p833_0p85_0","0p833_1_0p85_0"],"t":77,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p15_1_0p167_0p167","0p15_1_0p167_0p167","0p15_1_0p167_0"],"t":83,"s":[205,18,100],"e":[100,100,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"n":["0p15_1_0p167_0","0p15_1_0p167_0","0p15_1_0p167_0"],"t":89,"s":[100,100,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p833_0p833_0p85_0","0p833_0p833_0p85_0","0p833_1_0p85_0"],"t":94,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p15_1_0p167_0p167","0p15_1_0p167_0p167","0p15_1_0p167_0"],"t":100,"s":[205,18,100],"e":[100,100,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p15_1_0p85_0","0p15_1_0p85_0","0p15_1_0p85_0"],"t":114,"s":[100,100,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p833_0p833_0p85_0","0p833_0p833_0p85_0","0p833_1_0p85_0"],"t":130,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p15_1_0p167_0p167","0p15_1_0p167_0p167","0p15_1_0p167_0"],"t":136,"s":[205,18,100],"e":[100,100,100]},{"t":148}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.36],[3.359,0],[0,3.359],[-3.36,0]],"o":[[0,3.359],[-3.36,0],[0,-3.36],[3.359,0]],"v":[[6.084,0],[0.001,6.083],[-6.084,0],[0.001,-6.083]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6.333,6.333],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Eye","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75.767,12.5,0],"ix":2},"a":{"a":0,"k":[6.333,6.333,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.16,0.16,0.16],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p16_1_0p167_0p167","0p16_1_0p167_0p167","0p16_1_0p167_0"],"t":0,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.84,0.84,0.84],"y":[0,0,0]},"n":["0p15_1_0p84_0","0p15_1_0p84_0","0p15_1_0p84_0"],"t":6,"s":[205,18,100],"e":[100,100,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p15_1_0p85_0","0p15_1_0p85_0","0p15_1_0p85_0"],"t":20,"s":[100,100,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p833_0p833_0p85_0","0p833_0p833_0p85_0","0p833_1_0p85_0"],"t":30,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p15_1_0p167_0p167","0p15_1_0p167_0p167","0p15_1_0p167_0"],"t":36,"s":[205,18,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"n":["0p833_1_0p167_0","0p833_1_0p167_0","0p833_1_0p167_0"],"t":42,"s":[100,100,100],"e":[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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":47,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p15_1_0p167_0p167","0p15_1_0p167_0p167","0p15_1_0p167_0"],"t":53,"s":[205,18,100],"e":[100,100,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p15_1_0p85_0","0p15_1_0p85_0","0p15_1_0p85_0"],"t":67,"s":[100,100,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p833_0p833_0p85_0","0p833_0p833_0p85_0","0p833_1_0p85_0"],"t":77,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p15_1_0p167_0p167","0p15_1_0p167_0p167","0p15_1_0p167_0"],"t":83,"s":[205,18,100],"e":[100,100,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"n":["0p15_1_0p167_0","0p15_1_0p167_0","0p15_1_0p167_0"],"t":89,"s":[100,100,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.85,0.85,0.85],"y":[0,0,0]},"n":["0p833_0p833_0p85_0","0p833_0p833_0p85_0","0p833_1_0p85_0"],"t":94,"s":[100,100,100],"e":[205,18,100]},{"i":{"x":[0.15,0.15,0.15],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p15_1_0p167_0p167","0p15_1_0p167_0p167","0p15_1_0p167_0"],"t":100,"s":[205,18,100],"e":[100,100,100]},{"t":114}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.36],[3.359,0],[0,3.359],[-3.359,0]],"o":[[0,3.359],[-3.359,0],[0,-3.36],[3.359,0]],"v":[[6.083,0],[0,6.083],[-6.083,0],[0,-6.083]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6.333,6.333],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Left Eye Brow","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.16],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p16_1_0p167_0p167"],"t":0,"s":[0],"e":[9.695]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.84],"y":[0]},"n":["0p15_1_0p84_0"],"t":6,"s":[9.695],"e":[-8.041]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p15_1_0p85_0"],"t":20,"s":[-8.041],"e":[-8.041]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p833_1_0p85_0"],"t":30,"s":[-8.041],"e":[-1.024]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":36,"s":[-1.024],"e":[-8.041]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":42,"s":[-8.041],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":47,"s":[0],"e":[9.695]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p15_1_0p167_0p167"],"t":53,"s":[9.695],"e":[-8.041]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p15_1_0p85_0"],"t":67,"s":[-8.041],"e":[-8.041]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p833_1_0p85_0"],"t":77,"s":[-8.041],"e":[-1.024]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":83,"s":[-1.024],"e":[-8.041]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":89,"s":[-8.041],"e":[-8.041]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.85],"y":[0]},"n":["0p833_0p833_0p85_0"],"t":94,"s":[-8.041],"e":[9.695]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p15_1_0p167_0p167"],"t":100,"s":[9.695],"e":[0]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p15_1_0p85_0"],"t":114,"s":[0],"e":[-8.258]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p833_1_0p85_0"],"t":124,"s":[-8.258],"e":[6.314]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":136,"s":[6.314],"e":[0]},{"t":148}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.16,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p16_1_0p167_0p167","t":0,"s":[-34.733,-13.416,0],"e":[-34.733,-4.916,0],"to":[0,1.41666662693024,0],"ti":[0,-0.25,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.84,"y":0},"n":"0p15_1_0p84_0","t":6,"s":[-34.733,-4.916,0],"e":[-34.733,-11.916,0],"to":[0,0.25,0],"ti":[0,1.16666662693024,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0.85},"n":"0p833_0p833_0p85_0p85","t":20,"s":[-34.733,-11.916,0],"e":[-34.733,-11.916,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[-34.733,-11.916,0],"e":[-34.746,-8.158,0],"to":[-0.00203262735158,0.62638407945633,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":36,"s":[-34.746,-8.158,0],"e":[-34.733,-11.916,0],"to":[0,0,0],"ti":[-0.00203262735158,0.87638407945633,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[-34.733,-11.916,0],"e":[-34.733,-13.416,0],"to":[0.00203262735158,-0.87638407945633,0],"ti":[0,-1.16666662693024,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":47,"s":[-34.733,-13.416,0],"e":[-34.733,-4.916,0],"to":[0,1.16666662693024,0],"ti":[0,-0.25,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":53,"s":[-34.733,-4.916,0],"e":[-34.733,-11.916,0],"to":[0,0.25,0],"ti":[0,1.16666662693024,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0.85},"n":"0p833_0p833_0p85_0p85","t":67,"s":[-34.733,-11.916,0],"e":[-34.733,-11.916,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":77,"s":[-34.733,-11.916,0],"e":[-34.746,-8.158,0],"to":[-0.00203262735158,0.62638407945633,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":83,"s":[-34.746,-8.158,0],"e":[-34.733,-11.916,0],"to":[0,0,0],"ti":[-0.00203262735158,0.62638407945633,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":89,"s":[-34.733,-11.916,0],"e":[-34.733,-11.916,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":94,"s":[-34.733,-11.916,0],"e":[-34.733,-4.916,0],"to":[0,1.16666662693024,0],"ti":[0,0.25,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":100,"s":[-34.733,-4.916,0],"e":[-34.733,-13.416,0],"to":[0,-0.25,0],"ti":[0,3.25,0]},{"i":{"x":0.32,"y":1},"o":{"x":0.85,"y":0},"n":"0p32_1_0p85_0","t":114,"s":[-34.733,-13.416,0],"e":[-34.733,-24.416,0],"to":[0,-3.25,0],"ti":[0.00203262735158,-1.70971739292145,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":124,"s":[-34.733,-24.416,0],"e":[-34.746,-3.158,0],"to":[-0.00203262735158,1.70971739292145,0],"ti":[0,-1.83333337306976,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":136,"s":[-34.746,-3.158,0],"e":[-34.733,-13.416,0],"to":[0,1.83333337306976,0],"ti":[-0.00203262735158,1.70971739292145,0]},{"t":148}],"ix":2},"a":{"a":0,"k":[21.083,8.416,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.492,0],[0,0],[0,4.492],[-4.492,0],[0,0],[0,-4.492]],"o":[[0,0],[-4.492,0],[0,-4.492],[0,0],[4.492,0],[0,4.492]],"v":[[12.667,8.166],[-12.667,8.166],[-20.833,-0.001],[-12.667,-8.166],[12.667,-8.166],[20.833,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[21.083,8.417],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Right Eye Brow","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.16],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p16_1_0p167_0p167"],"t":0,"s":[0],"e":[-7.24]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.84],"y":[0]},"n":["0p15_1_0p84_0"],"t":6,"s":[-7.24],"e":[5.892]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p15_1_0p85_0"],"t":20,"s":[5.892],"e":[5.892]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p833_1_0p85_0"],"t":30,"s":[5.892],"e":[-0.716]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":36,"s":[-0.716],"e":[5.892]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":42,"s":[5.892],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":47,"s":[0],"e":[-7.24]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p15_1_0p167_0p167"],"t":53,"s":[-7.24],"e":[5.892]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p15_1_0p85_0"],"t":67,"s":[5.892],"e":[5.892]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p833_1_0p85_0"],"t":77,"s":[5.892],"e":[-0.716]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":83,"s":[-0.716],"e":[5.892]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":89,"s":[5.892],"e":[5.892]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.85],"y":[0]},"n":["0p833_0p833_0p85_0"],"t":94,"s":[5.892],"e":[-7.24]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p15_1_0p167_0p167"],"t":100,"s":[-7.24],"e":[0]},{"t":114}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.16,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p16_1_0p167_0p167","t":0,"s":[75.267,-13.416,0],"e":[75.267,-4.916,0],"to":[0,1.41666662693024,0],"ti":[0,-0.08333333581686,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.84,"y":0},"n":"0p15_1_0p84_0","t":6,"s":[75.267,-4.916,0],"e":[75.267,-12.916,0],"to":[0,0.08333333581686,0],"ti":[0,1.33333337306976,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0.85},"n":"0p833_0p833_0p85_0p85","t":20,"s":[75.267,-12.916,0],"e":[75.267,-12.916,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[75.267,-12.916,0],"e":[75.22,-8.659,0],"to":[-0.00784566719085,0.70951437950134,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":36,"s":[75.22,-8.659,0],"e":[75.267,-12.916,0],"to":[0,0,0],"ti":[-0.00784566719085,0.79284769296646,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[75.267,-12.916,0],"e":[75.267,-13.416,0],"to":[0.00784566719085,-0.79284769296646,0],"ti":[0,-1.33333337306976,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":47,"s":[75.267,-13.416,0],"e":[75.267,-4.916,0],"to":[0,1.33333337306976,0],"ti":[0,-0.08333333581686,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":53,"s":[75.267,-4.916,0],"e":[75.267,-12.916,0],"to":[0,0.08333333581686,0],"ti":[0,1.33333337306976,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0.85},"n":"0p833_0p833_0p85_0p85","t":67,"s":[75.267,-12.916,0],"e":[75.267,-12.916,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":77,"s":[75.267,-12.916,0],"e":[75.22,-8.659,0],"to":[-0.00784566719085,0.70951437950134,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":83,"s":[75.22,-8.659,0],"e":[75.267,-12.916,0],"to":[0,0,0],"ti":[-0.00784566719085,0.70951437950134,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":89,"s":[75.267,-12.916,0],"e":[75.267,-12.916,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":94,"s":[75.267,-12.916,0],"e":[75.267,-4.916,0],"to":[0,1.33333337306976,0],"ti":[0,0.08333333581686,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":100,"s":[75.267,-4.916,0],"e":[75.267,-13.416,0],"to":[0,-0.08333333581686,0],"ti":[0,1.41666662693024,0]},{"t":114}],"ix":2},"a":{"a":0,"k":[21.083,8.416,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.491,0],[0,0],[0,4.492],[-4.491,0],[0,0],[0,-4.492]],"o":[[0,0],[-4.491,0],[0,-4.492],[0,0],[4.491,0],[0,4.492]],"v":[[12.667,8.166],[-12.667,8.166],[-20.833,-0.001],[-12.667,-8.166],[12.667,-8.166],[20.833,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[21.083,8.417],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Face","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.16,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p16_1_0p167_0p167","t":0,"s":[452.198,490.045,0],"e":[452.198,496.045,0],"to":[0,1,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.84,"y":0},"n":"0p15_1_0p84_0","t":6,"s":[452.198,496.045,0],"e":[452.198,490.045,0],"to":[0,0,0],"ti":[0,1,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0.85},"n":"0p833_0p833_0p85_0p85","t":20,"s":[452.198,490.045,0],"e":[452.198,490.045,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":47,"s":[452.198,490.045,0],"e":[452.198,496.045,0],"to":[0,1,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":53,"s":[452.198,496.045,0],"e":[452.198,490.045,0],"to":[0,0,0],"ti":[0,1,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.167,"y":0.167},"n":"0p15_0p15_0p167_0p167","t":67,"s":[452.198,490.045,0],"e":[452.198,490.045,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":94,"s":[452.198,490.045,0],"e":[452.198,496.045,0],"to":[0,1,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":100,"s":[452.198,496.045,0],"e":[452.198,490.045,0],"to":[0,0,0],"ti":[0,2.5,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.85,"y":0},"n":"0p15_1_0p85_0","t":114,"s":[452.198,490.045,0],"e":[452.198,481.045,0],"to":[0,-2.5,0],"ti":[0,-1.16666662693024,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.85,"y":0},"n":"0p15_1_0p85_0","t":124,"s":[452.198,481.045,0],"e":[452.198,497.045,0],"to":[0,1.16666662693024,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.85,"y":0},"n":"0p15_1_0p85_0","t":136,"s":[452.198,497.045,0],"e":[452.198,481.045,0],"to":[0,0,0],"ti":[0,2.66666674613953,0]},{"t":148}],"ix":2},"a":{"a":0,"k":[103.583,227.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.192,0],[0,0],[0,-11.193],[0,0],[-55.733,0],[0,55.733],[0,0]],"o":[[0,0],[-11.192,0],[0,0],[0,55.733],[55.733,0],[0,0],[0,-11.193]],"v":[[80.983,-136],[-80.984,-136],[-101.333,-115.65],[-101.333,34.667],[0,136],[101.333,34.667],[101.333,-115.65]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.855000035903,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[101.583,136.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"Ear","parent":8,"refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.16],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p16_1_0p167_0"],"t":0,"s":[0],"e":[0]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.84],"y":[0]},"n":["0p15_1_0p84_0"],"t":6,"s":[0],"e":[-1.475]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.85],"y":[0]},"n":["0p833_1_0p85_0"],"t":20,"s":[-1.475],"e":[-1.475]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":47,"s":[-1.475],"e":[0]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p15_1_0p167_0p167"],"t":53,"s":[0],"e":[1.095]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":67,"s":[1.095],"e":[1.095]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":94,"s":[1.095],"e":[0]},{"i":{"x":[0.15],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p15_1_0p167_0"],"t":100,"s":[0],"e":[0]},{"t":114}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.16,"y":0.16},"o":{"x":0.167,"y":0.167},"n":"0p16_0p16_0p167_0p167","t":0,"s":[101.385,187.205,0],"e":[101.385,187.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.84,"y":0},"n":"0p15_1_0p84_0","t":6,"s":[101.385,187.205,0],"e":[97.385,190.205,0],"to":[-0.66666668653488,0.5,0],"ti":[0.66666668653488,-0.5,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.85,"y":0.85},"n":"0p15_0p15_0p85_0p85","t":20,"s":[97.385,190.205,0],"e":[97.385,190.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0},"n":"0p833_0p833_0p85_0","t":47,"s":[97.385,190.205,0],"e":[101.385,187.205,0],"to":[0.66666668653488,-0.5,0],"ti":[-1.41666662693024,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":53,"s":[101.385,187.205,0],"e":[105.885,190.205,0],"to":[1.41666662693024,0,0],"ti":[-0.75,-0.5,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.167,"y":0.167},"n":"0p15_0p15_0p167_0p167","t":67,"s":[105.885,190.205,0],"e":[105.885,190.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":94,"s":[105.885,190.205,0],"e":[101.385,187.205,0],"to":[-0.75,-0.5,0],"ti":[0.75,0.5,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.167,"y":0.167},"n":"0p15_0p15_0p167_0p167","t":100,"s":[101.385,187.205,0],"e":[101.385,187.205,0],"to":[0,0,0],"ti":[0,0,0]},{"t":114}],"ix":2},"a":{"a":0,"k":[139,89,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":281,"h":539,"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Jakun","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[450.948,579.25,0],"ix":2},"a":{"a":0,"k":[23.375,18.375,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-21.5,-16.5],[-0.464,16.5],[21.5,-16.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.925,0.455000005984,0.395999983245,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[23.375,18.375],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Neck 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[450.948,524.25,0],"ix":2},"a":{"a":0,"k":[74.083,116.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.823,0],[0,0],[0,-8.823],[0,0],[-40.608,0],[0,40.608],[0,0]],"o":[[0,0],[-8.823,0],[0,0],[0,40.608],[40.608,0],[0,0],[0,-8.823]],"v":[[57.79,-116],[-57.792,-116],[-73.833,-99.958],[-73.833,42.167],[-0.001,116],[73.833,42.167],[73.833,-99.958]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.878431379795,0.731532931328,0.602845072746,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[74.084,116.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 1","parent":8,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-9.776,"ix":10},"p":{"a":0,"k":[95.385,220.205,0],"ix":2},"a":{"a":0,"k":[-2,100,0],"ix":1},"s":{"a":0,"k":[116.328,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[148,148],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.686274509804,0.585274849686,0.495194169587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2,100],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Neck","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[450.948,524.25,0],"ix":2},"a":{"a":0,"k":[74.083,116.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.823,0],[0,0],[0,-8.823],[0,0],[-40.608,0],[0,40.608],[0,0]],"o":[[0,0],[-8.823,0],[0,0],[0,40.608],[40.608,0],[0,0],[0,-8.823]],"v":[[57.79,-116],[-57.792,-116],[-73.833,-99.958],[-73.833,42.167],[-0.001,116],[73.833,42.167],[73.833,-99.958]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.878431379795,0.731532931328,0.602845072746,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[74.084,116.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"Back Hair","parent":8,"refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.16,"y":0.16},"o":{"x":0.167,"y":0.167},"n":"0p16_0p16_0p167_0p167","t":0,"s":[101.385,187.205,0],"e":[101.385,187.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.84,"y":0},"n":"0p15_1_0p84_0","t":6,"s":[101.385,187.205,0],"e":[92.385,190.205,0],"to":[-1.5,0.5,0],"ti":[1.5,-0.5,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.85,"y":0.85},"n":"0p15_0p15_0p85_0p85","t":20,"s":[92.385,190.205,0],"e":[92.385,190.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0},"n":"0p833_0p833_0p85_0","t":47,"s":[92.385,190.205,0],"e":[101.385,187.205,0],"to":[1.5,-0.5,0],"ti":[-3.16666674613953,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p15_1_0p167_0p167","t":53,"s":[101.385,187.205,0],"e":[111.385,190.205,0],"to":[3.16666674613953,0,0],"ti":[-1.66666662693024,-0.5,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.85,"y":0.85},"n":"0p15_0p15_0p85_0p85","t":67,"s":[111.385,190.205,0],"e":[111.385,190.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.85,"y":0},"n":"0p833_0p833_0p85_0","t":94,"s":[111.385,190.205,0],"e":[101.385,187.205,0],"to":[-1.66666662693024,-0.5,0],"ti":[1.66666662693024,0.5,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.167,"y":0.167},"n":"0p15_0p15_0p167_0p167","t":100,"s":[101.385,187.205,0],"e":[101.385,187.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.85,"y":0},"n":"0p15_1_0p85_0","t":114,"s":[101.385,187.205,0],"e":[101.385,194.205,0],"to":[0,1.16666662693024,0],"ti":[0,-1.16666662693024,0]},{"i":{"x":0.15,"y":0.15},"o":{"x":0.85,"y":0.85},"n":"0p15_0p15_0p85_0p85","t":124,"s":[101.385,194.205,0],"e":[101.385,194.205,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.15,"y":1},"o":{"x":0.85,"y":0},"n":"0p15_1_0p85_0","t":136,"s":[101.385,194.205,0],"e":[101.385,187.205,0],"to":[0,-1.16666662693024,0],"ti":[0,1.16666662693024,0]},{"t":148}],"ix":2},"a":{"a":0,"k":[165,271,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":342,"h":349,"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Rope","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[421.395,712.446,0],"ix":2},"a":{"a":0,"k":[9.25,9.458,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.233,0],[0,0],[0,4.233],[0,0],[-4.234,0],[0,0],[0,-4.233],[0,0]],"o":[[0,0],[-4.234,0],[0,0],[0,-4.233],[0,0],[4.233,0],[0,0],[0,4.233]],"v":[[1.303,52.208],[-1.302,52.208],[-9,44.512],[-9,-44.512],[-1.302,-52.208],[1.303,-52.208],[9,-44.512],[9,44.512]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.25,52.458],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Rope","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[479.395,711.946,0],"ix":2},"a":{"a":0,"k":[9.25,8.958,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.233,0],[0,0],[0,4.233],[0,0],[-4.234,0],[0,0],[0,-4.233],[0,0]],"o":[[0,0],[-4.234,0],[0,0],[0,-4.233],[0,0],[4.233,0],[0,0],[0,4.233]],"v":[[1.303,52.208],[-1.302,52.208],[-9,44.512],[-9,-44.512],[-1.302,-52.208],[1.303,-52.208],[9,-44.512],[9,44.512]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.25,52.458],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Inshirt Shirt","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[450.395,650.725,0],"ix":2},"a":{"a":0,"k":[69.863,60.025,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[69.613,-59.775],[-0.499,59.775],[-69.613,-59.775]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[69.863,60.025],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Jacket","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[450.197,693.825,0],"ix":2},"a":{"a":0,"k":[226.25,151.425,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[226,54.165],[226,151.175],[-226,151.175],[-226,54.165],[-164,-21.175],[-176,-41.175],[-134.67,-151.175],[134.67,-151.175],[176,-41.175],[164,-21.175]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[226.25,151.425],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[233.642,107.465,0],"ix":2},"a":{"a":0,"k":[31.489,31.489,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-17.253],[17.253,0],[0,17.252],[-17.253,0]],"o":[[0,17.252],[-17.253,0],[0,-17.253],[17.253,0]],"v":[[31.239,0],[0,31.239],[-31.239,0],[0,-31.239]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[31.489,31.489],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[93.334,36.893,0],"ix":2},"a":{"a":0,"k":[37.143,37.143,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-20.375],[20.375,0],[0,20.375],[-20.376,0]],"o":[[0,20.375],[-20.376,0],[0,-20.375],[20.375,0]],"v":[[36.893,0],[0,36.893],[-36.893,0],[0,-36.893]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.143,37.143],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 5 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[41.962,64.692,0],"ix":2},"a":{"a":0,"k":[37.143,37.143,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-20.375],[20.375,0],[0,20.375],[-20.376,0]],"o":[[0,20.375],[-20.376,0],[0,-20.375],[20.375,0]],"v":[[36.893,0],[0,36.893],[-36.893,0],[0,-36.893]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.143,37.143],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 6 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[133.774,35.547,0],"ix":2},"a":{"a":0,"k":[27.036,27.036,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-14.793],[14.794,0],[0,14.793],[-14.794,0]],"o":[[0,14.793],[-14.794,0],[0,-14.793],[14.794,0]],"v":[[26.786,0],[0,26.786],[-26.786,0],[0,-26.786]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.036,27.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 7 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[222.916,62.334,0],"ix":2},"a":{"a":0,"k":[27.035,27.036,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-14.793],[14.794,0],[0,14.793],[-14.793,0]],"o":[[0,14.793],[-14.793,0],[0,-14.793],[14.794,0]],"v":[[26.786,0],[0,26.786],[-26.786,0],[0,-26.786]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.035,27.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 8 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.636,47,0],"ix":2},"a":{"a":0,"k":[32.018,32.017,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-17.544],[17.545,0],[0,17.544],[-17.545,0]],"o":[[0,17.544],[-17.545,0],[0,-17.544],[17.545,0]],"v":[[31.768,0],[-0.001,31.767],[-31.768,0],[-0.001,-31.767]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[32.018,32.017],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 9 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[232.333,148.072,0],"ix":2},"a":{"a":0,"k":[17.618,17.618,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-9.592],[9.593,0],[0,9.592],[-9.592,0]],"o":[[0,9.592],[-9.592,0],[0,-9.592],[9.593,0]],"v":[[17.368,0],[0,17.368],[-17.368,0],[0,-17.368]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.618,17.618],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 10 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[24.499,112.956,0],"ix":2},"a":{"a":0,"k":[24.522,24.522,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-13.405],[13.405,0],[0,13.405],[-13.406,0]],"o":[[0,13.405],[-13.406,0],[0,-13.405],[13.405,0]],"v":[[24.273,0],[0.001,24.272],[-24.273,0],[0.001,-24.272]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.523,24.522],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 11 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[23.094,141.428,0],"ix":2},"a":{"a":0,"k":[19.118,19.118,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-10.42],[10.421,0],[0,10.42],[-10.421,0]],"o":[[0,10.42],[-10.421,0],[0,-10.42],[10.421,0]],"v":[[18.868,0],[0,18.868],[-18.868,0],[0,-18.868]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.118,19.118],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"EarPhone","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[139.395,284.625,0],"ix":2},"a":{"a":0,"k":[119.538,256.875,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[4.049,-6.086],[0,0],[0,0]],"o":[[0,0],[0,7.31],[0,0],[0,0],[0,0]],"v":[[57.966,-236.685],[57.966,-223.667],[51.756,-203.125],[-57.966,-38.23],[-57.966,236.686]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[177.583,274.564],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-4.049,-6.086],[0,0],[0,0]],"o":[[0,0],[0,7.31],[0,0],[0,0],[0,0]],"v":[[-57.965,-236.685],[-57.965,-223.667],[-51.757,-203.125],[57.965,-38.23],[57.965,236.686]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[61.653,274.564],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-6.548],[-6.547,0],[0,6.547],[6.548,0]],"o":[[0,6.547],[6.548,0],[0,-6.548],[-6.547,0]],"v":[[-11.855,0],[-0.001,11.855],[11.855,0],[-0.001,-11.855]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.708,12.105],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.89,0],[0,0],[0,-1.891],[0,0],[-1.89,0],[0,1.89],[0,0]],"o":[[0,0],[-1.89,0],[0,0],[0,1.89],[1.89,0],[0,0],[0,-1.891]],"v":[[0,-14.777],[0,-14.777],[-3.437,-11.34],[-3.437,11.34],[0,14.777],[3.437,11.34],[3.437,-11.34]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.687,25.852],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-6.548],[6.547,0],[0,6.547],[-6.548,0]],"o":[[0,6.547],[-6.548,0],[0,-6.548],[6.547,0]],"v":[[11.856,0],[0,11.855],[-11.856,0],[0,-11.855]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[226.369,12.105],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.89,0],[0,0],[0,-1.891],[0,0],[1.891,0],[0,1.89],[0,0]],"o":[[0,0],[1.891,0],[0,0],[0,1.89],[-1.89,0],[0,0],[0,-1.891]],"v":[[0,-14.777],[0,-14.777],[3.437,-11.34],[3.437,11.34],[0,14.777],[-3.437,11.34],[-3.437,-11.34]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[235.389,25.852],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Left Ear","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[22.943,37.833,0],"ix":2},"a":{"a":0,"k":[30.75,43.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[21,14.5],[12.666,-14.666],[-14.667,-9.333],[-0.666,7]],"o":[[0,0],[-12.667,14.667],[14.666,9.334],[0.667,-7]],"v":[[9.5,-34.667],[-17.833,-28.834],[2.167,34.166],[29.833,34.166]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.635000011968,0.603999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.75,43.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Right Ear","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[258.058,37.833,0],"ix":2},"a":{"a":0,"k":[30.75,43.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-21,14.5],[-12.667,-14.666],[14.667,-9.333],[0.667,7]],"o":[[0,0],[12.667,14.667],[-14.667,9.334],[-0.666,-7]],"v":[[-9.5,-34.667],[17.833,-28.834],[-2.167,34.166],[-29.834,34.166]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.635000011968,0.603999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.75,43.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 19 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[266.333,98.881,0],"ix":2},"a":{"a":0,"k":[49.69,49.69,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-27.305],[27.305,0],[0,27.305],[-27.305,0]],"o":[[0,27.305],[-27.305,0],[0,-27.305],[27.305,0]],"v":[[49.441,0],[0.001,49.44],[-49.441,0],[0.001,-49.44]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.69,49.69],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 21 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[126.214,49.44,0],"ix":2},"a":{"a":0,"k":[49.69,49.69,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-27.305],[27.305,0],[0,27.305],[-27.306,0]],"o":[[0,27.305],[-27.306,0],[0,-27.305],[27.305,0]],"v":[[49.441,0],[0.001,49.44],[-49.441,0],[0.001,-49.44]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.69,49.69],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 24 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56.522,90.44,0],"ix":2},"a":{"a":0,"k":[49.69,49.69,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-27.305],[27.305,0],[0,27.305],[-27.305,0]],"o":[[0,27.305],[-27.305,0],[0,-27.305],[27.305,0]],"v":[[49.44,0],[0,49.44],[-49.44,0],[0,-49.44]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.69,49.69],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 25 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[291.773,208.44,0],"ix":2},"a":{"a":0,"k":[49.69,49.69,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-27.305],[27.305,0],[0,27.305],[-27.305,0]],"o":[[0,27.305],[-27.305,0],[0,-27.305],[27.305,0]],"v":[[49.441,0],[0.001,49.44],[-49.441,0],[0.001,-49.44]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.691,49.69],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 26 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[49.774,208.44,0],"ix":2},"a":{"a":0,"k":[49.69,49.69,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-27.305],[27.305,0],[0,27.305],[-27.305,0]],"o":[[0,27.305],[-27.305,0],[0,-27.305],[27.305,0]],"v":[[49.44,0],[0,49.44],[-49.44,0],[0,-49.44]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.69,49.69],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 27 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.785,54.893,0],"ix":2},"a":{"a":0,"k":[35.798,35.797,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-19.632],[19.632,0],[0,19.632],[-19.633,0]],"o":[[0,19.632],[-19.633,0],[0,-19.632],[19.632,0]],"v":[[35.548,0],[0,35.547],[-35.548,0],[0,-35.547]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[35.798,35.797],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 28 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.666,67.547,0],"ix":2},"a":{"a":0,"k":[35.798,35.797,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-19.632],[19.632,0],[0,19.632],[-19.633,0]],"o":[[0,19.632],[-19.633,0],[0,-19.632],[19.632,0]],"v":[[35.548,0],[0,35.547],[-35.548,0],[0,-35.547]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[35.798,35.797],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 29 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[266.333,280.547,0],"ix":2},"a":{"a":0,"k":[35.798,35.798,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-19.632],[19.633,0],[0,19.633],[-19.632,0]],"o":[[0,19.633],[-19.632,0],[0,-19.632],[19.633,0]],"v":[[35.548,-0.001],[-0.001,35.548],[-35.548,-0.001],[-0.001,-35.548]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[35.798,35.798],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 30 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[52.891,276.547,0],"ix":2},"a":{"a":0,"k":[35.798,35.798,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-19.632],[19.632,0],[0,19.633],[-19.633,0]],"o":[[0,19.633],[-19.633,0],[0,-19.632],[19.632,0]],"v":[[35.548,-0.001],[0,35.548],[-35.548,-0.001],[0,-35.548]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[35.797,35.798],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 31 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[72.214,49.44,0],"ix":2},"a":{"a":0,"k":[27.25,27.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-14.912],[14.912,0],[0,14.912],[-14.912,0]],"o":[[0,14.912],[-14.912,0],[0,-14.912],[14.912,0]],"v":[[27,0],[0,27],[-27,0],[0,-27]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.25,27.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 32 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[289.518,155.529,0],"ix":2},"a":{"a":0,"k":[35.731,35.731,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-19.596],[19.595,0],[0,19.596],[-19.596,0]],"o":[[0,19.596],[-19.596,0],[0,-19.596],[19.595,0]],"v":[[35.482,0],[0,35.481],[-35.482,0],[0,-35.481]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[35.731,35.731],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Layer 33 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[41.928,155.529,0],"ix":2},"a":{"a":0,"k":[35.096,35.096,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-19.245],[19.245,0],[0,19.245],[-19.244,0]],"o":[[0,19.245],[-19.244,0],[0,-19.245],[19.245,0]],"v":[[34.846,0],[-0.001,34.846],[-34.846,0],[-0.001,-34.846]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[35.096,35.096],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 34 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[175.654,32,0],"ix":2},"a":{"a":0,"k":[27.25,27.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-14.912],[14.912,0],[0,14.912],[-14.912,0]],"o":[[0,14.912],[-14.912,0],[0,-14.912],[14.912,0]],"v":[[27,0],[0,27],[-27,0],[0,-27]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.25,27.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Layer 36 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.576,53.315,0],"ix":2},"a":{"a":0,"k":[37.376,37.376,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-20.504],[20.504,0],[0,20.504],[-20.504,0]],"o":[[0,20.504],[-20.504,0],[0,-20.504],[20.504,0]],"v":[[37.126,-0.001],[0.001,37.126],[-37.126,-0.001],[0.001,-37.126]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.375,37.376],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 42 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[78.962,320.095,0],"ix":2},"a":{"a":0,"k":[27.25,27.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-14.912],[14.912,0],[0,14.911],[-14.912,0]],"o":[[0,14.911],[-14.912,0],[0,-14.912],[14.912,0]],"v":[[27,0],[0,27],[-27,0],[0,-27]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.25,27.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Layer 43 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[242.333,321.364,0],"ix":2},"a":{"a":0,"k":[27.25,27.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-14.911],[14.912,0],[0,14.912],[-14.911,0]],"o":[[0,14.912],[-14.911,0],[0,-14.911],[14.912,0]],"v":[[27,0],[0,27],[-27,0],[0,-27]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.176000004189,0.204000001795,0.270999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.25,27.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":320,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[450,450,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[900,900],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.686274509804,0.585274849686,0.495194169587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"ME","tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[450,450,0],"ix":2},"a":{"a":0,"k":[450,450,0],"ix":1},"s":{"a":0,"k":[123.111,123.111,100],"ix":6}},"ao":0,"w":900,"h":900,"ip":0,"op":162,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[450,450,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[900,900],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":162,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/polystar_anim.json b/external/rlottie/example/resource/polystar_anim.json new file mode 100644 index 000000000..1c8dfbdf7 --- /dev/null +++ b/external/rlottie/example/resource/polystar_anim.json @@ -0,0 +1 @@ +{"v":"5.1.17","fr":29.9700012207031,"ip":0,"op":150.000006109625,"w":300,"h":300,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[152,152,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"sr","sy":1,"d":2,"pt":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[5],"e":[11]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[11],"e":[15]},{"t":146.000005946702}],"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[64]},{"t":90.0000036657751}],"ix":5},"ir":{"a":0,"k":106,"ix":6},"is":{"a":0,"k":231,"ix":8},"or":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[102],"e":[142]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[142],"e":[34]},{"t":146.000005946702}],"ix":7},"os":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[79],"e":[265]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[265],"e":[88]},{"t":146.000005946702}],"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 2","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/polystar_line_clockwise_trim.json b/external/rlottie/example/resource/polystar_line_clockwise_trim.json new file mode 100644 index 000000000..14178b729 --- /dev/null +++ b/external/rlottie/example/resource/polystar_line_clockwise_trim.json @@ -0,0 +1 @@ +{"v":"5.1.17","fr":29.9700012207031,"ip":0,"op":150.000006109625,"w":300,"h":300,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[152,152,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"sr","sy":1,"d":2,"pt":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[5],"e":[11]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[11],"e":[15]},{"t":146.000005946702}],"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[64]},{"t":90.0000036657751}],"ix":5},"ir":{"a":0,"k":106,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[102],"e":[142]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[142],"e":[34]},{"t":146.000005946702}],"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 2","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[3],"e":[100]},{"t":149.000006068894}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/pumped_up.json b/external/rlottie/example/resource/pumped_up.json new file mode 100644 index 000000000..81a326535 --- /dev/null +++ b/external/rlottie/example/resource/pumped_up.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":29.9700012207031,"ip":0,"op":37.0000015070409,"w":1000,"h":1000,"nm":"Weight Lifter","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"BODY CONTROL","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.206,"y":0},"n":"0p833_0p833_0p206_0","t":0,"s":[-178.625,485.375,0],"e":[-94.353,536.037,0],"to":[0,0.30916449427605,0],"ti":[-36.4811401367188,18.4873828887939,0]},{"i":{"x":0.618,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p618_1_0p167_0p167","t":4,"s":[-94.353,536.037,0],"e":[-53.625,422.375,0],"to":[22.5184211730957,-11.4115581512451,0],"ti":[0,0,0]},{"i":{"x":0.79,"y":1},"o":{"x":0.167,"y":0},"n":"0p79_1_0p167_0","t":8,"s":[-53.625,422.375,0],"e":[-47.625,464.375,0],"to":[0,0,0],"ti":[5.375,-12.625,0]},{"i":{"x":0.79,"y":1},"o":{"x":0.96,"y":0},"n":"0p79_1_0p96_0","t":14,"s":[-47.625,464.375,0],"e":[-109.625,533.375,0],"to":[-5.375,12.625,0],"ti":[77.375,3.375,0]},{"i":{"x":0.36,"y":1},"o":{"x":0.96,"y":0},"n":"0p36_1_0p96_0","t":24,"s":[-109.625,533.375,0],"e":[-169.625,422.375,0],"to":[-77.375,-3.375,0],"ti":[0,0.5,0]},{"i":{"x":0.36,"y":1},"o":{"x":0.167,"y":0},"n":"0p36_1_0p167_0","t":29,"s":[-169.625,422.375,0],"e":[-178.625,485.375,0],"to":[0,-0.5,0],"ti":[0,-0.5,0]},{"t":34.0000013848484}],"ix":2},"a":{"a":0,"k":[-599.625,40.375,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[96.75,96.75],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":19,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.98431372549,0.498039215686,0.235294117647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.98431372549,0.498039215686,0.235294117647,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":true},{"ty":"tr","p":{"a":0,"k":[-599.625,40.375],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"Face Rig","parent":3,"hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.224,"y":0},"n":"0p833_0p833_0p224_0","t":0,"s":[-78,-57,0],"e":[-22.954,97.206,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.598,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p598_1_0p167_0p167","t":5,"s":[-22.954,97.206,0],"e":[36,-69,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0},"n":"0p5_1_0p167_0","t":11,"s":[36,-69,0],"e":[36,-54,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.592,"y":0.413},"o":{"x":0.258,"y":0},"n":"0p592_0p413_0p258_0","t":18,"s":[36,-54,0],"e":[36,-50.936,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.268,"y":0.016},"n":"0p833_0p833_0p268_0p016","t":20.668,"s":[36,-50.936,0],"e":[-5.418,87.869,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.626,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p626_1_0p167_0p167","t":26,"s":[-5.418,87.869,0],"e":[-78,-99,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.626,"y":1},"o":{"x":0.167,"y":0},"n":"0p626_1_0p167_0","t":30,"s":[-78,-99,0],"e":[-78,-57,0],"to":[0,0,0],"ti":[0,0,0]},{"t":35.0000014255792}],"ix":2},"a":{"a":0,"k":[37.5,37.5,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"joystickLimit","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":86,"ix":1}}]},{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":2,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0.235294118524,0.784313738346,0.721568644047,1],"ix":3}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]}],"sw":75,"sh":75,"sc":"#ffffff","ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Face Rig Origin","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-108,272,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[251.383,200],"ix":2,"x":"var $bm_rt;\nvar temp;\ntemp = mul(thisComp.layer('Face Rig')('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001'), 2);\n$bm_rt = [\n temp,\n temp\n];"},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117629528,0.310726553202,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"d":[{"n":"d","nm":"dash","v":{"a":0,"k":14,"ix":1}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Left foot","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2,"s":[0],"e":[-36]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[-36],"e":[-9]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":8,"s":[-9],"e":[-9]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":21,"s":[-9],"e":[0]},{"t":25.0000010182709}],"ix":10},"p":{"a":0,"k":[4.453,6.875,0],"ix":2},"a":{"a":0,"k":[148.453,332.875,0],"ix":1},"s":{"a":0,"k":[100,132.877,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[86.906,18.25],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":142,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.219607843137,0.227873439415,0.678431372549,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.568626972273,0.866666965859,0.776471007104,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,332.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Right foot","parent":17,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[21],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":3,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":28,"s":[0],"e":[45]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":31,"s":[45],"e":[12]},{"t":35.0000014255792}],"ix":10},"p":{"a":0,"k":[-12.547,6.875,0],"ix":2},"a":{"a":0,"k":[88.453,332.875,0],"ix":1},"s":{"a":0,"k":[100,132.877,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[86.906,18.25],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":136,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.219607843137,0.227873439415,0.678431372549,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.568626972273,0.866666965859,0.776471007104,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[121.453,332.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Head","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-47.758,-107.962,0],"ix":2},"a":{"a":0,"k":[42.637,-115.363,0],"ix":1},"s":{"a":0,"k":[125,125,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[7.869,15.146],"ix":2,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 7.869140625,\n 15.146484375\n ];\n var key2 = [\n 7.869140625,\n 15.146484375\n ];\n var key3 = [\n 7.869140625,\n 15.146484375\n ];\n var key4 = [\n 7.869140625,\n 15.146484375\n ];\n var key5 = [\n 7.869140625,\n 15.146484375\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"p":{"a":0,"k":[0,34],"ix":3,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 0,\n 34\n ];\n var key2 = [\n 0,\n 34\n ];\n var key3 = [\n 0,\n 34\n ];\n var key4 = [\n 0,\n 8\n ];\n var key5 = [\n 0,\n 8\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.733333333333,0.380392156863,0.188235294118,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.538,-130.608],"ix":2,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 43.5380859375,\n -130.6083984375\n ];\n var key2 = [\n 63.5380859375,\n -130.6083984375\n ];\n var key3 = [\n 21.5380859375,\n -130.6083984375\n ];\n var key4 = [\n 43.5380859375,\n -146.2333984375\n ];\n var key5 = [\n 43.5380859375,\n -88.7333984375\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"a":{"a":0,"k":[0.217,8.715],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"nose","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.25,-0.25],[0,0],[0,0]],"o":[[-14.25,0.25],[0,0],[0,0]],"v":[[73.637,-102.75],[55.137,-93.75],[93.637,-93.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.98431372549,0.498039215686,0.235294117647,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14,-92.5],"ix":2,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 14,\n -92.5\n ];\n var key2 = [\n 34,\n -92.5\n ];\n var key3 = [\n -3,\n -92.5\n ];\n var key4 = [\n 12.15234375,\n -126.50390625\n ];\n var key5 = [\n 12.15234375,\n -82.75390625\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"a":{"a":0,"k":[73.152,-93.629],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100\n ];\n var key2 = [\n 100,\n 100\n ];\n var key3 = [\n 53,\n 100\n ];\n var key4 = [\n 100,\n 134\n ];\n var key5 = [\n 100,\n 59\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"lid right","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.25,-0.25],[0,0],[0,0]],"o":[[-14.25,0.25],[0,0],[0,0]],"v":[[73.637,-102.75],[55.137,-93.75],[93.637,-93.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.98431372549,0.498039215686,0.235294117647,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[75,-92.5],"ix":2,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 75,\n -92.5\n ];\n var key2 = [\n 84,\n -92.5\n ];\n var key3 = [\n 55,\n -92.5\n ];\n var key4 = [\n 73.875,\n -125.546875\n ];\n var key5 = [\n 73.875,\n -81.796875\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"a":{"a":0,"k":[73.875,-93.047],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100\n ];\n var key2 = [\n 65,\n 100\n ];\n var key3 = [\n 100,\n 100\n ];\n var key4 = [\n 100,\n 132\n ];\n var key5 = [\n 100,\n 73\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"lid left","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-41.598,-0.006]],"o":[[0,0],[0,0],[41.598,0.006]],"v":[[87.137,-91.5],[-1.863,-91],[42.637,-62]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.146,-80.344],"ix":2,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 43.146484375,\n -80.34375\n ];\n var key2 = [\n 64.146484375,\n -80.34375\n ];\n var key3 = [\n 21.646484375,\n -80.34375\n ];\n var key4 = [\n 43.146484375,\n -119.84375\n ];\n var key5 = [\n 43.146484375,\n -69.84375\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"a":{"a":0,"k":[43.591,-78.546],"ix":1},"s":{"a":0,"k":[67.022,67.022],"ix":3,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 67.0221619132623,\n 67.0221619132623\n ];\n var key2 = [\n 51.0221633911133,\n 67.0221633911133\n ];\n var key3 = [\n 45.0221633911133,\n 67.0221633911133\n ];\n var key4 = [\n 67.0221619132623,\n 42.0221619132623\n ];\n var key5 = [\n 67.0221619132623,\n 42.0221619132623\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"mouth","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16.676,16.676],"ix":2},"p":{"a":0,"k":[58,-10],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607843137,0.678431372549,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.975,-104.662],"ix":2,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 12.974609375,\n -104.662109375\n ];\n var key2 = [\n 57.974609375,\n -104.662109375\n ];\n var key3 = [\n 3.974609375,\n -104.662109375\n ];\n var key4 = [\n 12.974609375,\n -139.662109375\n ];\n var key5 = [\n 12.974609375,\n -85.912109375\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100\n ];\n var key2 = [\n 54,\n 100\n ];\n var key3 = [\n 76,\n 100\n ];\n var key4 = [\n 100,\n 80\n ];\n var key5 = [\n 100,\n 80\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"pupil right","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16.676,16.676],"ix":2},"p":{"a":0,"k":[1,-10],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219607843137,0.678431372549,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.975,-104.662],"ix":2,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 12.974609375,\n -104.662109375\n ];\n var key2 = [\n 39.974609375,\n -104.662109375\n ];\n var key3 = [\n -5.025390625,\n -104.662109375\n ];\n var key4 = [\n 12.974609375,\n -139.662109375\n ];\n var key5 = [\n 12.974609375,\n -85.912109375\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100\n ];\n var key2 = [\n 67,\n 100\n ];\n var key3 = [\n 57,\n 100\n ];\n var key4 = [\n 100,\n 80\n ];\n var key5 = [\n 100,\n 80\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"pupil left","np":3,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[37.258,37.258],"ix":2},"p":{"a":0,"k":[53,-27],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.266,-88.371],"ix":2,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 19.265625,\n -88.37109375\n ];\n var key2 = [\n 52.265625,\n -88.37109375\n ];\n var key3 = [\n 12.265625,\n -88.37109375\n ];\n var key4 = [\n 19.265625,\n -120.87109375\n ];\n var key5 = [\n 19.265625,\n -77.12109375\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100\n ];\n var key2 = [\n 63,\n 100\n ];\n var key3 = [\n 75,\n 100\n ];\n var key4 = [\n 100,\n 80\n ];\n var key5 = [\n 100,\n 80\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"eye ball right","np":3,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[37.258,37.258],"ix":2},"p":{"a":0,"k":[-5,-27],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.266,-88.371],"ix":2,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 19.265625,\n -88.37109375\n ];\n var key2 = [\n 39.265625,\n -88.37109375\n ];\n var key3 = [\n 2.265625,\n -88.37109375\n ];\n var key4 = [\n 19.265625,\n -120.87109375\n ];\n var key5 = [\n 19.265625,\n -77.12109375\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = joystick(value);\nfunction joystick(inputResult) {\n var slideR, slideL, slideU, slideD;\n var easeOverride_right = null;\n var easeOverride_left = null;\n var easeOverride_up = null;\n var easeOverride_down = null;\n var contrl = thisComp.layer('Face Rig');\n var myLimit = contrl('ADBE Effect Parade')('joystickLimit')('ADBE Slider Control-0001');\n var contrlCurVal = contrl('ADBE Transform Group')('ADBE Position');\n var resultVal;\n var key1 = [\n 100,\n 100\n ];\n var key2 = [\n 82,\n 100\n ];\n var key3 = [\n 61,\n 100\n ];\n var key4 = [\n 100,\n 80\n ];\n var key5 = [\n 100,\n 80\n ];\n key1 = unArray(key1);\n key2 = unArray(key2);\n key3 = unArray(key3);\n key4 = unArray(key4);\n key5 = unArray(key5);\n try {\n if (!thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB').active) {\n throw 'inactive';\n }\n slideR = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0001');\n slideL = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0002');\n slideU = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0003');\n slideD = thisLayer('ADBE Effect Parade')('Pseudo/1k48264d77gIB')('Pseudo/1k48264d77gIB-0004');\n } catch (err) {\n slideR = 0;\n slideL = 0;\n slideU = 0;\n slideD = 0;\n }\n if (easeOverride_right !== null && !isNaN(easeOverride_right)) {\n slideR = moClamp(easeOverride_right, -100, 100);\n }\n if (easeOverride_left !== null && !isNaN(easeOverride_left)) {\n slideL = moClamp(easeOverride_left, -100, 100);\n }\n if (easeOverride_up !== null && !isNaN(easeOverride_up)) {\n slideU = moClamp(easeOverride_up, -100, 100);\n }\n if (easeOverride_down !== null && !isNaN(easeOverride_down)) {\n slideD = moClamp(easeOverride_down, -100, 100);\n }\n var easeResultX, easeResultY;\n if (contrlCurVal[0] >= 0) {\n resultVal = linear(contrlCurVal[0], 0, myLimit, key1, key2);\n if (slideR !== 0) {\n easeResultX = easeSwitch(contrlCurVal[0], 0, myLimit, key1, key2, slideR);\n resultVal = linear(Math.abs(slideR), 0, 100, resultVal, easeResultX);\n }\n } else {\n resultVal = linear($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3);\n if (slideL !== 0) {\n easeResultX = easeSwitch($bm_neg(contrlCurVal[0]), 0, myLimit, key1, key3, slideL);\n resultVal = linear(Math.abs(slideL), 0, 100, resultVal, easeResultX);\n }\n }\n var resultAdd = 0;\n if (contrlCurVal[1] <= 0) {\n resultAdd = sub(linear($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4), key1);\n if (slideU !== 0) {\n easeResultY = sub(easeSwitch($bm_neg(contrlCurVal[1]), 0, myLimit, key1, key4, slideU), key1);\n resultAdd = linear(Math.abs(slideU), 0, 100, resultAdd, easeResultY);\n }\n } else {\n resultAdd = sub(linear(contrlCurVal[1], 0, myLimit, key1, key5), key1);\n if (slideD !== 0) {\n easeResultY = sub(easeSwitch(contrlCurVal[1], 0, myLimit, key1, key5, slideD), key1);\n resultAdd = linear(Math.abs(slideD), 0, 100, resultAdd, easeResultY);\n }\n }\n return sum(sum(resultVal, resultAdd), sub(inputResult, key1));\n}\nfunction cosEase(val, min1, max1, input1, input2) {\n var myCos = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n myCos.push(getMeCos(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n myCos = getMeCos(val, min1, max1, input1, input2);\n }\n return myCos;\n function getMeCos(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var myCos2 = sum(sum(mul($bm_neg(c), Math.cos(mul(mapVal, div(Math.PI, 2)))), c), input1);\n return myCos2;\n }\n}\nfunction sinEase(val, min1, max1, input1, input2) {\n var mySin = [];\n if ($bm_isInstanceOfArray(input1)) {\n for (var x = 0; x < input1.length; x++) {\n mySin.push(getMeSin(val, min1, max1, input1[x], input2[x]));\n }\n } else {\n mySin = getMeSin(val, min1, max1, input1, input2);\n }\n return mySin;\n function getMeSin(val, min1, max1, input1, input2) {\n var mapVal = moClamp(div(val, sub(max1, min1)), 0, 1);\n var c = sub(input2, input1);\n var mySin2 = sum(mul(c, Math.sin(mul(mapVal, div(Math.PI, 2)))), input1);\n return mySin2;\n }\n}\nfunction easeSwitch(val, min1, max1, input1, input2, morph) {\n if (morph < 0) {\n return cosEase(val, min1, max1, input1, input2);\n } else {\n return sinEase(val, min1, max1, input1, input2);\n }\n}\nfunction unArray(inKey) {\n if (inKey instanceof Array && inKey.length === 1) {\n return inKey[0];\n } else {\n return inKey;\n }\n}\nfunction moClamp(a, b, c) {\n if (!(a instanceof Array)) {\n return Math.max(b, Math.min(c, a));\n } else {\n var aryHold = [];\n for (var x = 0; x < a.length; x++) {\n aryHold.push(Math.max(b, Math.min(c, a[x])));\n }\n return aryHold;\n }\n}"},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"eye ball left","np":3,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[117.273,117.273],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.98431372549,0.498039215686,0.235294117647,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.637,-115.363],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"head","np":3,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Body","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18,84,0],"ix":2},"a":{"a":0,"k":[-47.758,106.242,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-46.758,233.242],[-47.258,1.242]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.219607843137,0.678431372549,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-47.721,117.488],"ix":2},"a":{"a":0,"k":[-47.721,117.488],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[17.505,-0.028]],"o":[[0,0],[0,0],[0,0],[-17.505,0.028]],"v":[[-72.258,-19.758],[-47.258,1.492],[-19.758,-18.758],[-47.253,-22.286]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-69.758,76.242],[-116.758,76.242],[-116.758,101.242],[-92.758,116.242],[-69.758,101.242]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219604716581,0.678232230392,0.62581763174,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-95.807,47.773],"ix":2},"a":{"a":0,"k":[-91.96,91.668],"ix":1},"s":{"a":0,"k":[83.641,83.641],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[256.484,256.484],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.074509998396,0.141176006841,0.168626987233,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.78431372549,0.721568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-47.758,106.242],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Left arm 2::Wrist","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[595.189,372.865,0],"e":[681.676,159.27,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":9,"s":[681.676,159.27,0],"e":[681.676,210.27,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[681.676,210.27,0],"e":[681.676,210.27,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21.429,"s":[681.676,210.27,0],"e":[643.622,455.892,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":26,"s":[643.622,455.892,0],"e":[595.189,320.973,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[595.189,320.973,0],"e":[595.189,372.865,0],"to":[0,0,0],"ti":[0,0,0]},{"t":33.0000013441176}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","np":18,"mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":280,"ix":1}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":40,"ix":2}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":-100,"ix":4}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":1,"ix":6}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[0,0],"ix":8,"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n 0,\n 0,\n 0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"ix":9,"x":"var $bm_rt;\ntry {\n var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n $bm_rt = thisComp.layer(b).toComp([\n 0,\n 0,\n 0\n ]);\n} catch (err) {\n $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"ix":11,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"ix":12,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"ix":13,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"ix":14,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n isEnabled = lyrAF(4)('Enable')(1);\n var falloffAngle = lyrAF(4)('Falloff')(1);\n hasAF = true;\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n threshRot %= 360;\n var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var offsetAngle = sub(threshRot, ctrlAngle);\n offsetAngle %= 360;\n var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n var absAngle = Math.abs(offsetAngle);\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n output = linear(absAngle, 0, falloffAngle, 0, 1);\n output *= sign;\n} else {\n output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"ix":15,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm 2::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm 2::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n} else {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[15,15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\nif (thisLayer.active) {\n try {\n var eff = thisLayer(4)('RubberHose 2');\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var straight = eff('Straight');\n var hoseLength = div(eff('Hose Length'), 2);\n if (straight > hoseLength) {\n $bm_rt = [\n 0.51,\n 0.83,\n 0.98,\n 1\n ];\n } else {\n $bm_rt = value;\n }\n } catch (err) {\n $bm_rt = value;\n }\n} else {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Left arm 2::Shoulder","parent":7,"hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":0,"k":[9.742,3.742,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm 2::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm 2::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var autoRotate = eff('Auto Rotate Start');\n if (autoRotate == 1) {\n var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (straight <= hoseLength) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n } else {\n $bm_rt = 0;\n }\n ;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[15,15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Left arm 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":0,"k":[820,500,0],"ix":2,"x":"var $bm_rt;\nvar p = [\n 0,\n 0\n ];\ntry {\n if (thisLayer.hasParent) {\n p = parent.fromComp([\n 0,\n 0,\n 0\n ]);\n }\n $bm_rt = p;\n} catch (err) {\n $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nvar s = [\n 100,\n 100\n ];\nif (hasParent) {\n var sFactor = parentTotal();\n s = [\n s[0] * sFactor[0],\n s[1] * sFactor[1]\n ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n var sFactor = [\n 1,\n 1\n ];\n var scaleNorm = [\n 0,\n 0\n ];\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n scaleNorm = eval([layerChain][0]).scale;\n if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n scaleNorm = [\n 100 / scaleNorm[0],\n 100 / scaleNorm[1]\n ];\n }\n sFactor = [\n sFactor[0] * scaleNorm[0],\n sFactor[1] * scaleNorm[1]\n ];\n }\n return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":500,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"is":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"or":{"a":0,"k":113,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"e":{"a":0,"k":0,"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":67,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.98431372549,0.498039215686,0.235294117647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":28,"ix":5,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"hand","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":500,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"is":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"or":{"a":0,"k":113,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"e":{"a":0,"k":0,"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294117647,0.78431372549,0.721568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":28,"ix":5,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm 2::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm 2::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":200,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"is":{"a":0,"k":100,"ix":8,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"or":{"a":0,"k":200,"ix":7,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0.01,"ix":1},"e":{"a":0,"k":24.99,"ix":2},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\n$bm_rt = -90;"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n -s,\n 0\n];"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar flop;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var bendDir = eff('Bend Direction');\n var autoFlop = eff('AutoFlop');\n flop = bendDir > 0 ? 1 : -1;\n autoFlop > 0 ? 0 : flop *= -1;\n var s = flop == 1 ? [\n -100,\n 100\n ] : [\n 100,\n 100\n ];\n if (eff('Parent Scale') < 0) {\n s = [\n -s[0],\n s[1]\n ];\n }\n $bm_rt = s;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var baseRot = ctrl('Base Rotation');\n var flop = content('Admin').content('ArcMath').transform.scale[0];\n var rotOffset = flop < 0 ? -45 : 225;\n $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Left arm::Wrist","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0},"n":"0p5_1_0p167_0","t":0,"s":[289.865,231.541,0],"e":[383.73,370.27,0],"to":[0,0,0],"ti":[-34.270263671875,-2.729736328125,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.138},"n":"0p5_1_0p167_0p138","t":7,"s":[383.73,370.27,0],"e":[410.73,340.27,0],"to":[34.270263671875,2.729736328125,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0},"n":"0p5_1_0p167_0","t":12,"s":[410.73,340.27,0],"e":[419.73,352.27,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":0.5},"o":{"x":0.167,"y":0.167},"n":"0p5_0p5_0p167_0p167","t":17,"s":[419.73,352.27,0],"e":[419.73,352.27,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0},"n":"0p5_1_0p167_0","t":20.273,"s":[419.73,352.27,0],"e":[357.459,456.054,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0},"n":"0p5_1_0p167_0","t":26,"s":[357.459,456.054,0],"e":[324.459,145.054,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0},"n":"0p5_1_0p167_0","t":31,"s":[324.459,145.054,0],"e":[289.865,231.541,0],"to":[0,0,0],"ti":[0,0,0]},{"t":35.0000014255792}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","np":18,"mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":280,"ix":1}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":40,"ix":2}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":1,"ix":6}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[0,0],"ix":8,"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n 0,\n 0,\n 0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"ix":9,"x":"var $bm_rt;\ntry {\n var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n $bm_rt = thisComp.layer(b).toComp([\n 0,\n 0,\n 0\n ]);\n} catch (err) {\n $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"ix":11,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"ix":12,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"ix":13,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"ix":14,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n isEnabled = lyrAF(4)('Enable')(1);\n var falloffAngle = lyrAF(4)('Falloff')(1);\n hasAF = true;\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n threshRot %= 360;\n var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var offsetAngle = sub(threshRot, ctrlAngle);\n offsetAngle %= 360;\n var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n var absAngle = Math.abs(offsetAngle);\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n output = linear(absAngle, 0, falloffAngle, 0, 1);\n output *= sign;\n} else {\n output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"ix":15,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n} else {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[15,15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\nif (thisLayer.active) {\n try {\n var eff = thisLayer(4)('RubberHose 2');\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var straight = eff('Straight');\n var hoseLength = div(eff('Hose Length'), 2);\n if (straight > hoseLength) {\n $bm_rt = [\n 0.51,\n 0.83,\n 0.98,\n 1\n ];\n } else {\n $bm_rt = value;\n }\n } catch (err) {\n $bm_rt = value;\n }\n} else {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Left arm::Shoulder","parent":7,"hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":0,"k":[-107.758,1.242,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var autoRotate = eff('Auto Rotate Start');\n if (autoRotate == 1) {\n var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (straight <= hoseLength) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n } else {\n $bm_rt = 0;\n }\n ;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[15,15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Left arm","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":0,"k":[425,500,0],"ix":2,"x":"var $bm_rt;\nvar p = [\n 0,\n 0\n ];\ntry {\n if (thisLayer.hasParent) {\n p = parent.fromComp([\n 0,\n 0,\n 0\n ]);\n }\n $bm_rt = p;\n} catch (err) {\n $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nvar s = [\n 100,\n 100\n ];\nif (hasParent) {\n var sFactor = parentTotal();\n s = [\n s[0] * sFactor[0],\n s[1] * sFactor[1]\n ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n var sFactor = [\n 1,\n 1\n ];\n var scaleNorm = [\n 0,\n 0\n ];\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n scaleNorm = eval([layerChain][0]).scale;\n if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n scaleNorm = [\n 100 / scaleNorm[0],\n 100 / scaleNorm[1]\n ];\n }\n sFactor = [\n sFactor[0] * scaleNorm[0],\n sFactor[1] * scaleNorm[1]\n ];\n }\n return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":500,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"is":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"or":{"a":0,"k":113,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"e":{"a":0,"k":0,"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":67,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.98431372549,0.498039215686,0.235294117647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":28,"ix":5,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"hand","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":500,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"is":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"or":{"a":0,"k":113,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"e":{"a":0,"k":0,"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294117647,0.78431372549,0.721568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":28,"ix":5,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm::Wrist","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left arm::Shoulder","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":200,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"is":{"a":0,"k":100,"ix":8,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"or":{"a":0,"k":200,"ix":7,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0.01,"ix":1},"e":{"a":0,"k":24.99,"ix":2},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\n$bm_rt = -90;"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n -s,\n 0\n];"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar flop;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var bendDir = eff('Bend Direction');\n var autoFlop = eff('AutoFlop');\n flop = bendDir > 0 ? 1 : -1;\n autoFlop > 0 ? 0 : flop *= -1;\n var s = flop == 1 ? [\n -100,\n 100\n ] : [\n 100,\n 100\n ];\n if (eff('Parent Scale') < 0) {\n s = [\n -s[0],\n s[1]\n ];\n }\n $bm_rt = s;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var baseRot = ctrl('Base Rotation');\n var flop = content('Admin').content('ArcMath').transform.scale[0];\n var rotOffset = flop < 0 ? -45 : 225;\n $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Left Leg::Ankle","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p5_1_0p167_0p167","t":2,"s":[419,830,0],"e":[425,643,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0},"n":"0p5_1_0p167_0","t":8,"s":[425,643,0],"e":[413,685,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":0.5},"o":{"x":0.167,"y":0.167},"n":"0p5_0p5_0p167_0p167","t":13,"s":[413,685,0],"e":[413,685,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":21,"s":[413,685,0],"e":[419,830,0],"to":[0,0,0],"ti":[0,0,0]},{"t":25.0000010182709}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","np":18,"mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":280,"ix":1}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":40,"ix":2}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":-100,"ix":4}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[0,0],"ix":8,"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n 0,\n 0,\n 0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"ix":9,"x":"var $bm_rt;\ntry {\n var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n $bm_rt = thisComp.layer(b).toComp([\n 0,\n 0,\n 0\n ]);\n} catch (err) {\n $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"ix":11,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"ix":12,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"ix":13,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"ix":14,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n isEnabled = lyrAF(4)('Enable')(1);\n var falloffAngle = lyrAF(4)('Falloff')(1);\n hasAF = true;\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n threshRot %= 360;\n var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var offsetAngle = sub(threshRot, ctrlAngle);\n offsetAngle %= 360;\n var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n var absAngle = Math.abs(offsetAngle);\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n output = linear(absAngle, 0, falloffAngle, 0, 1);\n output *= sign;\n} else {\n output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"ix":15,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left Leg::Ankle","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left Leg::Hip","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n} else {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[15,15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\nif (thisLayer.active) {\n try {\n var eff = thisLayer(4)('RubberHose 2');\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var straight = eff('Straight');\n var hoseLength = div(eff('Hose Length'), 2);\n if (straight > hoseLength) {\n $bm_rt = [\n 0.51,\n 0.83,\n 0.98,\n 1\n ];\n } else {\n $bm_rt = value;\n }\n } catch (err) {\n $bm_rt = value;\n }\n} else {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Left Leg::Hip","parent":7,"hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":0,"k":[-87.758,188.742,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left Leg::Ankle","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left Leg::Hip","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var autoRotate = eff('Auto Rotate Start');\n if (autoRotate == 1) {\n var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (straight <= hoseLength) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n } else {\n $bm_rt = 0;\n }\n ;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[15,15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Left Leg","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":0,"k":[425,500,0],"ix":2,"x":"var $bm_rt;\nvar p = [\n 0,\n 0\n ];\ntry {\n if (thisLayer.hasParent) {\n p = parent.fromComp([\n 0,\n 0,\n 0\n ]);\n }\n $bm_rt = p;\n} catch (err) {\n $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nvar s = [\n 100,\n 100\n ];\nif (hasParent) {\n var sFactor = parentTotal();\n s = [\n s[0] * sFactor[0],\n s[1] * sFactor[1]\n ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n var sFactor = [\n 1,\n 1\n ];\n var scaleNorm = [\n 0,\n 0\n ];\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n scaleNorm = eval([layerChain][0]).scale;\n if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n scaleNorm = [\n 100 / scaleNorm[0],\n 100 / scaleNorm[1]\n ];\n }\n sFactor = [\n sFactor[0] * scaleNorm[0],\n sFactor[1] * scaleNorm[1]\n ];\n }\n return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":500,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"is":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"or":{"a":0,"k":113,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"e":{"a":0,"k":0,"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.219607843137,0.227873439415,0.678431372549,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":36,"ix":5,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left Leg::Ankle","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left Leg::Hip","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":200,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"is":{"a":0,"k":100,"ix":8,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"or":{"a":0,"k":200,"ix":7,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0.01,"ix":1},"e":{"a":0,"k":24.99,"ix":2},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\n$bm_rt = -90;"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n -s,\n 0\n];"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar flop;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var bendDir = eff('Bend Direction');\n var autoFlop = eff('AutoFlop');\n flop = bendDir > 0 ? 1 : -1;\n autoFlop > 0 ? 0 : flop *= -1;\n var s = flop == 1 ? [\n -100,\n 100\n ] : [\n 100,\n 100\n ];\n if (eff('Parent Scale') < 0) {\n s = [\n -s[0],\n s[1]\n ];\n }\n $bm_rt = s;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var baseRot = ctrl('Base Rotation');\n var flop = content('Admin').content('ArcMath').transform.scale[0];\n var rotOffset = flop < 0 ? -45 : 225;\n $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Right Leg::Ankle","hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":0,"s":[584.541,716.568,0],"e":[588,830,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[588,830,0],"e":[588,830,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.36,"y":1},"o":{"x":0.167,"y":0.321},"n":"0p36_1_0p167_0p321","t":26.334,"s":[588,830,0],"e":[584.541,683.568,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.36,"y":1},"o":{"x":0.167,"y":0.152},"n":"0p36_1_0p167_0p152","t":33,"s":[584.541,683.568,0],"e":[584.541,716.568,0],"to":[0,0,0],"ti":[0,0,0]},{"t":36.333751479904}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","np":18,"mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":280,"ix":1}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":40,"ix":2}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[0,0],"ix":8,"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n 0,\n 0,\n 0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"ix":9,"x":"var $bm_rt;\ntry {\n var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n $bm_rt = thisComp.layer(b).toComp([\n 0,\n 0,\n 0\n ]);\n} catch (err) {\n $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"ix":11,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"ix":12,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"ix":13,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"ix":14,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n isEnabled = lyrAF(4)('Enable')(1);\n var falloffAngle = lyrAF(4)('Falloff')(1);\n hasAF = true;\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n threshRot %= 360;\n var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var offsetAngle = sub(threshRot, ctrlAngle);\n offsetAngle %= 360;\n var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n var absAngle = Math.abs(offsetAngle);\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n if (absAngle > 90) {\n absAngle = Math.abs(sub(absAngle, 180));\n }\n output = linear(absAngle, 0, falloffAngle, 0, 1);\n output *= sign;\n} else {\n output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"ix":15,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Right Leg::Ankle","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Right Leg::Hip","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (hoseLength > straight) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n} else {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[15,15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\nif (thisLayer.active) {\n try {\n var eff = thisLayer(4)('RubberHose 2');\n var a = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var b = eff('B');\n var straight = eff('Straight');\n var hoseLength = div(eff('Hose Length'), 2);\n if (straight > hoseLength) {\n $bm_rt = [\n 0.51,\n 0.83,\n 0.98,\n 1\n ];\n } else {\n $bm_rt = value;\n }\n } catch (err) {\n $bm_rt = value;\n }\n} else {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Right Leg::Hip","parent":7,"hd":true,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\ntry {\n var parentRot = hasParent ? parentTotal() : 0;\n var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n $bm_rt = sum(rotCalc, value);\n} catch (err) {\n $bm_rt = value;\n}\n;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":0,"k":[-12.758,188.742,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Right Leg::Ankle","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Right Leg::Hip","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6,"x":"var $bm_rt;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var autoRotate = eff('Auto Rotate Start');\n if (autoRotate == 1) {\n var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n 0,\n 0,\n 0\n ]);\n var b = thisLayer.toComp([\n 0,\n 0,\n 0\n ]);\n var s = length(a, b);\n var sFac = eff('Parent Scale');\n var autoFlop = 1;\n var realism = eff('Realism');\n var bendDir = div(eff('Bend Direction'), 100);\n var hoseLength = div(eff('Hose Length'), 2);\n var bendRad = eff('Bend Radius');\n var autoFlop = eff('AutoFlop');\n var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n var outerRad = mul(Math.sin(0.78539816339), s);\n var straight = div(mul(1.4142135623731, outerRad), 2);\n straight /= Math.max(Math.abs(sFac), 0.001);\n var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n var innerRad;\n if (straight <= hoseLength) {\n innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n innerRad = linear(Math.abs(bendDir), straight, innerRad);\n } else {\n innerRad = straight;\n }\n innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n var flopDir = 1;\n if (bendDir < 0) {\n flopDir = -1;\n }\n flopDir *= autoFlop;\n var opp = mul(sub(innerRad, straight), flopDir);\n var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n var bendAngle = radiansToDegrees(theta);\n if (sFac < 0) {\n baseRot *= -1;\n }\n bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n $bm_rt = rotCalc;\n } else {\n $bm_rt = 0;\n }\n ;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false},"ix":2},"nm":"01","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false},"ix":2},"nm":"02","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[15,15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.560000002384,0,1],"ix":3,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Right Leg","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n var parentVal = 0;\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n parentVal = sum(parentVal, eval([layerChain][0]).rotation);\n }\n return parentVal;\n}"},"p":{"a":0,"k":[500,500,0],"ix":2,"x":"var $bm_rt;\nvar p = [\n 0,\n 0\n ];\ntry {\n if (thisLayer.hasParent) {\n p = parent.fromComp([\n 0,\n 0,\n 0\n ]);\n }\n $bm_rt = p;\n} catch (err) {\n $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6,"x":"var $bm_rt;\nvar s = [\n 100,\n 100\n ];\nif (hasParent) {\n var sFactor = parentTotal();\n s = [\n s[0] * sFactor[0],\n s[1] * sFactor[1]\n ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n var sFactor = [\n 1,\n 1\n ];\n var scaleNorm = [\n 0,\n 0\n ];\n var layerChain = 'thisLayer';\n while (eval([layerChain][0]).hasParent) {\n layerChain = sum(layerChain, '.parent');\n scaleNorm = eval([layerChain][0]).scale;\n if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n scaleNorm = [\n 100 / scaleNorm[0],\n 100 / scaleNorm[1]\n ];\n }\n sFactor = [\n sFactor[0] * scaleNorm[0],\n sFactor[1] * scaleNorm[1]\n ];\n }\n return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":500,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"is":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"or":{"a":0,"k":113,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"os":{"a":0,"k":0,"ix":9,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"e":{"a":0,"k":0,"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"o":{"a":0,"k":100,"ix":7,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sk":{"a":0,"k":0,"ix":4,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"sa":{"a":0,"k":0,"ix":5,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);"},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.219607843137,0.227873439415,0.678431372549,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":36,"ix":5,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Right Leg::Ankle","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Right Leg::Hip","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.04","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false,"cl":"04"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":200,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"is":{"a":0,"k":100,"ix":8,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"or":{"a":0,"k":200,"ix":7,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n $bm_rt = value;\n}"},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"tm","s":{"a":0,"k":0.01,"ix":1},"e":{"a":0,"k":24.99,"ix":2},"o":{"a":0,"k":-90,"ix":3,"x":"var $bm_rt;\n$bm_rt = -90;"},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n -s,\n 0\n];"},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\nvar flop;\ntry {\n var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var bendDir = eff('Bend Direction');\n var autoFlop = eff('AutoFlop');\n flop = bendDir > 0 ? 1 : -1;\n autoFlop > 0 ? 0 : flop *= -1;\n var s = flop == 1 ? [\n -100,\n 100\n ] : [\n 100,\n 100\n ];\n if (eff('Parent Scale') < 0) {\n s = [\n -s[0],\n s[1]\n ];\n }\n $bm_rt = s;\n} catch (err) {\n $bm_rt = value;\n}\n;"},"r":{"a":0,"k":45,"ix":6,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n var baseRot = ctrl('Base Rotation');\n var flop = content('Admin').content('ArcMath').transform.scale[0];\n var rotOffset = flop < 0 ? -45 : 225;\n $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\ntry {\n var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n $bm_rt = ctrl('A');\n} catch (err) {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/red_box.json b/external/rlottie/example/resource/red_box.json new file mode 100644 index 000000000..65bb77ce1 --- /dev/null +++ b/external/rlottie/example/resource/red_box.json @@ -0,0 +1 @@ +{"v":"4.5.6","fr":29.9700012207031,"ip":0,"op":60.0000024438501,"w":612,"h":792,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"Line Box Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[306,396,0]},"a":{"a":0,"k":[306,396,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]],"o":[[0,0],[0,0]],"v":[[194.5,441.875],[503.125,441.875]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.979]},"o":{"x":[0.333],"y":[0]},"n":["0_0p979_0p333_0"],"t":0,"s":[50],"e":[0]},{"t":30.0000012219251}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.919]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p919_0p333_0"],"t":0,"s":[50],"e":[100]},{"t":30.0000012219251}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Back bot","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[194.5,144.5],[500.25,144.5]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.979]},"o":{"x":[0.333],"y":[0]},"n":["0_0p979_0p333_0"],"t":0,"s":[50],"e":[0]},{"t":30.0000012219251}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.919]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p919_0p333_0"],"t":0,"s":[50],"e":[100]},{"t":30.0000012219251}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Back top","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[405,238],[101,238]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.979]},"o":{"x":[0.333],"y":[0]},"n":["0_0p979_0p333_0"],"t":0,"s":[50],"e":[0]},{"t":30.0000012219251}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.919]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p919_0p333_0"],"t":0,"s":[50],"e":[100]},{"t":30.0000012219251}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Front top","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[101,540],[405,540]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.979]},"o":{"x":[0.333],"y":[0]},"n":["0_0p979_0p333_0"],"t":0,"s":[50],"e":[0]},{"t":30.0000012219251}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.919]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p919_0p333_0"],"t":0,"s":[50],"e":[100]},{"t":30.0000012219251}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Front bot","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[47.906,-47.906],[-47.907,47.906]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.985]},"o":{"x":[0.333],"y":[0]},"n":["0_0p985_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.941]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p941_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[146.594,489.781],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Bot left","np":4,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[194.5,144.5],[194.5,441.875]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.985]},"o":{"x":[0.333],"y":[0]},"n":["0_0p985_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.941]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p941_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 3","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Back left","np":4,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[500.25,144.5],[500.25,441.875]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.985]},"o":{"x":[0.333],"y":[0]},"n":["0_0p985_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.941]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p941_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Back right","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-49.063,49.063],[49.063,-49.063]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.985]},"o":{"x":[0.333],"y":[0]},"n":["0_0p985_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.941]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p941_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[454.063,490.938],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Bot right","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-47.625,47.625],[47.625,-47.625]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.985]},"o":{"x":[0.333],"y":[0]},"n":["0_0p985_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.941]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p941_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[452.625,190.375],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Top right","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-46.75,46.75],[46.75,-46.75]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.985]},"o":{"x":[0.333],"y":[0]},"n":["0_0p985_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.941]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p941_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[147.75,191.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Top left","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[405,542],[405,238]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.985]},"o":{"x":[0.333],"y":[0]},"n":["0_0p985_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.941]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p941_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Front right","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[101,236],[101,540]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.23,0.23,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[0.985]},"o":{"x":[0.333],"y":[0]},"n":["0_0p985_0p333_0"],"t":23,"s":[50],"e":[0]},{"t":45.0000018328876}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.004],"y":[0.941]},"o":{"x":[0.333],"y":[0]},"n":["0p004_0p941_0p333_0"],"t":23,"s":[50],"e":[100]},{"t":45.0000018328876}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Front left","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":241.000009816131,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/ripple_loading_animation.json b/external/rlottie/example/resource/ripple_loading_animation.json new file mode 100644 index 000000000..1935a0345 --- /dev/null +++ b/external/rlottie/example/resource/ripple_loading_animation.json @@ -0,0 +1 @@ +{"v":"4.10.1","fr":60,"ip":0,"op":120,"w":800,"h":800,"nm":"loading_animation","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":23,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":34,"s":[100],"e":[20]},{"t":69}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0_1_0p333_0","0_1_0p333_0"],"t":23,"s":[400,400],"e":[440,440]},{"i":{"x":[0.009,0.009],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p009_1_0p333_0","0p009_1_0p333_0"],"t":34,"s":[440,440],"e":[400,400]},{"t":59}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":23,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[10],"e":[5]},{"t":59}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":16,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":27,"s":[100],"e":[20]},{"t":62}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":16,"s":[320,320],"e":[360,360]},{"i":{"x":[0.025,0.025],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p025_1_0p333_0","0p025_1_0p333_0"],"t":27,"s":[360,360],"e":[320,320]},{"t":52}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":16,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":27,"s":[10],"e":[5]},{"t":52}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":9,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":20,"s":[100],"e":[20]},{"t":55}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":9,"s":[240,240],"e":[280,280]},{"i":{"x":[0.051,0.051],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p051_1_0p333_0","0p051_1_0p333_0"],"t":20,"s":[280,280],"e":[240,240]},{"t":45}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":9,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[10],"e":[5]},{"t":45}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":2,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":13,"s":[100],"e":[20]},{"t":48}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":2,"s":[160,160],"e":[200,200]},{"i":{"x":[0.034,0.034],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p034_1_0p333_0","0p034_1_0p333_0"],"t":13,"s":[200,200],"e":[160,160]},{"t":38}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":13,"s":[10],"e":[5]},{"t":38}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":11,"s":[100],"e":[20]},{"t":46}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":0,"s":[80,80],"e":[120,120]},{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0_1_0p333_0","0_1_0p333_0"],"t":11,"s":[120,120],"e":[80,80]},{"t":36}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":11,"s":[10],"e":[5]},{"t":35}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/settings.json b/external/rlottie/example/resource/settings.json new file mode 100644 index 000000000..5dc781b55 --- /dev/null +++ b/external/rlottie/example/resource/settings.json @@ -0,0 +1 @@ +{"v":"5.1.16","fr":29.9700012207031,"ip":0,"op":143.000005824509,"w":200,"h":100,"nm":"Composição 2","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"settings contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[500,500,0],"ix":1},"s":{"a":0,"k":[10,10,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-48.351],[48.351,0],[0,48.351],[-48.35,0]],"o":[[0,48.351],[-48.35,0],[0,-48.351],[48.351,0]],"v":[[87.547,0],[0,87.546],[-87.547,0],[0,-87.546]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":15,"s":[0.36862745098,0.486274509804,0.701960784314,1],"e":[1,1,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":30,"s":[1,1,1,1],"e":[1,1,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":120,"s":[1,1,1,1],"e":[0.368627458811,0.486274510622,0.701960802078,1]},{"t":135.000005498663}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[508.477,496.992],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-17.498,0],[-30.346,-22.349],[2.857,-40.794],[0,0],[-0.017,-0.034],[-21.335,-0.186],[0,0],[-1.049,1.032],[-0.068,1.267],[-46.372,32.628],[0,0],[-36.939,-23.297],[-7.963,-4.615],[-0.981,26.154],[0,0],[18.376,16.162],[-4.04,40.134],[-35.266,20.186],[-0.372,1.86],[32.273,42.197],[5.022,3.314],[2.586,-2.35],[35.671,22.401],[2.925,1.707],[-14.454,69.043],[27.641,0],[0,0],[0,0],[4.97,-6.83],[31.816,-28.79],[3.753,-3.483],[32.104,3.432],[7.016,7.489],[2.839,-0.034],[10.498,-12.594],[-59.694,-56.194],[0,0],[20.084,-76.532],[33.981,-17.261],[4.919,-2.587],[-28.655,-54.809],[-6.34,-1.826],[-18.512,10.905],[-4.328,2.349],[-1.809,1.049]],"o":[[21.03,0],[59.34,43.685],[0,0],[-0.355,10.583],[6.526,6.847],[0,0],[57.412,0.693],[-0.034,-0.085],[3.11,-66.592],[0,0],[65.358,-46.221],[6.323,3.973],[27.268,-12.088],[0,0],[-14.251,-11.936],[-26.897,-23.583],[4.581,-45.51],[33.338,-19.086],[0.812,-4.057],[-21.368,-27.946],[-1.403,1.015],[-70.734,64.157],[-2.958,-1.843],[-23.989,-14.066],[-10.397,-7.607],[0,0],[0,0],[-28.029,-1.521],[0.186,54.47],[-3.111,2.807],[-38.325,35.671],[-22.536,-2.299],[-24.547,-22.045],[-15.03,1.031],[-35.807,42.924],[0,0],[29.788,27.067],[-8.689,33.118],[-4.902,2.485],[-7.946,4.192],[23.398,44.8],[10.295,2.958],[4.751,-2.806],[1.961,-1.048],[16.162,-9.399]],"v":[[-202.259,227.105],[-127.215,258.229],[-53.506,368.472],[-53.708,371.852],[-52.035,385.766],[15.52,393.137],[18.445,393.154],[88.266,382.317],[88.452,380.306],[145.39,266.141],[149.887,262.963],[290.374,264.079],[311.625,277.079],[390,171.942],[367.176,152.788],[330.88,121.631],[297.795,2.513],[359.569,-99.378],[396.846,-130.552],[363.812,-190.787],[325.757,-231.784],[319.807,-226.864],[153.691,-222.638],[144.849,-227.929],[90.835,-337.107],[18.682,-351.865],[18.209,-351.865],[15.469,-351.95],[-49.195,-339.456],[-93.792,-239.104],[-104.054,-229.721],[-208.666,-181.574],[-252.182,-202.452],[-290.084,-225.41],[-347.581,-173.476],[-322.544,-73.293],[-314.209,-65.533],[-279.705,73.652],[-354.479,140.346],[-369.271,147.953],[-360.582,213.294],[-313.583,268.965],[-270.88,253.563],[-257.237,245.753],[-251.607,242.574]],"c":true},"ix":2},"nm":"Caminho 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[98.662,0],[1.351,0.017],[0,0],[31.833,33.186],[-1.048,31.985],[-0.153,2.147],[-0.018,0.321],[26.982,19.881],[2.739,0.897],[1.961,-1.133],[2.807,-1.522],[3.737,-2.214],[46.829,13.388],[29.027,55.553],[-43.887,23.16],[-5.292,2.687],[-6.712,4.903],[11.598,10.532],[0,0],[-88.011,105.525],[-47.962,3.263],[-23.601,-20.844],[-17.227,16.044],[-3.382,3.06],[0,20.946],[-18.004,16.922],[-17.244,-0.93],[-35.992,-44.733],[5.63,-25.342],[-0.017,-1.369],[-4.582,-2.688],[-3.72,-2.333],[-21.369,19.374],[-32.19,-2.723],[-28.519,-37.294],[8.707,-43.144],[32.171,-18.427],[3.939,-15.755],[-4.43,-8.892],[-12.916,-10.802],[0,0],[46.711,-68.062],[54.521,30.025],[9.45,5.968],[3.754,0.389],[14.1,-9.975],[0,0],[1.911,-2.248],[0.423,-9.095]],"o":[[-1.352,0],[0,0],[-47.911,-0.407],[-18.123,-18.866],[0.085,-2.266],[0.017,-0.321],[-2.79,-3.703],[-13.592,-10.009],[-1.69,0.846],[-2.603,1.521],[-3.431,1.825],[-25.324,14.894],[-38.207,-10.939],[-56.685,-108.433],[5.325,-2.806],[10.279,-5.224],[7.235,-30.853],[0,0],[-59.086,-55.637],[34.86,-41.791],[41.385,-2.874],[5.46,-2.163],[4.057,-3.787],[16.297,-14.742],[0,-24.953],[39.965,-37.548],[25.68,0.067],[15.638,19.424],[-1.015,4.53],[2.756,2.367],[3.651,2.147],[35.924,22.536],[14.962,-13.575],[39.931,3.634],[35.774,46.778],[-8.875,43.988],[-5.343,3.043],[-5.664,22.637],[15.333,13.441],[0,0],[39.357,33.151],[-40.151,58.494],[-12.798,-7.032],[-9.112,-5.732],[0.034,0],[0,0],[-7.371,5.189],[-1.217,3.702],[-2.959,63.312]],"v":[[21.758,479.728],[17.702,479.711],[14.777,479.678],[-114.501,445.663],[-140.232,369.013],[-139.86,362.419],[-139.792,361.473],[-178.541,327.915],[-202.006,313.984],[-208.143,317.416],[-216.224,321.998],[-226.976,328.168],[-337.387,352.175],[-437.3,253.377],[-409.676,71.404],[-393.683,63.171],[-361.883,45.521],[-372.416,-1.46],[-381.866,-10.251],[-414.055,-228.926],[-295.951,-311.765],[-196.714,-268.96],[-163.021,-293.084],[-151.863,-303.295],[-135.566,-338.983],[-108.044,-402.988],[19.307,-438.422],[160.216,-389.632],[175.736,-320.217],[174.603,-311.579],[188.619,-302.602],[199.709,-295.941],[261.651,-290.971],[332.233,-319.321],[432.584,-243.364],[481.696,-113.443],[402.578,-24.249],[385.756,0.433],[390.659,58.944],[422.729,86.399],[449.795,109.121],[438.045,270.773],[277.221,357.043],[244.221,337.298],[218.896,323.316],[199.843,333.663],[195.195,336.926],[177.545,350.247],[174.908,384.346]],"c":true},"ix":2},"nm":"Caminho 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[0]},"n":["0p667_1_1_0"],"t":15,"s":[0.36862745098,0.486274509804,0.701960784314,1],"e":[1,1,1,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":30,"s":[1,1,1,1],"e":[1,1,1,1]},{"i":{"x":[0.05],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p05_1_0p333_0"],"t":120,"s":[1,1,1,1],"e":[0.368627458811,0.486274510622,0.701960802078,1]},{"t":135.000005498663}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[490.403,479.728],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":137.000005580124,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"settings","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[56,56,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":0,"op":6.00000024438501,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"settings","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[56,56,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":-0.30272728505761,"op":0,"st":-12.00000048877,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"settings","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,50,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[56,56,100],"ix":6}},"ao":0,"w":100,"h":100,"ip":6.00000024438501,"op":143.000005824509,"st":6.00000024438501,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Camada de forma 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[103,51,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[97.826,93.75,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[185.893,83.764],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":489,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.36862745098,0.486274509804,0.701960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-2.947,-2.161],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143.000005824509,"st":-12.00000048877,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Camada de forma 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[103,51.12,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,93.447,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[185.893,83.764],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":489,"ix":4},"nm":"Caminho do retângulo 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.36862745098,0.486274509804,0.701960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.36862745098,0.486274509804,0.701960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.36862745098,0.486274509804,0.701960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2.947,-2.161],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Retângulo 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143.000005824509,"st":-12.00000048877,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Camada de forma 3","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,50,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":18,"s":[0,0,100],"e":[569,569,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":33,"s":[569,569,100],"e":[569,569,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":127,"s":[569,569,100],"e":[0,0,100]},{"t":142.000005783779}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.12,0],[0,-15.12],[-15.12,0],[0,15.12]],"o":[[-15.12,0],[0,15.12],[15.12,0],[0,-15.12]],"v":[[0,-27.376],[-27.376,0],[0,27.376],[27.376,0]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.36862745098,0.486274509804,0.701960784314,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.36862745098,0.486274509804,0.701960784314,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.955,1.286],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Elipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143.000005824509,"st":-12.00000048877,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/spin,_lil_loader_v2.json b/external/rlottie/example/resource/spin,_lil_loader_v2.json new file mode 100644 index 000000000..64b71e8ce --- /dev/null +++ b/external/rlottie/example/resource/spin,_lil_loader_v2.json @@ -0,0 +1 @@ +{"v":"5.1.16","fr":30,"ip":0,"op":50,"w":90,"h":90,"nm":"stick 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"stick 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":21,"s":[100],"e":[0]},{"t":36}],"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[45,45,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,-1.1],[0,0]],"o":[[0,0],[-1.1,0],[0,0],[0,-1.1],[1.1,0],[0,0],[0,1.1]],"v":[[0,7.5],[0,7.5],[-2,5.5],[-2,-5.5],[0,-7.5],[2,-5.5],[2,5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752941191196,0.874509811401,0.086274512112,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":6,"op":186,"st":6,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"stick 8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":3,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":18,"s":[100],"e":[0]},{"t":33}],"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[45,45,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,-1.1],[0,0]],"o":[[0,0],[-1.1,0],[0,0],[0,-1.1],[1.1,0],[0,0],[0,1.1]],"v":[[0,7.5],[0,7.5],[-2,5.5],[-2,-5.5],[0,-7.5],[2,-5.5],[2,5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752941191196,0.874509811401,0.086274512112,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":3,"op":183,"st":3,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"stick 7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":21,"s":[100],"e":[0]},{"t":36}],"ix":11},"r":{"a":0,"k":135,"ix":10},"p":{"a":0,"k":[45,45,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,-1.1],[0,0]],"o":[[0,0],[-1.1,0],[0,0],[0,-1.1],[1.1,0],[0,0],[0,1.1]],"v":[[0,7.5],[0,7.5],[-2,5.5],[-2,-5.5],[0,-7.5],[2,-5.5],[2,5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752941191196,0.874509811401,0.086274512112,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":6,"op":186,"st":6,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"stick 6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":9,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":24,"s":[100],"e":[0]},{"t":39}],"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[45,45,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,-1.1],[0,0]],"o":[[0,0],[-1.1,0],[0,0],[0,-1.1],[1.1,0],[0,0],[0,1.1]],"v":[[0,7.5],[0,7.5],[-2,5.5],[-2,-5.5],[0,-7.5],[2,-5.5],[2,5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752941191196,0.874509811401,0.086274512112,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":189,"st":9,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"stick 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":27,"s":[100],"e":[0]},{"t":42}],"ix":11},"r":{"a":0,"k":225,"ix":10},"p":{"a":0,"k":[45,45,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,-1.1],[0,0]],"o":[[0,0],[-1.1,0],[0,0],[0,-1.1],[1.1,0],[0,0],[0,1.1]],"v":[[0,7.5],[0,7.5],[-2,5.5],[-2,-5.5],[0,-7.5],[2,-5.5],[2,5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752941191196,0.874509811401,0.086274512112,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":12,"op":192,"st":12,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"stick 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[100],"e":[0]},{"t":45}],"ix":11},"r":{"a":0,"k":270,"ix":10},"p":{"a":0,"k":[45,45,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,-1.1],[0,0]],"o":[[0,0],[-1.1,0],[0,0],[0,-1.1],[1.1,0],[0,0],[0,1.1]],"v":[[0,7.5],[0,7.5],[-2,5.5],[-2,-5.5],[0,-7.5],[2,-5.5],[2,5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752941191196,0.874509811401,0.086274512112,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":195,"st":15,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"stick 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":32,"s":[100],"e":[0]},{"t":47}],"ix":11},"r":{"a":0,"k":315,"ix":10},"p":{"a":0,"k":[45,45,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,-1.1],[0,0]],"o":[[0,0],[-1.1,0],[0,0],[0,-1.1],[1.1,0],[0,0],[0,1.1]],"v":[[0,7.5],[0,7.5],[-2,5.5],[-2,-5.5],[0,-7.5],[2,-5.5],[2,5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752941191196,0.874509811401,0.086274512112,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":17,"op":197,"st":17,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"stick 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[100],"e":[0]},{"t":50}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[45,45,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,-1.1],[0,0]],"o":[[0,0],[-1.1,0],[0,0],[0,-1.1],[1.1,0],[0,0],[0,1.1]],"v":[[0,7.5],[0,7.5],[-2,5.5],[-2,-5.5],[0,-7.5],[2,-5.5],[2,5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.752941191196,0.874509811401,0.086274512112,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":200,"st":20,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/square_wheel.json b/external/rlottie/example/resource/square_wheel.json new file mode 100644 index 000000000..1543adbe7 --- /dev/null +++ b/external/rlottie/example/resource/square_wheel.json @@ -0,0 +1 @@ +{"v":"5.1.20","fr":60,"ip":0,"op":120,"w":256,"h":256,"nm":"square wheel","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"roda","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[810]},{"t":119}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[-24,231.5,0],"e":[-21.87,229.6,0],"to":[0.35499998927116,-0.31666666269302,0],"ti":[-0.74666666984558,0.58666664361954,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":1,"s":[-21.87,229.6,0],"e":[-19.52,227.98,0],"to":[0.74666666984558,-0.58666664361954,0],"ti":[-0.8116666674614,0.49333333969116,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2,"s":[-19.52,227.98,0],"e":[-17,226.64,0],"to":[0.8116666674614,-0.49333333969116,0],"ti":[-0.86333334445953,0.39500001072884,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[-17,226.64,0],"e":[-14.34,225.61,0],"to":[0.86333334445953,-0.39500001072884,0],"ti":[-0.90499997138977,0.28999999165535,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":4,"s":[-14.34,225.61,0],"e":[-11.57,224.9,0],"to":[0.90499997138977,-0.28999999165535,0],"ti":[-0.93333333730698,0.18166667222977,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[-11.57,224.9,0],"e":[-8.74,224.52,0],"to":[0.93333333730698,-0.18166667222977,0],"ti":[-0.94666665792465,0.07000000029802,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[-8.74,224.52,0],"e":[-5.89,224.48,0],"to":[0.94666665792465,-0.07000000029802,0],"ti":[-0.94833332300186,-0.04333333298564,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":7,"s":[-5.89,224.48,0],"e":[-3.05,224.78,0],"to":[0.94833332300186,0.04333333298564,0],"ti":[-0.9366666674614,-0.1566666662693,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":8,"s":[-3.05,224.78,0],"e":[-0.27,225.42,0],"to":[0.9366666674614,0.1566666662693,0],"ti":[-0.91166669130325,-0.26666668057442,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":9,"s":[-0.27,225.42,0],"e":[2.42,226.38,0],"to":[0.91166669130325,0.26666668057442,0],"ti":[-0.87333333492279,-0.37166666984558,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[2.42,226.38,0],"e":[4.97,227.65,0],"to":[0.87333333492279,0.37166666984558,0],"ti":[-0.82333332300186,-0.47333332896233,0]},{"i":{"x":0.833,"y":0.832},"o":{"x":0.167,"y":0.166},"n":"0p833_0p832_0p167_0p166","t":11,"s":[4.97,227.65,0],"e":[7.36,229.22,0],"to":[0.82333332300186,0.47333332896233,0],"ti":[-0.76333332061768,-0.56833332777023,0]},{"i":{"x":0.833,"y":0.847},"o":{"x":0.167,"y":0.166},"n":"0p833_0p847_0p167_0p166","t":12,"s":[7.36,229.22,0],"e":[9.55,231.06,0],"to":[0.76333332061768,0.56833332777023,0],"ti":[-0.71333330869675,-0.12999999523163,0]},{"i":{"x":0.833,"y":0.818},"o":{"x":0.167,"y":0.184},"n":"0p833_0p818_0p167_0p184","t":13,"s":[9.55,231.06,0],"e":[11.64,230,0],"to":[0.71333330869675,0.12999999523163,0],"ti":[-0.7316666841507,0.45833334326744,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.153},"n":"0p833_0p833_0p167_0p153","t":14,"s":[11.64,230,0],"e":[13.94,228.31,0],"to":[0.7316666841507,-0.45833334326744,0],"ti":[-0.79833334684372,0.51499998569489,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":15,"s":[13.94,228.31,0],"e":[16.43,226.91,0],"to":[0.79833334684372,-0.51499998569489,0],"ti":[-0.85333335399628,0.41666665673256,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16,"s":[16.43,226.91,0],"e":[19.06,225.81,0],"to":[0.85333335399628,-0.41666665673256,0],"ti":[-0.89666664600372,0.3133333325386,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":17,"s":[19.06,225.81,0],"e":[21.81,225.03,0],"to":[0.89666664600372,-0.3133333325386,0],"ti":[-0.92666667699814,0.20499999821186,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18,"s":[21.81,225.03,0],"e":[24.62,224.58,0],"to":[0.92666667699814,-0.20499999821186,0],"ti":[-0.94499999284744,0.09499999880791,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":19,"s":[24.62,224.58,0],"e":[27.48,224.46,0],"to":[0.94499999284744,-0.09499999880791,0],"ti":[-0.94999998807907,-0.01833333261311,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[27.48,224.46,0],"e":[30.32,224.69,0],"to":[0.94999998807907,0.01833333261311,0],"ti":[-0.93999999761581,-0.13166666030884,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":21,"s":[30.32,224.69,0],"e":[33.12,225.25,0],"to":[0.93999999761581,0.13166666030884,0],"ti":[-0.91833335161209,-0.24166665971279,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[33.12,225.25,0],"e":[35.83,226.14,0],"to":[0.91833335161209,0.24166665971279,0],"ti":[-0.88333332538605,-0.34833332896233,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":23,"s":[35.83,226.14,0],"e":[38.42,227.34,0],"to":[0.88333332538605,0.34833332896233,0],"ti":[-0.83666664361954,-0.45166665315628,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":24,"s":[38.42,227.34,0],"e":[40.85,228.85,0],"to":[0.83666664361954,0.45166665315628,0],"ti":[-0.77666664123535,-0.54833334684372,0]},{"i":{"x":0.833,"y":0.854},"o":{"x":0.167,"y":0.167},"n":"0p833_0p854_0p167_0p167","t":25,"s":[40.85,228.85,0],"e":[43.08,230.63,0],"to":[0.77666664123535,0.54833334684372,0],"ti":[-0.71833330392838,-0.26166665554047,0]},{"i":{"x":0.833,"y":0.806},"o":{"x":0.167,"y":0.194},"n":"0p833_0p806_0p167_0p194","t":26,"s":[43.08,230.63,0],"e":[45.16,230.42,0],"to":[0.71833330392838,0.26166665554047,0],"ti":[-0.72166669368744,0.32666665315628,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.146},"n":"0p833_0p833_0p167_0p146","t":27,"s":[45.16,230.42,0],"e":[47.41,228.67,0],"to":[0.72166669368744,-0.32666665315628,0],"ti":[-0.78333336114883,0.53666669130325,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":28,"s":[47.41,228.67,0],"e":[49.86,227.2,0],"to":[0.78333336114883,-0.53666669130325,0],"ti":[-0.84166663885117,0.43999999761581,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":29,"s":[49.86,227.2,0],"e":[52.46,226.03,0],"to":[0.84166663885117,-0.43999999761581,0],"ti":[-0.88833332061768,0.33833333849907,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":30,"s":[52.46,226.03,0],"e":[55.19,225.17,0],"to":[0.88833332061768,-0.33833333849907,0],"ti":[-0.92166668176651,0.23000000417233,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[55.19,225.17,0],"e":[57.99,224.65,0],"to":[0.92166668176651,-0.23000000417233,0],"ti":[-0.94166666269302,0.11833333224058,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":32,"s":[57.99,224.65,0],"e":[60.84,224.46,0],"to":[0.94166666269302,-0.11833333224058,0],"ti":[-0.94999998807907,0.0066666668281,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":33,"s":[60.84,224.46,0],"e":[63.69,224.61,0],"to":[0.94999998807907,-0.0066666668281,0],"ti":[-0.94333332777023,-0.10666666924953,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":34,"s":[63.69,224.61,0],"e":[66.5,225.1,0],"to":[0.94333332777023,0.10666666924953,0],"ti":[-0.92500001192093,-0.21666666865349,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":35,"s":[66.5,225.1,0],"e":[69.24,225.91,0],"to":[0.92500001192093,0.21666666865349,0],"ti":[-0.8933333158493,-0.32499998807907,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":36,"s":[69.24,225.91,0],"e":[71.86,227.05,0],"to":[0.8933333158493,0.32499998807907,0],"ti":[-0.84666669368744,-0.43000000715256,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37,"s":[71.86,227.05,0],"e":[74.32,228.49,0],"to":[0.84666669368744,0.43000000715256,0],"ti":[-0.79000002145767,-0.52666664123535,0]},{"i":{"x":0.833,"y":0.851},"o":{"x":0.167,"y":0.166},"n":"0p833_0p851_0p167_0p166","t":38,"s":[74.32,228.49,0],"e":[76.6,230.21,0],"to":[0.79000002145767,0.52666664123535,0],"ti":[-0.72833335399628,-0.39166668057442,0]},{"i":{"x":0.833,"y":0.81},"o":{"x":0.167,"y":0.19},"n":"0p833_0p81_0p167_0p19","t":39,"s":[76.6,230.21,0],"e":[78.69,230.84,0],"to":[0.72833335399628,0.39166668057442,0],"ti":[-0.71499997377396,0.19666667282581,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.148},"n":"0p833_0p834_0p167_0p148","t":40,"s":[78.69,230.84,0],"e":[80.89,229.03,0],"to":[0.71499997377396,-0.19666667282581,0],"ti":[-0.7683333158493,0.55666667222977,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41,"s":[80.89,229.03,0],"e":[83.3,227.5,0],"to":[0.7683333158493,-0.55666667222977,0],"ti":[-0.8299999833107,0.46166667342186,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[83.3,227.5,0],"e":[85.87,226.26,0],"to":[0.8299999833107,-0.46166667342186,0],"ti":[-0.87833333015442,0.36166667938232,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":43,"s":[85.87,226.26,0],"e":[88.57,225.33,0],"to":[0.87833333015442,-0.36166667938232,0],"ti":[-0.91500002145767,0.25499999523163,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44,"s":[88.57,225.33,0],"e":[91.36,224.73,0],"to":[0.91500002145767,-0.25499999523163,0],"ti":[-0.93999999761581,0.14333333075047,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":45,"s":[91.36,224.73,0],"e":[94.21,224.47,0],"to":[0.93999999761581,-0.14333333075047,0],"ti":[-0.94999998807907,0.02999999932945,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":46,"s":[94.21,224.47,0],"e":[97.06,224.55,0],"to":[0.94999998807907,-0.02999999932945,0],"ti":[-0.94499999284744,-0.08166666328907,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":47,"s":[97.06,224.55,0],"e":[99.88,224.96,0],"to":[0.94499999284744,0.08166666328907,0],"ti":[-0.93000000715256,-0.19166666269302,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":48,"s":[99.88,224.96,0],"e":[102.64,225.7,0],"to":[0.93000000715256,0.19166666269302,0],"ti":[-0.90166664123535,-0.30166667699814,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":49,"s":[102.64,225.7,0],"e":[105.29,226.77,0],"to":[0.90166664123535,0.30166667699814,0],"ti":[-0.85833334922791,-0.4066666662693,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50,"s":[105.29,226.77,0],"e":[107.79,228.14,0],"to":[0.85833334922791,0.4066666662693,0],"ti":[-0.80333334207535,-0.50499999523163,0]},{"i":{"x":0.833,"y":0.839},"o":{"x":0.167,"y":0.167},"n":"0p833_0p839_0p167_0p167","t":51,"s":[107.79,228.14,0],"e":[110.11,229.8,0],"to":[0.80333334207535,0.50499999523163,0],"ti":[-0.74000000953674,-0.52333331108093,0]},{"i":{"x":0.833,"y":0.825},"o":{"x":0.167,"y":0.173},"n":"0p833_0p825_0p167_0p173","t":52,"s":[110.11,229.8,0],"e":[112.23,231.28,0],"to":[0.74000000953674,0.52333331108093,0],"ti":[-0.71333330869675,0.06499999761581,0]},{"i":{"x":0.833,"y":0.835},"o":{"x":0.167,"y":0.159},"n":"0p833_0p835_0p167_0p159","t":53,"s":[112.23,231.28,0],"e":[114.39,229.41,0],"to":[0.71333330869675,-0.06499999761581,0],"ti":[-0.75333333015442,0.57833331823349,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.168},"n":"0p833_0p833_0p167_0p168","t":54,"s":[114.39,229.41,0],"e":[116.75,227.81,0],"to":[0.75333333015442,-0.57833331823349,0],"ti":[-0.81666666269302,0.48333331942558,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[116.75,227.81,0],"e":[119.29,226.51,0],"to":[0.81666666269302,-0.48333331942558,0],"ti":[-0.86833333969116,0.38333332538605,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":56,"s":[119.29,226.51,0],"e":[121.96,225.51,0],"to":[0.86833333969116,-0.38333332538605,0],"ti":[-0.90833336114883,0.27833333611488,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":57,"s":[121.96,225.51,0],"e":[124.74,224.84,0],"to":[0.90833336114883,-0.27833333611488,0],"ti":[-0.93500000238419,0.16833333671093,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":58,"s":[124.74,224.84,0],"e":[127.57,224.5,0],"to":[0.93500000238419,-0.16833333671093,0],"ti":[-0.94833332300186,0.05666666850448,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":59,"s":[127.57,224.5,0],"e":[130.43,224.5,0],"to":[0.94833332300186,-0.05666666850448,0],"ti":[-0.94833332300186,-0.05666666850448,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[130.43,224.5,0],"e":[133.26,224.84,0],"to":[0.94833332300186,0.05666666850448,0],"ti":[-0.93500000238419,-0.16833333671093,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":61,"s":[133.26,224.84,0],"e":[136.04,225.51,0],"to":[0.93500000238419,0.16833333671093,0],"ti":[-0.90833336114883,-0.27833333611488,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":62,"s":[136.04,225.51,0],"e":[138.71,226.51,0],"to":[0.90833336114883,0.27833333611488,0],"ti":[-0.86833333969116,-0.38333332538605,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":63,"s":[138.71,226.51,0],"e":[141.25,227.81,0],"to":[0.86833333969116,0.38333332538605,0],"ti":[-0.81666666269302,-0.48333331942558,0]},{"i":{"x":0.833,"y":0.832},"o":{"x":0.167,"y":0.167},"n":"0p833_0p832_0p167_0p167","t":64,"s":[141.25,227.81,0],"e":[143.61,229.41,0],"to":[0.81666666269302,0.48333331942558,0],"ti":[-0.75333333015442,-0.57833331823349,0]},{"i":{"x":0.833,"y":0.841},"o":{"x":0.167,"y":0.165},"n":"0p833_0p841_0p167_0p165","t":65,"s":[143.61,229.41,0],"e":[145.77,231.28,0],"to":[0.75333333015442,0.57833331823349,0],"ti":[-0.71333330869675,-0.06499999761581,0]},{"i":{"x":0.833,"y":0.827},"o":{"x":0.167,"y":0.175},"n":"0p833_0p827_0p167_0p175","t":66,"s":[145.77,231.28,0],"e":[147.89,229.8,0],"to":[0.71333330869675,0.06499999761581,0],"ti":[-0.74000000953674,0.52333331108093,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.161},"n":"0p833_0p833_0p167_0p161","t":67,"s":[147.89,229.8,0],"e":[150.21,228.14,0],"to":[0.74000000953674,-0.52333331108093,0],"ti":[-0.80333334207535,0.50499999523163,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":68,"s":[150.21,228.14,0],"e":[152.71,226.77,0],"to":[0.80333334207535,-0.50499999523163,0],"ti":[-0.85833334922791,0.4066666662693,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":69,"s":[152.71,226.77,0],"e":[155.36,225.7,0],"to":[0.85833334922791,-0.4066666662693,0],"ti":[-0.90166664123535,0.30166667699814,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":70,"s":[155.36,225.7,0],"e":[158.12,224.96,0],"to":[0.90166664123535,-0.30166667699814,0],"ti":[-0.93000000715256,0.19166666269302,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":71,"s":[158.12,224.96,0],"e":[160.94,224.55,0],"to":[0.93000000715256,-0.19166666269302,0],"ti":[-0.94499999284744,0.08166666328907,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":72,"s":[160.94,224.55,0],"e":[163.79,224.47,0],"to":[0.94499999284744,-0.08166666328907,0],"ti":[-0.94999998807907,-0.02999999932945,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":73,"s":[163.79,224.47,0],"e":[166.64,224.73,0],"to":[0.94999998807907,0.02999999932945,0],"ti":[-0.93999999761581,-0.14333333075047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74,"s":[166.64,224.73,0],"e":[169.43,225.33,0],"to":[0.93999999761581,0.14333333075047,0],"ti":[-0.91500002145767,-0.25499999523163,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75,"s":[169.43,225.33,0],"e":[172.13,226.26,0],"to":[0.91500002145767,0.25499999523163,0],"ti":[-0.87833333015442,-0.36166667938232,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":76,"s":[172.13,226.26,0],"e":[174.7,227.5,0],"to":[0.87833333015442,0.36166667938232,0],"ti":[-0.8299999833107,-0.46166667342186,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":77,"s":[174.7,227.5,0],"e":[177.11,229.03,0],"to":[0.8299999833107,0.46166667342186,0],"ti":[-0.7683333158493,-0.55666667222977,0]},{"i":{"x":0.833,"y":0.852},"o":{"x":0.167,"y":0.166},"n":"0p833_0p852_0p167_0p166","t":78,"s":[177.11,229.03,0],"e":[179.31,230.84,0],"to":[0.7683333158493,0.55666667222977,0],"ti":[-0.71499997377396,-0.19666667282581,0]},{"i":{"x":0.833,"y":0.81},"o":{"x":0.167,"y":0.19},"n":"0p833_0p81_0p167_0p19","t":79,"s":[179.31,230.84,0],"e":[181.4,230.21,0],"to":[0.71499997377396,0.19666667282581,0],"ti":[-0.72833335399628,0.39166668057442,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.149},"n":"0p833_0p834_0p167_0p149","t":80,"s":[181.4,230.21,0],"e":[183.68,228.49,0],"to":[0.72833335399628,-0.39166668057442,0],"ti":[-0.79000002145767,0.52666664123535,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81,"s":[183.68,228.49,0],"e":[186.14,227.05,0],"to":[0.79000002145767,-0.52666664123535,0],"ti":[-0.84666669368744,0.43000000715256,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":82,"s":[186.14,227.05,0],"e":[188.76,225.91,0],"to":[0.84666669368744,-0.43000000715256,0],"ti":[-0.8933333158493,0.32499998807907,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":83,"s":[188.76,225.91,0],"e":[191.5,225.1,0],"to":[0.8933333158493,-0.32499998807907,0],"ti":[-0.92500001192093,0.21666666865349,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":84,"s":[191.5,225.1,0],"e":[194.31,224.61,0],"to":[0.92500001192093,-0.21666666865349,0],"ti":[-0.94333332777023,0.10666666924953,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":85,"s":[194.31,224.61,0],"e":[197.16,224.46,0],"to":[0.94333332777023,-0.10666666924953,0],"ti":[-0.94999998807907,-0.0066666668281,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":86,"s":[197.16,224.46,0],"e":[200.01,224.65,0],"to":[0.94999998807907,0.0066666668281,0],"ti":[-0.94166666269302,-0.11833333224058,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":87,"s":[200.01,224.65,0],"e":[202.81,225.17,0],"to":[0.94166666269302,0.11833333224058,0],"ti":[-0.92166668176651,-0.23000000417233,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":88,"s":[202.81,225.17,0],"e":[205.54,226.03,0],"to":[0.92166668176651,0.23000000417233,0],"ti":[-0.88833332061768,-0.33833333849907,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":89,"s":[205.54,226.03,0],"e":[208.14,227.2,0],"to":[0.88833332061768,0.33833333849907,0],"ti":[-0.84166663885117,-0.43999999761581,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":90,"s":[208.14,227.2,0],"e":[210.59,228.67,0],"to":[0.84166663885117,0.43999999761581,0],"ti":[-0.78333336114883,-0.53666669130325,0]},{"i":{"x":0.833,"y":0.854},"o":{"x":0.167,"y":0.167},"n":"0p833_0p854_0p167_0p167","t":91,"s":[210.59,228.67,0],"e":[212.84,230.42,0],"to":[0.78333336114883,0.53666669130325,0],"ti":[-0.72166669368744,-0.32666665315628,0]},{"i":{"x":0.833,"y":0.806},"o":{"x":0.167,"y":0.194},"n":"0p833_0p806_0p167_0p194","t":92,"s":[212.84,230.42,0],"e":[214.92,230.63,0],"to":[0.72166669368744,0.32666665315628,0],"ti":[-0.71833330392838,0.26166665554047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.146},"n":"0p833_0p833_0p167_0p146","t":93,"s":[214.92,230.63,0],"e":[217.15,228.85,0],"to":[0.71833330392838,-0.26166665554047,0],"ti":[-0.77666664123535,0.54833334684372,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":94,"s":[217.15,228.85,0],"e":[219.58,227.34,0],"to":[0.77666664123535,-0.54833334684372,0],"ti":[-0.83666664361954,0.45166665315628,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":95,"s":[219.58,227.34,0],"e":[222.17,226.14,0],"to":[0.83666664361954,-0.45166665315628,0],"ti":[-0.88333332538605,0.34833332896233,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":96,"s":[222.17,226.14,0],"e":[224.88,225.25,0],"to":[0.88333332538605,-0.34833332896233,0],"ti":[-0.91833335161209,0.24166665971279,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":97,"s":[224.88,225.25,0],"e":[227.68,224.69,0],"to":[0.91833335161209,-0.24166665971279,0],"ti":[-0.93999999761581,0.13166666030884,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":98,"s":[227.68,224.69,0],"e":[230.52,224.46,0],"to":[0.93999999761581,-0.13166666030884,0],"ti":[-0.94999998807907,0.01833333261311,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":99,"s":[230.52,224.46,0],"e":[233.38,224.58,0],"to":[0.94999998807907,-0.01833333261311,0],"ti":[-0.94499999284744,-0.09499999880791,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":100,"s":[233.38,224.58,0],"e":[236.19,225.03,0],"to":[0.94499999284744,0.09499999880791,0],"ti":[-0.92666667699814,-0.20499999821186,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.166},"n":"0p833_0p834_0p167_0p166","t":101,"s":[236.19,225.03,0],"e":[238.94,225.81,0],"to":[0.92666667699814,0.20499999821186,0],"ti":[-0.89666664600372,-0.3133333325386,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":102,"s":[238.94,225.81,0],"e":[241.57,226.91,0],"to":[0.89666664600372,0.3133333325386,0],"ti":[-0.85333335399628,-0.41666665673256,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":103,"s":[241.57,226.91,0],"e":[244.06,228.31,0],"to":[0.85333335399628,0.41666665673256,0],"ti":[-0.79833334684372,-0.51499998569489,0]},{"i":{"x":0.833,"y":0.847},"o":{"x":0.167,"y":0.167},"n":"0p833_0p847_0p167_0p167","t":104,"s":[244.06,228.31,0],"e":[246.36,230,0],"to":[0.79833334684372,0.51499998569489,0],"ti":[-0.7316666841507,-0.45833334326744,0]},{"i":{"x":0.833,"y":0.816},"o":{"x":0.167,"y":0.182},"n":"0p833_0p816_0p167_0p182","t":105,"s":[246.36,230,0],"e":[248.45,231.06,0],"to":[0.7316666841507,0.45833334326744,0],"ti":[-0.71333330869675,0.12999999523163,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.153},"n":"0p833_0p834_0p167_0p153","t":106,"s":[248.45,231.06,0],"e":[250.64,229.22,0],"to":[0.71333330869675,-0.12999999523163,0],"ti":[-0.76333332061768,0.56833332777023,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.168},"n":"0p833_0p834_0p167_0p168","t":107,"s":[250.64,229.22,0],"e":[253.03,227.65,0],"to":[0.76333332061768,-0.56833332777023,0],"ti":[-0.82333332300186,0.47333332896233,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":108,"s":[253.03,227.65,0],"e":[255.58,226.38,0],"to":[0.82333332300186,-0.47333332896233,0],"ti":[-0.87333333492279,0.37166666984558,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.166},"n":"0p833_0p833_0p167_0p166","t":109,"s":[255.58,226.38,0],"e":[258.27,225.42,0],"to":[0.87333333492279,-0.37166666984558,0],"ti":[-0.91166669130325,0.26666668057442,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":110,"s":[258.27,225.42,0],"e":[261.05,224.78,0],"to":[0.91166669130325,-0.26666668057442,0],"ti":[-0.9366666674614,0.1566666662693,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":111,"s":[261.05,224.78,0],"e":[263.89,224.48,0],"to":[0.9366666674614,-0.1566666662693,0],"ti":[-0.94833332300186,0.04333333298564,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":112,"s":[263.89,224.48,0],"e":[266.74,224.52,0],"to":[0.94833332300186,-0.04333333298564,0],"ti":[-0.94666665792465,-0.07000000029802,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":113,"s":[266.74,224.52,0],"e":[269.57,224.9,0],"to":[0.94666665792465,0.07000000029802,0],"ti":[-0.93333333730698,-0.18166667222977,0]},{"i":{"x":0.833,"y":0.834},"o":{"x":0.167,"y":0.167},"n":"0p833_0p834_0p167_0p167","t":114,"s":[269.57,224.9,0],"e":[272.34,225.61,0],"to":[0.93333333730698,0.18166667222977,0],"ti":[-0.90499997138977,-0.28999999165535,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":115,"s":[272.34,225.61,0],"e":[275,226.64,0],"to":[0.90499997138977,0.28999999165535,0],"ti":[-0.86333334445953,-0.39500001072884,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":116,"s":[275,226.64,0],"e":[277.52,227.98,0],"to":[0.86333334445953,0.39500001072884,0],"ti":[-0.8116666674614,-0.49333333969116,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":117,"s":[277.52,227.98,0],"e":[279.87,229.6,0],"to":[0.8116666674614,0.49333333969116,0],"ti":[-0.74666666984558,-0.58666664361954,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":118,"s":[279.87,229.6,0],"e":[282,231.5,0],"to":[0.74666666984558,0.58666664361954,0],"ti":[-0.35499998927116,-0.31666666269302,0]},{"t":119}],"ix":2},"a":{"a":0,"k":[-96,98.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[34,34],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.243137000589,0.082353001015,0.768627989526,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.378575882257,0.034678967794,0.803921568627,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-96,98.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"_square wheel","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[128,128,0],"ix":2},"a":{"a":0,"k":[128,128,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":256,"h":256,"ip":0,"op":120,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/starts_transparent.json b/external/rlottie/example/resource/starts_transparent.json new file mode 100644 index 000000000..2735edf4b --- /dev/null +++ b/external/rlottie/example/resource/starts_transparent.json @@ -0,0 +1 @@ +{"v":"4.5.6","fr":30,"ip":0,"op":91,"w":800,"h":800,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":3,"nm":"Master","ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,461.657,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ip":0,"op":600,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"Star_03","parent":0,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64,"s":[100],"e":[0]},{"t":84}]},"r":{"a":1,"k":[{"i":{"x":[0.006],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p006_1_0p167_0p167"],"t":14,"s":[-720],"e":[-1149]},{"t":90}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":14,"s":[-72.808,4.062,0],"e":[2.192,-72.938,0],"to":[7.80815124511719,-75.0615844726562,0],"ti":[0,0,0]},{"t":84}]},"a":{"a":0,"k":[231.37,449.226,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0.667],"y":[1,1,0.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0_1_0p167_0p167","0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":14,"s":[0,0,100],"e":[100,100,100]},{"t":54}]}},"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":[[-36.571,-9.612],[-27.799,-1.99],[-36.683,5.428]],"c":false}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.95,-9.308],[-4.935,-1.817],[3.838,5.731]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":14,"s":[100],"h":1},{"t":34,"s":[0],"h":1}]},"w":{"a":0,"k":2.641},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[247.846,433.746],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Eyes_Closed","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":34,"s":[{"i":[[0.013,-0.202],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.096,-0.1],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.733,-0.323]],"c":true}],"e":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":44,"s":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":54,"s":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":62,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":68,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":71,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":74,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":77,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":80,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":83,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":86,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":89,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":92,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":95,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":98,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":101,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":104,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":107,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"t":110}]},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":34,"s":[{"i":[[0.023,-0.016],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[0.014,-0.036],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.014,-0.105]],"c":true}],"e":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":44,"s":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":54,"s":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":62,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":68,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":71,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":74,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":77,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":80,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":83,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":86,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":89,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":92,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":95,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":98,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":101,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":104,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":107,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"t":110}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":14,"s":[0],"h":1},{"t":34,"s":[100],"h":1}]},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[242.997,431.73],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Eyes_Open","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":54,"s":[{"i":[[0,0],[0.109,-0.906],[13.65,0.572],[1.781,12.531],[0,0],[-24,-0.295]],"o":[[0,0],[-1.541,12.793],[-13.007,-0.545],[-0.128,-0.903],[0,0],[22.624,0.278]],"v":[[23.024,-8.94],[22.994,-8.863],[-2.946,14.608],[-28.522,-7.528],[-28.716,-8.86],[-2.671,14.6]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,14.608],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":62,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,14.608],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,17.108],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":65,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,17.108],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":68,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":71,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":74,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":77,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":80,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":83,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":86,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":89,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":92,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":95,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":98,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":101,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":104,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":107,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"t":110}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":14,"s":[0],"h":1},{"t":54,"s":[100],"h":1}]},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"st","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":14,"s":[0],"h":1},{"t":54,"s":[100],"h":1}]},"w":{"a":0,"k":2.641},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[233.421,461.195],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Open Smile","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-13.602,0.167],[-0.817,13.364]],"o":[[1.145,13.34],[13.603,-0.166],[0,0]],"v":[[-25.719,-11.551],[0.292,12.014],[25.719,-12.182]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":14,"s":[45],"e":[0]},{"t":34}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":14,"s":[55],"e":[100]},{"t":34}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":14,"s":[100],"h":1},{"t":54,"s":[0],"h":1}]},"w":{"a":0,"k":2.641},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[230.43,463.945],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Smile","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[10.322,1.475],[0,0],[4.634,9.335],[0,0],[3.041,-0.007],[0,0],[-4.62,-2.413],[0,0],[1.789,10.268],[0,0],[-7.447,7.297],[0,0]],"o":[[0,0],[-10.319,-1.474],[0,0],[-2.319,-4.67],[0,0],[6.08,-0.016],[0,0],[9.237,4.826],[0,0],[-1.79,-10.269],[0,0],[7.447,-7.294]],"v":[[30.878,-26.746],[4.089,-30.567],[-23.103,-50.22],[-35.144,-74.456],[-43.549,-81.447],[-43.189,60.499],[-26.405,64.095],[-2.419,76.628],[11.128,66.733],[6.486,40.071],[16.773,8.136],[36.102,-10.803]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.77,0.07,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[275.242,440.626],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Body_shader","np":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-4.636,-9.336],[0,0],[-10.32,-1.474],[0,0],[7.448,-7.294],[0,0],[-1.789,-10.269],[0,0],[9.237,4.826],[0,0],[9.213,-4.873],[0,0],[-1.735,10.277],[0,0],[7.482,7.258],[0,0],[-10.314,1.526],[0,0],[-4.59,9.36]],"o":[[4.59,-9.359],[0,0],[4.634,9.335],[0,0],[10.322,1.475],[0,0],[-7.446,7.297],[0,0],[1.788,10.269],[0,0],[-9.237,-4.826],[0,0],[-9.215,4.873],[0,0],[1.736,-10.28],[0,0],[-7.482,-7.256],[0,0],[10.315,-1.525],[0,0]],"v":[[-8.533,-73.371],[8.244,-73.413],[20.285,-49.178],[47.477,-29.525],[74.265,-25.704],[79.489,-9.76],[60.16,9.178],[49.874,41.114],[54.515,67.775],[40.969,77.671],[16.983,65.137],[-16.569,65.22],[-40.491,77.876],[-54.088,68.051],[-49.58,41.366],[-60.029,9.483],[-79.455,-9.358],[-74.312,-25.327],[-47.543,-29.285],[-20.447,-49.076]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.83,0.44,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[231.695,439.583],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Body","np":2,"mn":"ADBE Vector Group"}],"ip":14,"op":90,"st":14,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Star_02","parent":0,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":79,"s":[100],"e":[0]},{"t":89}]},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":7,"s":[-720],"e":[-1509]},{"t":107}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":7,"s":[-55.808,-64.938,0],"e":[-234.808,76.062,0],"to":[-20,-147.83332824707,0],"ti":[-2,-323.166656494141,0]},{"t":90}]},"a":{"a":0,"k":[231.37,449.226,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0.667],"y":[1,1,0.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0_1_0p167_0p167","0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":7,"s":[0,0,100],"e":[100,100,100]},{"t":47}]}},"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":[[-36.571,-9.612],[-27.799,-1.99],[-36.683,5.428]],"c":false}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.95,-9.308],[-4.935,-1.817],[3.838,5.731]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":7,"s":[100],"h":1},{"t":27,"s":[0],"h":1}]},"w":{"a":0,"k":2.641},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[247.846,433.746],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Eyes_Closed","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":27,"s":[{"i":[[0.013,-0.202],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.096,-0.1],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.733,-0.323]],"c":true}],"e":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":37,"s":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":47,"s":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":55,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":61,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":64,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":67,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":70,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":73,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":76,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":79,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":82,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":85,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":88,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":91,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":94,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":97,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":100,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"t":103}]},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":27,"s":[{"i":[[0.023,-0.016],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[0.014,-0.036],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.014,-0.105]],"c":true}],"e":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":37,"s":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":47,"s":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":55,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":61,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":64,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":67,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":70,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":73,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":76,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":79,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":82,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":85,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":88,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":91,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":94,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":97,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":100,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"t":103}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":7,"s":[0],"h":1},{"t":27,"s":[100],"h":1}]},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[242.997,431.73],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Eyes_Open","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":47,"s":[{"i":[[0,0],[0.109,-0.906],[13.65,0.572],[1.781,12.531],[0,0],[-24,-0.295]],"o":[[0,0],[-1.541,12.793],[-13.007,-0.545],[-0.128,-0.903],[0,0],[22.624,0.278]],"v":[[23.024,-8.94],[22.994,-8.863],[-2.946,14.608],[-28.522,-7.528],[-28.716,-8.86],[-2.671,14.6]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,14.608],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":55,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,14.608],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,17.108],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":58,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,17.108],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":61,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":64,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":67,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":70,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":73,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":76,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":79,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":82,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":85,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":88,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":91,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":94,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":97,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":100,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"t":103}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":7,"s":[0],"h":1},{"t":47,"s":[100],"h":1}]},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"st","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":7,"s":[0],"h":1},{"t":47,"s":[100],"h":1}]},"w":{"a":0,"k":2.641},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[233.421,461.195],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Open Smile","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-13.602,0.167],[-0.817,13.364]],"o":[[1.145,13.34],[13.603,-0.166],[0,0]],"v":[[-25.719,-11.551],[0.292,12.014],[25.719,-12.182]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":7,"s":[45],"e":[0]},{"t":27}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":7,"s":[55],"e":[100]},{"t":27}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":7,"s":[100],"h":1},{"t":47,"s":[0],"h":1}]},"w":{"a":0,"k":2.641},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[230.43,463.945],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Smile","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[10.322,1.475],[0,0],[4.634,9.335],[0,0],[3.041,-0.007],[0,0],[-4.62,-2.413],[0,0],[1.789,10.268],[0,0],[-7.447,7.297],[0,0]],"o":[[0,0],[-10.319,-1.474],[0,0],[-2.319,-4.67],[0,0],[6.08,-0.016],[0,0],[9.237,4.826],[0,0],[-1.79,-10.269],[0,0],[7.447,-7.294]],"v":[[30.878,-26.746],[4.089,-30.567],[-23.103,-50.22],[-35.144,-74.456],[-43.549,-81.447],[-43.189,60.499],[-26.405,64.095],[-2.419,76.628],[11.128,66.733],[6.486,40.071],[16.773,8.136],[36.102,-10.803]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.77,0.07,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[275.242,440.626],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Body_shader","np":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-4.636,-9.336],[0,0],[-10.32,-1.474],[0,0],[7.448,-7.294],[0,0],[-1.789,-10.269],[0,0],[9.237,4.826],[0,0],[9.213,-4.873],[0,0],[-1.735,10.277],[0,0],[7.482,7.258],[0,0],[-10.314,1.526],[0,0],[-4.59,9.36]],"o":[[4.59,-9.359],[0,0],[4.634,9.335],[0,0],[10.322,1.475],[0,0],[-7.446,7.297],[0,0],[1.788,10.269],[0,0],[-9.237,-4.826],[0,0],[-9.215,4.873],[0,0],[1.736,-10.28],[0,0],[-7.482,-7.256],[0,0],[10.315,-1.525],[0,0]],"v":[[-8.533,-73.371],[8.244,-73.413],[20.285,-49.178],[47.477,-29.525],[74.265,-25.704],[79.489,-9.76],[60.16,9.178],[49.874,41.114],[54.515,67.775],[40.969,77.671],[16.983,65.137],[-16.569,65.22],[-40.491,77.876],[-54.088,68.051],[-49.58,41.366],[-60.029,9.483],[-79.455,-9.358],[-74.312,-25.327],[-47.543,-29.285],[-20.447,-49.076]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.83,0.44,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[231.695,439.583],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Body","np":2,"mn":"ADBE Vector Group"}],"ip":7,"op":90,"st":7,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Star_01","parent":0,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":66,"s":[100],"e":[0]},{"t":75}]},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[-720],"e":[60]},{"t":90}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":0,"s":[31.192,-0.938,0],"e":[223.192,87.062,0],"to":[27,-133.83332824707,0],"ti":[-7,-196.16667175293,0]},{"t":90}]},"a":{"a":0,"k":[231.37,449.226,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0.667],"y":[1,1,0.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0_1_0p167_0p167","0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":0,"s":[0,0,100],"e":[100,100,100]},{"t":40}]}},"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":[[-36.571,-9.612],[-27.799,-1.99],[-36.683,5.428]],"c":false}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.95,-9.308],[-4.935,-1.817],[3.838,5.731]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":20,"s":[0],"h":1}]},"w":{"a":0,"k":2.641},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[247.846,433.746],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Eyes_Closed","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0.013,-0.202],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.096,-0.1],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.733,-0.323]],"c":true}],"e":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[{"i":[[0.054,-2.972],[2.972,0.054],[-0.054,2.973],[-2.976,-0.054]],"o":[[-0.054,2.976],[-2.972,-0.054],[0.054,-2.973],[2.971,0.054]],"v":[[-18.385,0.097],[-23.869,5.385],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":48,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":54,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":57,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":60,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":63,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":66,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":69,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":72,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":75,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":78,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":81,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":84,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":87,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":90,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":93,"s":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.769,-0.053],[-29.155,-0.099],[-23.671,-5.385]],"c":true}],"e":[{"i":[[0.049,-2.972],[2.972,0.054],[0.096,-0.006],[-2.976,-0.054]],"o":[[0.013,-0.015],[-2.972,-0.054],[0.083,-2.972],[2.971,0.054]],"v":[[-18.385,0.097],[-23.644,-0.884],[-29.155,-0.099],[-23.671,-5.385]],"c":true}]},{"t":96}]},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0.023,-0.016],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[0.014,-0.036],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.014,-0.105]],"c":true}],"e":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[{"i":[[0.003,-2.973],[2.973,0.003],[-0.003,2.973],[-2.976,-0.003]],"o":[[-0.003,2.976],[-2.974,-0.003],[0.003,-2.973],[2.971,0.003]],"v":[[5.386,0.004],[-0.006,5.385],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":48,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":54,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":57,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":60,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":63,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":66,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":69,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":72,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":75,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":78,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":81,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":84,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":87,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":90,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"n":"0p833_1_0p167_0","t":93,"s":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.02,-0.021],[-5.386,-0.006],[0.007,-5.386]],"c":true}],"e":[{"i":[[0.116,-2.97],[2.973,0.003],[0.014,0.057],[-2.976,-0.003]],"o":[[0.054,0.078],[-2.974,-0.003],[-0.236,-3.255],[2.971,0.003]],"v":[[5.386,0.004],[0.145,-0.852],[-5.386,-0.006],[0.007,-5.386]],"c":true}]},{"t":96}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":20,"s":[100],"h":1}]},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[242.997,431.73],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Eyes_Open","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[{"i":[[0,0],[0.109,-0.906],[13.65,0.572],[1.781,12.531],[0,0],[-24,-0.295]],"o":[[0,0],[-1.541,12.793],[-13.007,-0.545],[-0.128,-0.903],[0,0],[22.624,0.278]],"v":[[23.024,-8.94],[22.994,-8.863],[-2.946,14.608],[-28.522,-7.528],[-28.716,-8.86],[-2.671,14.6]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,14.608],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":48,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,14.608],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,17.108],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":51,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,17.108],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":54,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":57,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":60,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":63,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":66,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":69,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":72,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":75,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":78,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":81,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":84,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":87,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":90,"s":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}],"e":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":93,"s":[{"i":[[0,0],[0.123,-0.904],[13.118,0.071],[1.781,12.531],[-0.771,0.001],[-13.559,-0.008]],"o":[[0.771,-0.001],[-1.708,12.576],[-13.016,-0.067],[-0.128,-0.903],[0,0],[13.343,0.006]],"v":[[21.337,-9.257],[22.625,-7.808],[-2.946,14.608],[-28.522,-7.528],[-27.263,-9.176],[-2.671,-5.545]],"c":true}],"e":[{"i":[[0,0],[0.125,-0.904],[13.019,-0.021],[1.781,12.531],[-0.913,0.001],[-11.625,0.045]],"o":[[0.913,-0.002],[-1.74,12.536],[-13.018,0.021],[-0.128,-0.903],[0,0],[11.625,-0.045]],"v":[[21.024,-9.315],[22.557,-7.613],[-2.946,17.295],[-28.522,-7.528],[-26.994,-9.235],[-2.671,-9.275]],"c":true}]},{"t":96}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":40,"s":[100],"h":1}]},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"st","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":40,"s":[100],"h":1}]},"w":{"a":0,"k":2.641},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[233.421,461.195],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Open Smile","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-13.602,0.167],[-0.817,13.364]],"o":[[1.145,13.34],[13.603,-0.166],[0,0]],"v":[[-25.719,-11.551],[0.292,12.014],[25.719,-12.182]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[45],"e":[0]},{"t":20}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[55],"e":[100]},{"t":20}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.79,0.56,0.22,1]},"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":40,"s":[0],"h":1}]},"w":{"a":0,"k":2.641},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[230.43,463.945],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Smile","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[10.322,1.475],[0,0],[4.634,9.335],[0,0],[3.041,-0.007],[0,0],[-4.62,-2.413],[0,0],[1.789,10.268],[0,0],[-7.447,7.297],[0,0]],"o":[[0,0],[-10.319,-1.474],[0,0],[-2.319,-4.67],[0,0],[6.08,-0.016],[0,0],[9.237,4.826],[0,0],[-1.79,-10.269],[0,0],[7.447,-7.294]],"v":[[30.878,-26.746],[4.089,-30.567],[-23.103,-50.22],[-35.144,-74.456],[-43.549,-81.447],[-43.189,60.499],[-26.405,64.095],[-2.419,76.628],[11.128,66.733],[6.486,40.071],[16.773,8.136],[36.102,-10.803]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.77,0.07,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[275.242,440.626],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Body_shader","np":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-4.636,-9.336],[0,0],[-10.32,-1.474],[0,0],[7.448,-7.294],[0,0],[-1.789,-10.269],[0,0],[9.237,4.826],[0,0],[9.213,-4.873],[0,0],[-1.735,10.277],[0,0],[7.482,7.258],[0,0],[-10.314,1.526],[0,0],[-4.59,9.36]],"o":[[4.59,-9.359],[0,0],[4.634,9.335],[0,0],[10.322,1.475],[0,0],[-7.446,7.297],[0,0],[1.788,10.269],[0,0],[-9.237,-4.826],[0,0],[-9.215,4.873],[0,0],[1.736,-10.28],[0,0],[-7.482,-7.256],[0,0],[10.315,-1.525],[0,0]],"v":[[-8.533,-73.371],[8.244,-73.413],[20.285,-49.178],[47.477,-29.525],[74.265,-25.704],[79.489,-9.76],[60.16,9.178],[49.874,41.114],[54.515,67.775],[40.969,77.671],[16.983,65.137],[-16.569,65.22],[-40.491,77.876],[-54.088,68.051],[-49.58,41.366],[-60.029,9.483],[-79.455,-9.358],[-74.312,-25.327],[-47.543,-29.285],[-20.447,-49.076]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.83,0.44,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[231.695,439.583],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Body","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":90,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Fireworks_08","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-41,-125.553,0]},"a":{"a":0,"k":[312.5,177.5,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.733,3.212],[3.516,3.448],[1.007,-0.109],[-0.831,-1.602],[-1.804,-0.048],[-1.498,2.82],[1.857,2.598],[1.894,4.895],[-2.186,3.33],[0.394,3.963],[4.488,1.512],[0.67,2.591],[-1.061,1.667],[3.352,6.121],[-0.017,5.733],[-0.824,5.056],[1.288,6.795],[2.266,9.62],[0.775,2.384],[-2.086,5.33]],"o":[[4.912,0.354],[3.734,-3.212],[-0.723,-0.709],[-1.794,0.194],[0.831,1.602],[3.192,0.085],[1.498,-2.82],[-3.052,-4.27],[-1.438,-3.716],[2.186,-3.33],[-0.468,-4.712],[-2.536,-0.855],[-0.495,-1.913],[3.747,-5.888],[-2.754,-5.028],[0.015,-5.123],[1.113,-6.827],[-1.84,-9.71],[-0.575,-2.44],[-1.769,-5.444],[0,0]],"v":[[19.657,33.614],[33.618,30.114],[35.047,17.054],[32.352,15.881],[30.503,20.092],[35.067,22.494],[42.924,17.911],[42.323,8.835],[30.752,-1.506],[33.523,-12.651],[37.839,-23.525],[28.4,-33.073],[22.087,-37.425],[23.799,-42.917],[27.536,-62.474],[17.953,-76.278],[24.534,-89.921],[16.335,-108.508],[24.585,-136.227],[21.753,-143.18],[24.179,-159.818]],"c":false}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.67,0.87,0.87,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":46.381,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":68.762,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":70,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":103,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":104,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":643,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":644,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":676.381,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":698.762,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":700,"s":[0],"e":[0]},{"t":733}]},"w":{"a":0,"k":4.829},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":25,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":67,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":70,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":103,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":104,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":643,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":644,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":655,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":697,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":700,"s":[100],"e":[100]},{"t":733}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":24,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":68.762,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":70,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":103,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":104,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":643,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":644,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":654,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":698.762,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":700,"s":[100],"e":[100]},{"t":733}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[312.078,177.185],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":14,"op":450,"st":24,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Fireworks_07","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-41,-125.553,0]},"a":{"a":0,"k":[312.5,177.5,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.987,2.255],[-3.851,-0.605],[-3.81,0.826],[0.199,3.894],[-0.057,1.725],[-3.528,0.655],[-3.35,1.286],[-0.385,4.173],[-1.666,2.264],[-4.338,1.184],[0.652,6.571],[-0.575,1.771],[-4.258,0.478],[-2.004,3.788],[0.798,2.901],[-1.515,4.958],[-6.098,3.216],[-0.018,8.318],[-2.756,4.522]],"o":[[-1.536,-4.314],[3.393,-1.919],[3.852,0.605],[3.811,-0.825],[-0.088,-1.723],[0.118,-3.586],[3.529,-0.654],[3.912,-1.503],[0.258,-2.799],[2.666,-3.621],[6.371,-1.74],[-0.183,-1.853],[1.322,-4.076],[4.258,-0.479],[1.407,-2.659],[-1.374,-4.999],[2.015,-6.594],[7.358,-3.88],[0.011,-5.295],[0,0]],"v":[[168.47,147.842],[172.892,135.992],[184.314,134.937],[195.915,135.611],[203.185,127.697],[202.336,122.605],[209.757,115.984],[220.374,114.415],[227.58,104.899],[228.797,96.697],[241.534,93.832],[249.311,77.395],[249.402,71.854],[260.021,65.997],[271.274,60.989],[271.241,52.188],[269.636,36.947],[284.659,23.584],[299.994,5.52],[299.485,-10.017]],"c":false}},"nm":"Path 6","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.32,0.61,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":41.048,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60.096,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":68,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":101,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":102,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":641,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":642,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":671.048,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":690.096,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":698,"s":[0],"e":[0]},{"t":731}]},"w":{"a":0,"k":4.829},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":23.904,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":62,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":68,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":101,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":102,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":641,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":642,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":653.904,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":692,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":698,"s":[100],"e":[100]},{"t":731}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":22,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60.096,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":68,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":101,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":102,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":641,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":642,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":652,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":690.096,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":698,"s":[100],"e":[100]},{"t":731}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[312.078,177.185],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":12,"op":450,"st":22,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":4,"nm":"Fireworks_06","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-41,-125.553,0]},"a":{"a":0,"k":[312.5,177.5,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],[-5.281,4.43],[-0.914,3.014],[5.89,1.428],[1.278,-0.706],[-0.398,-2.024],[-1.595,-1.307],[-5.767,2.717],[-1.596,6.171],[3.096,3.922],[3.061,0.395],[-0.362,-3.113],[-0.844,-0.845],[-5.948,1.68],[-4.203,4.531],[-0.402,6.099],[7.253,2.417],[1.355,-3.406],[-1.315,-1.81],[-5.511,1.088],[-3.533,4.367],[0.195,7.031],[5.769,4.024],[2.472,-0.019],[1.072,-2.228],[-1.583,-1.944],[-2.424,-0.639],[-4.257,7.616],[6.316,6.022],[2.637,-1.208],[-1.496,-2.496],[-2.893,0.316],[-2.212,1.892],[-0.927,3.55],[2.473,2.71]],"o":[[6.373,2.623],[2.413,-2.024],[1.757,-5.8],[-1.419,-0.345],[-1.805,0.998],[0.397,2.024],[4.929,4.043],[5.767,-2.716],[1.252,-4.838],[-1.912,-2.422],[-3.109,-0.402],[0.138,1.187],[4.367,4.372],[5.948,-1.679],[4.157,-4.48],[0.503,-7.629],[-3.478,-1.159],[-0.826,2.079],[3.303,4.544],[5.511,-1.089],[4.423,-5.47],[-0.195,-7.031],[-2.027,-1.414],[-2.472,0.019],[-1.087,2.258],[1.582,1.944],[8.437,2.224],[4.257,-7.617],[-2.098,-2.001],[-2.645,1.213],[1.495,2.497],[2.892,-0.316],[2.788,-2.385],[0.926,-3.551],[0,0]],"v":[[155.107,26.434],[174.284,22.087],[179.759,14.55],[171.698,0.45],[167.431,0.768],[165.247,6.125],[168.605,11.174],[186.637,13.021],[198.146,-1.482],[195.964,-15.777],[188.107,-20.228],[181.374,-15.649],[183.12,-12.598],[200.404,-8.883],[215.596,-19.099],[223.786,-35.098],[211.8,-52.728],[202.231,-49.982],[203.534,-43.686],[218.597,-38.425],[232.409,-47.474],[239.401,-66.919],[230.087,-85.004],[223.214,-87.454],[217.117,-83.941],[218.253,-76.909],[224.63,-73.166],[247.016,-82.674],[243.387,-106.723],[235.556,-109.098],[233.618,-101.608],[241.18,-98.275],[248.909,-102.043],[254.954,-111.038],[252.759,-121.366]],"c":false}},"nm":"Path 7","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0,0.73,0.73,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":40,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60.001,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":66,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":99,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":100,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":639,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":640,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":670,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":690.001,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":696,"s":[0],"e":[0]},{"t":729}]},"w":{"a":0,"k":4.829},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":22,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":62,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":66,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":99,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":100,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":639,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":640,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":652,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":692,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":696,"s":[100],"e":[100]},{"t":729}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":20,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60.001,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":66,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":99,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":100,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":639,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":640,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":650,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":690.001,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":696,"s":[100],"e":[100]},{"t":729}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[312.078,177.185],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":10,"op":450,"st":20,"bm":0,"sr":1},{"ddd":0,"ind":7,"ty":4,"nm":"Fireworks_05","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-41,-125.553,0]},"a":{"a":0,"k":[312.5,177.5,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],[4.131,7.797],[-5.227,7.109],[-8.766,-1.006],[-2.056,-1.844],[1.011,-2.57],[2.071,-1.017],[11.297,8.656],[-0.667,11.76],[-11.746,0.887],[-2.541,-1.671],[0.36,-3.02],[2.745,-1.724],[12.069,6.836],[4.344,10.921],[-2.995,9.212],[-2.692,2.073],[-2.84,0.366],[-3.616,-4.508],[6.115,-4.567],[7.593,0.777],[7.683,3.722],[3.783,5.39],[0.942,5.093],[-3.631,7.488],[-8.288,0.753]],"o":[[-8.772,0.947],[-4.13,-7.797],[5.226,-7.109],[2.743,0.315],[2.056,1.843],[-0.844,2.146],[-12.773,6.277],[-9.35,-7.164],[0.667,-11.759],[3.033,-0.229],[2.541,1.671],[-0.384,3.219],[-11.744,7.379],[-10.227,-5.792],[-3.581,-9.002],[1.05,-3.231],[2.268,-1.747],[5.732,-0.739],[4.777,5.954],[-6.116,4.567],[-8.493,-0.868],[-5.926,-2.871],[-2.976,-4.239],[-1.513,-8.184],[3.631,-7.489],[0,0]],"v":[[21.947,19.676],[-0.004,7.853],[1.987,-17.173],[25.207,-27.138],[32.799,-24.171],[34.978,-16.7],[29.978,-12.152],[-10.184,-17.613],[-25.547,-47.891],[-3.824,-71.879],[4.928,-69.965],[8.88,-62.255],[3.165,-54.794],[-36.376,-57.061],[-59.814,-82.497],[-60.73,-110.966],[-55.446,-119.498],[-47.461,-122.373],[-31.596,-117.55],[-35.706,-97.459],[-57.634,-93.077],[-82.148,-100.034],[-97.524,-112.094],[-103.116,-126.461],[-100.635,-150.883],[-81.46,-165.113]],"c":false}},"nm":"Path 4","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0,0.73,0.73,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":8,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":34.667,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":51.334,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":97,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":98,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":637,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":638,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":664.667,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":681.334,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":694,"s":[0],"e":[0]},{"t":727}]},"w":{"a":0,"k":4.829},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":8,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":19.666,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":53,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":97,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":98,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":637,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":638,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":649.666,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":683,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":694,"s":[100],"e":[100]},{"t":727}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":8,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":18,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":51.334,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":97,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":98,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":637,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":638,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":648,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":681.334,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":694,"s":[100],"e":[100]},{"t":727}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[312.078,177.185],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":8,"op":450,"st":18,"bm":0,"sr":1},{"ddd":0,"ind":8,"ty":4,"nm":"Fireworks_04","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-41,-125.553,0]},"a":{"a":0,"k":[312.5,177.5,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.913,5.269],[1.635,5.641],[2.07,9.641],[-1.235,6.159],[3.608,2.85],[2.872,6.752],[1.643,6.444],[3.337,2.11],[2.014,7.467],[0.352,3.318],[3.517,3.226],[3.39,3.021],[1.953,8.137]],"o":[[-4.197,-3.313],[1.002,-5.787],[-2.745,-9.471],[-1.319,-6.142],[0.904,-4.508],[-5.759,-4.546],[-2.603,-6.119],[-0.976,-3.826],[-6.538,-4.133],[-0.869,-3.222],[-0.503,-4.746],[-3.347,-3.069],[-6.248,-5.568],[0,0]],"v":[[-57.252,23.762],[-62.715,9.49],[-58.964,-7.44],[-80.304,-26.391],[-74.597,-44.016],[-79.12,-56.32],[-97.537,-67.369],[-96.248,-86.954],[-103.868,-95.641],[-120.542,-110.88],[-121.281,-120.84],[-127.589,-133.348],[-138.641,-141.284],[-149.101,-163.655]],"c":false}},"nm":"Path 3","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.32,0.61,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":33.144,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":50.286,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":62,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":95,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":96,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":635,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":636,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":663.144,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":680.286,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":692,"s":[0],"e":[0]},{"t":725}]},"w":{"a":0,"k":4.829},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":17.714,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":52,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":62,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":95,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":96,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":635,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":636,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":647.714,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":682,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":692,"s":[100],"e":[100]},{"t":725}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":16,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":50.286,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":62,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":95,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":96,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":635,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":636,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":646,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":680.286,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":692,"s":[100],"e":[100]},{"t":725}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[312.078,177.185],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":6,"op":450,"st":16,"bm":0,"sr":1},{"ddd":0,"ind":9,"ty":4,"nm":"Fireworks_03","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-41,-125.553,0]},"a":{"a":0,"k":[312.5,177.5,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.04,1.773],[1.254,-6.169],[-0.817,-1.005],[-1.139,2.006],[1.203,1.968],[4.066,-0.354],[1.495,-3.798],[3.934,-5.435],[5.091,0.029],[3.978,-3.177],[-1.497,-5.865],[2.314,-2.52],[2.526,-0.02],[4.235,-7.851],[6.161,-3.967],[5.996,-2.631],[6.393,-6.106],[8.746,-9.115],[2.019,-2.488],[7.167,-1.468]],"o":[[-3.035,-5.515],[-6.041,-1.772],[-0.258,1.269],[1.455,1.789],[1.14,-2.005],[-2.128,-3.483],[-4.066,0.354],[-2.458,6.242],[-2.986,4.125],[-5.092,-0.03],[-4.729,3.778],[0.846,3.314],[-1.708,1.861],[-8.921,0.074],[-3.479,6.449],[-5.505,3.545],[-8.096,3.552],[-9.136,8.724],[-2.218,2.313],[-4.609,5.682],[0,0]],"v":[[-89.377,35.497],[-102.837,22.955],[-117.839,30.501],[-117.223,34.207],[-111.421,33.263],[-112.017,26.697],[-122.395,21.455],[-131.712,28.41],[-134.761,48.01],[-148.642,52.786],[-163.307,55.715],[-166.986,72.477],[-167.266,82.274],[-174.347,84.255],[-197.923,93.843],[-206.068,113.718],[-225.276,116.143],[-239.515,137.858],[-274.982,148.278],[-280.472,156.15],[-300.005,165.113]],"c":false}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.91,0.32,0.61,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":4,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":33.524,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":53.048,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":93,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":94,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":633,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":634,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":663.524,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":683.048,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":690,"s":[0],"e":[0]},{"t":723}]},"w":{"a":0,"k":4.829},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":4,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":15.952,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":55,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":93,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":94,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":633,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":634,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":645.952,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":685,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":690,"s":[100],"e":[100]},{"t":723}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":4,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":14,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":53.048,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":93,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":94,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":633,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":634,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":644,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":683.048,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":690,"s":[100],"e":[100]},{"t":723}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[312.078,177.185],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":4,"op":450,"st":14,"bm":0,"sr":1},{"ddd":0,"ind":10,"ty":4,"nm":"Fireworks_02","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-41,-125.553,0]},"a":{"a":0,"k":[312.5,177.5,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],[-7.933,14.672],[0.349,16.675],[5.473,5.656],[4.908,1.164],[4.876,-2.608],[-1.549,-5.308],[-6.55,-0.009],[-1.872,0.928],[-0.997,4.469],[2.661,12.031],[2.233,3.641],[3.652,2.818],[8.412,2.835]],"o":[[11.892,-11.695],[7.932,-14.672],[-0.166,-7.869],[-3.508,-3.625],[-5.381,-1.276],[-4.876,2.608],[1.834,6.288],[2.089,0.003],[4.103,-2.034],[2.684,-12.026],[-0.923,-4.171],[-2.412,-3.933],[-7.029,-5.423],[0,0]],"v":[[119.191,30.962],[149.872,-8.329],[162.384,-56.202],[155.159,-78.093],[141.943,-85.036],[125.763,-83.813],[119.055,-70.028],[134.91,-60.892],[141.017,-62.022],[147.861,-73.389],[147.896,-110.061],[143.478,-122.026],[133.96,-131.966],[110.582,-144.469]],"c":false}},"nm":"Path 5","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[1,0.77,0.07,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":27.715,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":43.429,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":58,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":91,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":92,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":631,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":632,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":657.715,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":673.429,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":688,"s":[0],"e":[0]},{"t":721}]},"w":{"a":0,"k":4.829},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":13.571,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":45,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":58,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":91,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":92,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":631,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":632,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":643.571,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":675,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":688,"s":[100],"e":[100]},{"t":721}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":12,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":43.429,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":58,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":91,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":92,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":631,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":632,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":642,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":673.429,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":688,"s":[100],"e":[100]},{"t":721}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[312.078,177.185],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":2,"op":450,"st":12,"bm":0,"sr":1},{"ddd":0,"ind":11,"ty":4,"nm":"Fireworks_01","parent":0,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-41,-125.553,0]},"a":{"a":0,"k":[312.5,177.5,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],[11.69,6.335],[-0.042,3.716],[-1.247,1.266],[-2.612,-1.139],[1.105,-2.627],[5.141,2.153],[1.829,8.959],[3.076,2.136],[3.312,2.666],[6.996,6.602],[3.62,1.755],[1.41,3.485],[2.977,4.448],[4.619,1.026],[4.136,2.297],[3.748,5.272],[6.456,0.411]],"o":[[-11.36,6.845],[-3.267,-1.77],[0.02,-1.777],[2,-2.029],[2.611,1.139],[-2.791,6.636],[-9.286,-3.889],[-0.75,-3.67],[-3.493,-2.425],[-7.686,-6.189],[-2.926,-2.762],[-3.383,-1.641],[-2.008,-4.961],[-2.632,-3.932],[-4.619,-1.026],[-5.656,-3.142],[-3.749,-5.273],[0,0]],"v":[[-87.104,119.435],[-125.246,120.525],[-131.776,112.185],[-129.676,107.427],[-121.832,105.665],[-118.75,112.73],[-140.586,115.83],[-152.583,96.072],[-157.893,86.484],[-169.572,81.55],[-177.838,56.291],[-188.771,51.385],[-196.302,43.331],[-200.687,27.987],[-212.76,21.213],[-226.362,17.374],[-239.172,3.039],[-254.425,-7.871]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[1,0.77,0.07,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":24.762,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39.524,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":89,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":90,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":629,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":630,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":654.762,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":669.524,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":686,"s":[0],"e":[0]},{"t":719}]},"w":{"a":0,"k":4.829},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":11.477,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":41,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":90,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":629,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":630,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":641.477,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":671,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":686,"s":[100],"e":[100]},{"t":719}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":10,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":39.524,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":90,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":629,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":630,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":640,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":669.524,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":686,"s":[100],"e":[100]},{"t":719}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[312.078,177.185],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":450,"st":10,"bm":0,"sr":1},{"ddd":0,"ind":12,"ty":4,"nm":"Fireworks","parent":0,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":53,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[0],"e":[100]},{"t":93}]},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":0,"s":[7.784,-100.71,0],"e":[7.784,99.29,0],"to":[0,33.3333320617676,0],"ti":[0,-33.3333320617676,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":56,"s":[7.784,99.29,0],"e":[7.784,99.29,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":89,"s":[7.784,99.29,0],"e":[7.784,-100.71,0],"to":[0,-33.3333320617676,0],"ti":[0,33.3333320617676,0]},{"t":90}]},"a":{"a":0,"k":[225.631,140.499,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":[[1.091,10.526],[-8.034,1.938],[-1.091,-10.526],[8.034,-1.938]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.91,0.32,0.61,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[218.951,244.775],"e":[-64.365,214.365],"to":[-47.2194023132324,-5.068359375],"ti":[47.2194023132324,5.068359375]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":50,"s":[-64.365,214.365],"e":[-64.365,214.365],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[-64.365,214.365],"e":[-64.365,214.365],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[-64.365,214.365],"e":[218.951,244.775],"to":[47.2194023132324,5.068359375],"ti":[-47.2194023132324,-5.068359375]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[-1996],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":50,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[-1996]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15.834,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":50,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"},{"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":[[10.032,-3.369],[3.65,7.414],[-10.032,3.37],[-3.65,-7.414]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.77,0.07,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[217.823,241.687],"e":[62.624,26.913],"to":[-25.8665370941162,-35.7955741882324],"ti":[25.8665370941162,35.7955741882324]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":33,"s":[62.624,26.913],"e":[62.624,26.913],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[62.624,26.913],"e":[62.624,26.913],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[62.624,26.913],"e":[217.823,241.687],"to":[25.8665370941162,35.7955741882324],"ti":[-25.8665370941162,-35.7955741882324]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[1909],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":33,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[1909]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10.45,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":33,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"mn":"ADBE Vector Group"},{"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":[[5.439,-9.079],[7.591,3.266],[-5.438,9.079],[-7.591,-3.265]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.91,0.32,0.61,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[216.419,243.707],"e":[310.345,5.738],"to":[15.654296875,-39.6614570617676],"ti":[-15.654296875,39.6614570617676]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":44,"s":[310.345,5.738],"e":[310.345,5.738],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[310.345,5.738],"e":[310.345,5.738],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[310.345,5.738],"e":[216.419,243.707],"to":[-15.654296875,39.6614570617676],"ti":[15.654296875,-39.6614570617676]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[-1082],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":44,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[-1082]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":13.934,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":44,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"mn":"ADBE Vector Group"},{"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":[[10.032,-3.369],[3.649,7.414],[-10.032,3.37],[-3.65,-7.414]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.91,0.32,0.61,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[220.852,243.393],"e":[503.969,162.999],"to":[47.1861991882324,-13.3990888595581],"ti":[-47.1861991882324,13.3990888595581]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[503.969,162.999],"e":[503.969,162.999],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[503.969,162.999],"e":[220.852,243.393],"to":[-47.1861991882324,13.3990888595581],"ti":[47.1861991882324,-13.3990888595581]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[-1636],"e":[0]},{"i":{"x":[0],"y":[0]},"o":{"x":[0.167],"y":[0.167]},"n":["0_0_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[-1636]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17.733,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"mn":"ADBE Vector Group"},{"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":[[5.635,-8.958],[7.518,3.43],[-5.635,8.958],[-7.518,-3.431]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.65,0.86,0.87,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[216.978,239.574],"e":[167.638,-20.883],"to":[-8.22330760955811,-43.4095039367676],"ti":[8.22330760955811,43.4095039367676]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":34,"s":[167.638,-20.883],"e":[167.638,-20.883],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[167.638,-20.883],"e":[167.638,-20.883],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[167.638,-20.883],"e":[216.978,239.574],"to":[8.22330760955811,43.4095039367676],"ti":[-8.22330760955811,-43.4095039367676]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[791],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[791]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10.767,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"mn":"ADBE Vector Group"},{"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":[[12.714,-4.27],[4.625,9.396],[-12.714,4.27],[-4.625,-9.396]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.77,0.07,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[216.807,247.359],"e":[306.713,-26.422],"to":[14.984375,-45.6302070617676],"ti":[-14.984375,45.6302070617676]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":35,"s":[306.713,-26.422],"e":[306.713,-26.422],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[306.713,-26.422],"e":[306.713,-26.422],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[306.713,-26.422],"e":[216.807,247.359],"to":[-14.984375,45.6302070617676],"ti":[14.984375,-45.6302070617676]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[-1349],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[-1349]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":11.084,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"mn":"ADBE Vector Group"},{"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.462,-5.529],[5.988,12.166],[-16.462,5.529],[-5.99,-12.166]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.89,0.91,0.92,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[220.337,243.096],"e":[496.388,105.69],"to":[46.0084648132324,-22.9010410308838],"ti":[-46.0084648132324,22.9010410308838]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":50,"s":[496.388,105.69],"e":[496.388,105.69],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[496.388,105.69],"e":[496.388,105.69],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[496.388,105.69],"e":[220.337,243.096],"to":[-46.0084648132324,22.9010410308838],"ti":[46.0084648132324,-22.9010410308838]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[1085],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":50,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[1085]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15.834,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":50,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"mn":"ADBE Vector Group"},{"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":[[7.21,-15.799],[12.976,3.938],[-7.209,15.799],[-12.976,-3.938]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.89,0.91,0.92,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[216.862,239.004],"e":[502.475,218.079],"to":[47.6022148132324,-3.48763012886047],"ti":[-47.6022148132324,3.48763012886047]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":28,"s":[502.475,218.079],"e":[502.475,218.079],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[502.475,218.079],"e":[502.475,218.079],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[502.475,218.079],"e":[216.862,239.004],"to":[-47.6022148132324,3.48763012886047],"ti":[47.6022148132324,-3.48763012886047]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[544],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":28,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[544]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":8.867,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":28,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"mn":"ADBE Vector Group"},{"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":[[11.889,12.659],[-8.563,10.515],[-11.889,-12.659],[8.562,-10.516]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.89,0.91,0.92,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[219.276,237.668],"e":[218.221,-27.157],"to":[-0.17578125,-44.1373710632324],"ti":[0.17578125,44.1373710632324]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":42,"s":[218.221,-27.157],"e":[218.221,-27.157],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[218.221,-27.157],"e":[218.221,-27.157],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[218.221,-27.157],"e":[219.276,237.668],"to":[0.17578125,44.1373710632324],"ti":[-0.17578125,-44.1373710632324]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[-1017],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[-1017]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":13.301,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"mn":"ADBE Vector Group"},{"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":[[11.889,12.66],[-8.562,10.516],[-11.889,-12.66],[8.562,-10.515]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.89,0.91,0.92,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[219.081,240.186],"e":[-48.224,-10.22],"to":[-44.55078125,-41.734375],"ti":[44.55078125,41.734375]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":25,"s":[-48.224,-10.22],"e":[-48.224,-10.22],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0.167,"y":0.167},"n":"0_0_0p167_0p167","t":56,"s":[-48.224,-10.22],"e":[-48.224,-10.22],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"n":"0p833_0p833_0p167_0","t":89,"s":[-48.224,-10.22],"e":[219.081,240.186],"to":[44.55078125,41.734375],"ti":[-44.55078125,-41.734375]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[1408],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p833_0p167_0"],"t":89,"s":[0],"e":[1408]},{"t":90}],"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":7.917,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[0],"e":[100]},{"t":90}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":450,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":13,"ty":1,"nm":"White Solid 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,398,0]},"a":{"a":0,"k":[400,400,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"sw":800,"sh":800,"sc":"","ip":0,"op":600,"st":0,"bm":0,"sr":1}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/static_dynamic_dash.json b/external/rlottie/example/resource/static_dynamic_dash.json new file mode 100644 index 000000000..9ebce590c --- /dev/null +++ b/external/rlottie/example/resource/static_dynamic_dash.json @@ -0,0 +1 @@ +{"v":"5.1.17","fr":29.9700012207031,"ip":0,"op":150.000006109625,"w":300,"h":300,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":20,"s":[135,135],"e":[116,116]},{"t":137.000005580124}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[24,25],"e":[57,52],"to":[5.5,4.5],"ti":[-5.5,-4.5]},{"t":129.000005254278}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[54]},{"t":149.000006068894}],"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.402888119221,0.437488675117,0.552941203117,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[100,100],"e":[50,50]},{"t":40.0000016292334}],"ix":2},"p":{"a":0,"k":[-26,-37],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145327582955,0.057777773589,0.866666674614,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":5,"ix":3},"p":{"a":0,"k":[26,-54],"ix":4},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":110,"s":[0],"e":[184]},{"t":149.000006068894}],"ix":5},"ir":{"a":0,"k":30,"ix":6},"is":{"a":0,"k":27,"ix":8},"or":{"a":0,"k":59,"ix":7},"os":{"a":0,"k":73,"ix":9},"ix":6,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.07993286103,0.716212213039,0.766274511814,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":2,"lj":1,"ml":4,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":25,"ix":1}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Stroke 2","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/telegram.json b/external/rlottie/example/resource/telegram.json new file mode 100644 index 000000000..c0bb08e3b --- /dev/null +++ b/external/rlottie/example/resource/telegram.json @@ -0,0 +1 @@ +{"v":"4.10.1","fr":29.9700012207031,"ip":0,"op":120.0000048877,"w":200,"h":320,"nm":"telegram","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"paperplane","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.953,-6.222,0],"ix":2},"a":{"a":0,"k":[-2.453,-6.222,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.132,-4.625],[0,0],[0,0],[-2.25,-2.25],[0,0],[0,0],[-5.125,0.312],[0,0],[0,0],[2.75,3.5]],"o":[[0,0],[0,0],[-0.125,4.375],[0,0],[0,0],[2.25,2.25],[0,0],[0,0],[4.243,-0.259],[0,0],[0,0],[-3.169,-4.033]],"v":[[27.125,-46.625],[-39.25,-23.5],[-44.75,-17.125],[-40.125,-10.25],[-22.625,-2.125],[-13.25,3.125],[-8,11],[0.75,29.625],[8.5,35.813],[15.125,29.25],[38.75,-36.25],[38.5,-46.375]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"logo circle","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1.5,-15,0],"ix":2},"a":{"a":0,"k":[1.5,-14.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[175,175],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.172549019608,0.647058823529,0.878431372549,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.5,-14.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"mother","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[102,239,0],"e":[102,160,0],"to":[0,-13.1666669845581,0],"ti":[0,26.3333339691162,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":6,"s":[102,160,0],"e":[102,81,0],"to":[0,-26.3333339691162,0],"ti":[0,13.1666669845581,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"n":"0p667_0p667_0p167_0p167","t":19,"s":[102,81,0],"e":[102,81,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":21,"s":[102,81,0],"e":[102,156,0],"to":[0,12.5,0],"ti":[0,-26.3333339691162,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[102,156,0],"e":[102,239,0],"to":[0,26.3333339691162,0],"ti":[0,-0.66666668653488,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":28,"s":[102,239,0],"e":[102,160,0],"to":[0,0.66666668653488,0],"ti":[0,26.3333339691162,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":34,"s":[102,160,0],"e":[102,81,0],"to":[0,-26.3333339691162,0],"ti":[0,13.1666669845581,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"n":"0p667_0p667_0p167_0p167","t":47,"s":[102,81,0],"e":[102,81,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":49,"s":[102,81,0],"e":[102,156,0],"to":[0,12.5,0],"ti":[0,-26.3333339691162,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":53,"s":[102,156,0],"e":[102,239,0],"to":[0,26.3333339691162,0],"ti":[0,-9.83333301544189,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":56,"s":[102,239,0],"e":[102,215,0],"to":[0,9.83333301544189,0],"ti":[0,4,0]},{"t":60.0000024438501}],"ix":2},"a":{"a":0,"k":[1.5,-14.5,0],"ix":1},"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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":0,"s":[100,71.429,100],"e":[82,98.966,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":6,"s":[82,98.966,100],"e":[100,77.143,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]},"n":["0p667_1_0p167_0","0p667_1_0p167_0","0p667_1_0p167_0"],"t":19,"s":[100,77.143,100],"e":[100,77.143,100]},{"i":{"x":[0.703,0.703,0.703],"y":[1,1,1]},"o":{"x":[0.185,0.185,0.185],"y":[0,0,0]},"n":["0p703_1_0p185_0","0p703_1_0p185_0","0p703_1_0p185_0"],"t":21,"s":[100,77.143,100],"e":[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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":25,"s":[100,100,100],"e":[100,71.429,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":28,"s":[100,71.429,100],"e":[82.857,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":34,"s":[82.857,100,100],"e":[100,77.143,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]},"n":["0p667_1_0p167_0","0p667_1_0p167_0","0p667_1_0p167_0"],"t":47,"s":[100,77.143,100],"e":[100,77.143,100]},{"i":{"x":[0.703,0.703,0.703],"y":[1,1,1]},"o":{"x":[0.185,0.185,0.185],"y":[0,0,0]},"n":["0p703_1_0p185_0","0p703_1_0p185_0","0p703_1_0p185_0"],"t":49,"s":[100,77.143,100],"e":[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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":53,"s":[100,100,100],"e":[100,71.429,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":56,"s":[100,71.429,100],"e":[100,100,100]},{"t":60.0000024438501}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[175,175],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.172549019608,0.647058823529,0.878431372549,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.5,-14.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"shadow","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[102,303.6,0],"ix":2},"a":{"a":0,"k":[-4,329,0],"ix":1},"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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":0,"s":[60,60,100],"e":[42,42,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":6,"s":[42,42,100],"e":[60,60,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_1_0p333_0","0p833_1_0p333_0","0p833_1_0p333_0"],"t":19,"s":[60,60,100],"e":[55,55,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]},"n":["0p667_1_0p167_0","0p667_1_0p167_0","0p667_1_0p167_0"],"t":25,"s":[55,55,100],"e":[60,60,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":28,"s":[60,60,100],"e":[42,42,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]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":34,"s":[42,42,100],"e":[60,60,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_1_0p333_0","0p833_1_0p333_0","0p833_1_0p333_0"],"t":47,"s":[60,60,100],"e":[55,55,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]},"n":["0p667_1_0p167_0","0p667_1_0p167_0","0p667_1_0p167_0"],"t":53,"s":[55,55,100],"e":[60,60,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"n":["0p833_1_0p167_0","0p833_1_0p167_0","0p833_1_0p167_0"],"t":56,"s":[60,60,100],"e":[55,55,100]},{"t":60.0000024438501}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[380,26],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.933333333333,0.933333333333,0.933333333333,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-4,329],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[74.737,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/test/repro_infinite_loop.json b/external/rlottie/example/resource/test/repro_infinite_loop.json new file mode 100644 index 000000000..d31293cce --- /dev/null +++ b/external/rlottie/example/resource/test/repro_infinite_loop.json @@ -0,0 +1 @@ +{"v":"5.1.16","fr":15,"ip":0,"op":51,"w":500,"h":500,"nm":"El 28","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Circle Abstract","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":49,"s":[100],"e":[0]},{"t":51}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.316,250.684,0],"ix":2},"a":{"a":0,"k":[280,0,0],"ix":1},"s":{"a":0,"k":[225,225,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[145,145],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"A - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.1901,0.8897,0.972549019608,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.583]},"o":{"x":[0.01],"y":[0.006]},"n":["0p833_0p583_0p01_0p006"],"t":22.2,"s":[3],"e":[0]},{"t":49.2001953125}],"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[236,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.99,0.99],"y":[0.997,0.997]},"o":{"x":[1,1],"y":[1,1]},"n":["0p99_0p997_1_1","0p99_0p997_1_1"],"t":0,"s":[0,0],"e":[50,50]},{"i":{"x":[0.833,0.833],"y":[0.676,0.676]},"o":{"x":[0.01,0.01],"y":[0.043,0.043]},"n":["0p833_0p676_0p01_0p043","0pp043"],"t":6,"s":[50,50],"e":[75,75]},{"t":49.20}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"rp","c":{"a":1,"k":[{"i":{"x":[0.99],"y":[0.985]},"o":{"x":[1],"y":[2.692]},"n":["0p99_0p985_1_2p692"],"t":0,"s":[0],"e":[18]},{"i":{"x":[0.833],"y":[0.288]},"o":{"x":[0.01],"y":[-0.02]},"n":["0p833_0p288_0p01_-0p02"],"t":21,"s":[18],"e":[0]},{"t":49.2001953125}],"ix":1},"o":{"a":0,"k":5,"ix":2},"m":1,"ix":2,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[280,0],"ix":1},"s":{"a":0,"k":[900,100],"ix":3},"r":{"a":0,"k":20,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false}],"ip":0,"op":51,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/test/repro_propertyhelper_type_confusion1.json b/external/rlottie/example/resource/test/repro_propertyhelper_type_confusion1.json new file mode 100644 index 000000000..283f4011e --- /dev/null +++ b/external/rlottie/example/resource/test/repro_propertyhelper_type_confusion1.json @@ -0,0 +1,356 @@ +{ + "v": "5.1.17", + "fr": 29.9700012207031, + "ip": 0, + "op": 150.000006109625, + "w": 300, + "h": 300, + "nm": "Comp 1", + "ddd": 0, + "assets": [], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": [{"t": 24}], + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 152, + 152, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "sr", + "sy": 1, + "d": 2, + "pt": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 0, + "s": [ + 5 + ], + "e": [ + 11 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 90, + "s": [ + 11 + ], + "e": [ + 15 + ] + }, + { + "t": 146.000005946702 + } + ], + "ix": 3 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 4 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 0, + "s": [ + 0 + ], + "e": [ + 64 + ] + }, + { + "t": 90.0000036657751 + } + ], + "ix": 5 + }, + "ir": { + "a": 0, + "k": 106, + "ix": 6 + }, + "is": { + "a": 0, + "k": 231, + "ix": 8 + }, + "or": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 0, + "s": [ + 102 + ], + "e": [ + 142 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 90, + "s": [ + 142 + ], + "e": [ + 34 + ] + }, + { + "t": 146.000005946702 + } + ], + "ix": 7 + }, + "os": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 0, + "s": [ + 79 + ], + "e": [ + 265 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 90, + "s": [ + 265 + ], + "e": [ + 88 + ] + }, + { + "t": 146.000005946702 + } + ], + "ix": 9 + }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 2, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "nm": "Stroke 2", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 0, + "op": 150.000006109625, + "st": 0, + "bm": 0 + } + ], + "markers": [] +} \ No newline at end of file diff --git a/external/rlottie/example/resource/test/repro_propertyhelper_type_confusion2.json b/external/rlottie/example/resource/test/repro_propertyhelper_type_confusion2.json new file mode 100644 index 000000000..6e4c223ff --- /dev/null +++ b/external/rlottie/example/resource/test/repro_propertyhelper_type_confusion2.json @@ -0,0 +1,355 @@ +{ + "v": "5.1.17", + "fr": 29.9700012207031, + "ip": 0, + "op": 150.000006109625, + "w": 300, + "h": 300, + "nm": "Comp 1", + "ddd": 0, + "assets": [], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": [{"t": 24}, 239, 239, 239], + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 152, + 152, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "sr", + "sy": 1, + "d": 2, + "pt": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 0, + "s": [ + 5 + ], + "e": [ + 11 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 90, + "s": [ + 11 + ], + "e": [ + 15 + ] + }, + { + "t": 146.000005946702 + } + ], + "ix": 3 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 4 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 0, + "s": [ + 0 + ], + "e": [ + 64 + ] + }, + { + "t": 90.0000036657751 + } + ], + "ix": 5 + }, + "ir": { + "a": 0, + "k": 106, + "ix": 6 + }, + "is": { + "a": 0, + "k": 231, + "ix": 8 + }, + "or": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 0, + "s": [ + 102 + ], + "e": [ + 142 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 90, + "s": [ + 142 + ], + "e": [ + 34 + ] + }, + { + "t": 146.000005946702 + } + ], + "ix": 7 + }, + "os": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 0, + "s": [ + 79 + ], + "e": [ + 265 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167" + ], + "t": 90, + "s": [ + 265 + ], + "e": [ + 88 + ] + }, + { + "t": 146.000005946702 + } + ], + "ix": 9 + }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 2, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "nm": "Stroke 2", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 0, + "op": 150.000006109625, + "st": 0, + "bm": 0 + } + ], + "markers": [] +} \ No newline at end of file diff --git a/external/rlottie/example/resource/test/repro_sbof.json b/external/rlottie/example/resource/test/repro_sbof.json new file mode 100644 index 000000000..6e6b7749c --- /dev/null +++ b/external/rlottie/example/resource/test/repro_sbof.json @@ -0,0 +1 @@ +{"v":"5.1.8","fr":23.97547,"ip":0,"op":29140721,"w":300,"h":300,"nm":"Syroto_Loader","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-180],"e":[180]},{"t":239.9974}],"ix":10},"p":{"a":0,"k":[150.125,150,0],"ix":2},"a":{"a":0,"k":[533,533,0],"ix":1},"s":{"a":0,"k":[16E16,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[65.74,-27.805],[48.897,-48.895],[26.837,-63.449],[0,-71.877],[-27.805,-65.739],[-48.894,-48.896],[-63.449,-26.837],[-71.878,0],[-65.739,27.805],[-48.895,48.895],[-26.837,63.449],[0,71.878],[27.805,65.739],[48.896,48.896],[63.449,26.837],[71.877,0]],"o":[[-63.449,26.837],[-48.894,48.896],[-27.805,65.739],[0,71.878],[26.837,63.449],[48.897,48.895],[65.74,27.805],[71.877,0],[63.449,-26.837],[48.896,-48.896],[27.805,-65.739],[0,-71.877],[-26.837,-63.449],[-48.895,-48.895],[-65.739,-27.805],[-71.878,0]],"v":[[-207.395,-490.833],[-376.703,-376.703],[-490.833,-207.394],[-532.735,0],[-490.833,207.393],[-376.703,376.702],[-207.395,490.833],[0,532.735],[207.394,490.833],[376.702,376.702],[490.833,207.393],[532.738,0],[490.833,-207.394],[376.702,-376.703],[207.394,-490.833],[0,-532.738]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Voup","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[65.201,65.2],[0,92.206],[-65.199,65.2],[-92.207,0],[-65.2,-65.2],[0,-92.206],[65.2,-65.201],[92.206,0]],"o":[[-65.199,-65.201],[0,-92.206],[65.201,-65.2],[92.206,0],[65.2,65.2],[0,92.206],[-65.2,65.2],[-92.207,0]],"v":[[-244.095,244.094],[-345.202,0],[-244.095,-244.094],[0,-345.202],[244.095,-244.094],[345.202,0],[244.095,244.094],[0,345.202]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.133,0.063,0.282,0.5,0.386,0.257,0.459,1,0.639,0.451,0.635],"ix":9}},"s":{"a":0,"k":[661,0],"ix":5},"e":{"a":0,"k":[-690,0],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[533,533],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720.5269,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[180],"e":[-180]},{"t":239.9274}],"ix":10},"p":{"a":0,"k":[150.125,150,0],"ix":2},"a":{"a":0,"k":[726,726,0],"ix":1},"s":{"a":0,"k":[16,16,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-400.378],[-400.379,0],[0,400.378],[400.378,0]],"o":[[0,400.378],[400.378,0],[0,-400.378],[-400.379,0]],"v":[[-724.948,0],[0,724.949],[724.948,0],[0,-724.949]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.133,0.063,0.282,0.5,0.386,0.257,0.459,1,0.639,0.451,0.635],"ix":9}},"s":{"a":0,"k":[200,0],"ix":5},"e":{"a":0,"k":[-608,0],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":false},{"ty":"tr","p":{"a":0,"k":[726,726],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":180,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":72095269,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/test/repro_shapeproperty_type_confusion1.json b/external/rlottie/example/resource/test/repro_shapeproperty_type_confusion1.json new file mode 100644 index 000000000..02b4a3f2a --- /dev/null +++ b/external/rlottie/example/resource/test/repro_shapeproperty_type_confusion1.json @@ -0,0 +1,8681 @@ +{ + "v": "4.10.2", + "fr": 30, + "ip": 0, + "op": 58, + "w": 800, + "h": 800, + "nm": "Fancy 2", + "ddd": 0, + "assets": [], + "layers": [ + { + "ddd": 0, + "ind": 2, + "ty": 3, + "nm": "GLOBAL", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 0, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 54, + 551, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Hat Outlines", + "parent": 9, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.158, + "y": 1 + }, + "o": { + "x": 0.075, + "y": 0.312 + }, + "n": "0p158_1_0p075_0p312", + "t": 14, + "s": [ + 555.632, + 379.901, + 0 + ], + "e": [ + 568.441, + 362.019, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.842, + "y": 1 + }, + "o": { + "x": 1, + "y": 0 + }, + "n": "0p842_1_1_0", + "t": 29, + "s": [ + 568.441, + 362.019, + 0 + ], + "e": [ + 555.632, + 379.901, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "t": 34 + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 555.632, + 379.901, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": [{"t": 239}], + "k": { + "i": [ + [ + 1.296, + 0.995 + ], + [ + 0, + 0 + ], + [ + 0.995, + -1.296 + ], + [ + -1.296, + -0.995 + ], + [ + 0, + 0 + ], + [ + -0.995, + 1.296 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -1.296, + -0.995 + ], + [ + -0.996, + 1.297 + ], + [ + 0, + 0 + ], + [ + 1.297, + 0.995 + ], + [ + 0.995, + -1.296 + ] + ], + "v": [ + [ + 28.034, + 17.79 + ], + [ + -24.43, + -22.485 + ], + [ + -28.578, + -21.94 + ], + [ + -28.033, + -17.791 + ], + [ + 24.43, + 22.484 + ], + [ + 28.578, + 21.939 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 555.56, + 383.074 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 4.026, + 3.091 + ], + [ + 0, + 0 + ], + [ + 3.091, + -4.026 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -4.026, + -3.091 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 3.091, + -4.026 + ] + ], + "v": [ + [ + 19.117, + -2.46 + ], + [ + -2.198, + -18.822 + ], + [ + -15.085, + -17.129 + ], + [ + -23.902, + -5.643 + ], + [ + 11.993, + 21.914 + ], + [ + 20.811, + 10.428 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 562.183, + 374.355 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 2, + "cix": 2, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Tie Outlines", + "parent": 8, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 502.404, + 453, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 502.404, + 453, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0.852, + 0.654 + ], + [ + 0, + 0 + ], + [ + 0.654, + -0.852 + ], + [ + 0, + 0 + ], + [ + -0.852, + -0.654 + ], + [ + 0, + 0 + ], + [ + -0.654, + 0.852 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -0.852, + -0.654 + ], + [ + 0, + 0 + ], + [ + -0.654, + 0.852 + ], + [ + 0, + 0 + ], + [ + 0.852, + 0.654 + ], + [ + 0, + 0 + ], + [ + 0.654, + -0.852 + ] + ], + "v": [ + [ + 6.301, + -1.525 + ], + [ + -0.156, + -6.48 + ], + [ + -2.893, + -6.12 + ], + [ + -6.661, + -1.214 + ], + [ + -6.301, + 1.525 + ], + [ + 0.155, + 6.48 + ], + [ + 2.893, + 6.121 + ], + [ + 6.66, + 1.215 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 501.763, + 453.567 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -0.864, + 1.125 + ], + [ + 0, + 0 + ], + [ + 1.467, + 0.227 + ], + [ + 0, + 0 + ], + [ + -0.761, + -1.42 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0.904, + -1.178 + ], + [ + 0, + 0 + ], + [ + -1.592, + -0.246 + ], + [ + 0, + 0 + ], + [ + 0.67, + 1.25 + ] + ], + "v": [ + [ + 0.98, + 7.35 + ], + [ + 8.825, + -2.868 + ], + [ + 7.574, + -5.988 + ], + [ + -6.948, + -8.229 + ], + [ + -8.967, + -5.376 + ], + [ + -2.291, + 7.083 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 512.737, + 462.455 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 2, + "cix": 2, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -0.864, + 1.125 + ], + [ + 0, + 0 + ], + [ + -0.598, + -1.359 + ], + [ + 0, + 0 + ], + [ + 1.568, + 0.368 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0.904, + -1.178 + ], + [ + 0, + 0 + ], + [ + 0.649, + 1.474 + ], + [ + 0, + 0 + ], + [ + -1.381, + -0.324 + ] + ], + "v": [ + [ + -8.442, + 2.354 + ], + [ + -0.597, + -7.865 + ], + [ + 2.74, + -7.462 + ], + [ + 8.657, + 5.987 + ], + [ + 6.423, + 8.675 + ], + [ + -7.339, + 5.445 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 491.688, + 444.06 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 3", + "np": 2, + "cix": 2, + "ix": 3, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Legs Right", + "parent": 9, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 411.027, + 495.735, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 411.027, + 495.735, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -4.8, + -3.743 + ], + [ + -3.758, + 4.746 + ] + ], + "o": [ + [ + -3.743, + 4.8 + ], + [ + 4.774, + 3.723 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -6.793, + -9.596 + ], + [ + -4.88, + 5.873 + ], + [ + 10.536, + 4.028 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 410.821, + 497.93 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 2, + "cix": 2, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Legs Left", + "parent": 9, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 483.024, + 549.985, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 483.024, + 549.985, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -4.8, + -3.743 + ], + [ + -3.758, + 4.746 + ] + ], + "o": [ + [ + -3.743, + 4.8 + ], + [ + 4.774, + 3.723 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -6.793, + -9.596 + ], + [ + -4.88, + 5.873 + ], + [ + 10.536, + 4.028 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 481.814, + 552.431 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 4, + "nm": "Eyes", + "parent": 9, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 528.919, + 419.966, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 528.919, + 419.966, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "hasMask": true, + "masksProperties": [ + { + "inv": false, + "mode": "a", + "pt": { + "a": 1, + "k": [ + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "n": "0p833_0p833_0p167_0p167", + "t": 19, + "s": [ + { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 498.824, + 384.003 + ], + [ + 487.435, + 399.044 + ], + [ + 565.432, + 458.108 + ], + [ + 576.822, + 443.068 + ] + ], + "c": true + } + ], + "e": [ + { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 493.78, + 392.277 + ], + [ + 491.988, + 393.65 + ], + [ + 566.012, + 450.516 + ], + [ + 567.804, + 449.143 + ] + ], + "c": true + } + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "n": "0p833_0p833_0p167_0p167", + "t": 22, + "s": [ + { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 493.78, + 392.277 + ], + [ + 491.988, + 393.65 + ], + [ + 566.012, + 450.516 + ], + [ + 567.804, + 449.143 + ] + ], + "c": true + } + ], + "e": [ + { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 498.824, + 384.003 + ], + [ + 487.435, + 399.044 + ], + [ + 565.432, + 458.108 + ], + [ + 576.822, + 443.068 + ] + ], + "c": true + } + ] + }, + { + "t": 25 + } + ], + "ix": 1 + }, + "o": { + "a": 0, + "k": 100, + "ix": 3 + }, + "x": { + "a": 0, + "k": 0, + "ix": 4 + }, + "nm": "Mask 1" + } + ], + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -2.335, + 3.042 + ], + [ + 3.043, + 2.335 + ], + [ + 2.336, + -3.042 + ], + [ + -3.042, + -2.336 + ] + ], + "o": [ + [ + 2.336, + -3.042 + ], + [ + -3.042, + -2.336 + ], + [ + -2.335, + 3.043 + ], + [ + 3.042, + 2.335 + ] + ], + "v": [ + [ + 5.508, + 4.229 + ], + [ + 4.228, + -5.508 + ], + [ + -5.509, + -4.229 + ], + [ + -4.229, + 5.509 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 556.462, + 441.11 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -2.335, + 3.042 + ], + [ + 3.043, + 2.335 + ], + [ + 2.336, + -3.042 + ], + [ + -3.042, + -2.336 + ] + ], + "o": [ + [ + 2.335, + -3.042 + ], + [ + -3.042, + -2.336 + ], + [ + -2.335, + 3.043 + ], + [ + 3.042, + 2.335 + ] + ], + "v": [ + [ + 5.509, + 4.229 + ], + [ + 4.228, + -5.508 + ], + [ + -5.509, + -4.229 + ], + [ + -4.229, + 5.509 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 501.377, + 398.823 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 2, + "cix": 2, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "belly", + "parent": 9, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 499.737, + 455.46, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 499.737, + 455.46, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -8.652, + -6.643 + ], + [ + 6.642, + -8.652 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 6.642, + -8.652 + ], + [ + 8.652, + 6.642 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -0.947, + -30.385 + ], + [ + 26.746, + -34.023 + ], + [ + 30.385, + -6.332 + ], + [ + -5.695, + 40.667 + ], + [ + -37.027, + 16.613 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 540.039, + 460.227 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 4", + "np": 2, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -8.652, + -6.642 + ], + [ + 6.642, + -8.652 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 6.642, + -8.652 + ], + [ + 8.652, + 6.642 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -0.947, + -30.385 + ], + [ + 26.746, + -34.024 + ], + [ + 30.385, + -6.332 + ], + [ + -5.695, + 40.666 + ], + [ + -37.027, + 16.613 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 483.324, + 416.688 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 5", + "np": 2, + "cix": 2, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -1.347, + 9.496 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -13.318, + -10.225 + ], + [ + 0, + 0 + ], + [ + -10.132, + 13.198 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -10.132, + 13.199 + ], + [ + 0, + 0 + ], + [ + 13.318, + 10.224 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -8.762, + 3.9 + ] + ], + "v": [ + [ + 11.966, + -28.935 + ], + [ + 18.368, + -74.081 + ], + [ + -15.857, + -70.098 + ], + [ + -62.668, + -9.121 + ], + [ + -56.898, + 33.289 + ], + [ + -17.082, + 63.857 + ], + [ + 25.379, + 58.471 + ], + [ + 72.799, + -3.298 + ], + [ + 70.701, + -34.535 + ], + [ + 29.089, + -16.01 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 493.819, + 462.152 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 7", + "np": 2, + "cix": 2, + "ix": 3, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 4, + "nm": "Body", + "parent": 14, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.37 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.45 + ], + "y": [ + 0 + ] + }, + "n": [ + "0p37_1_0p45_0" + ], + "t": 0, + "s": [ + 50 + ], + "e": [ + -14.62 + ] + }, + { + "i": { + "x": [ + 0.674 + ], + "y": [ + -0.319 + ] + }, + "o": { + "x": [ + 0.341 + ], + "y": [ + 0 + ] + }, + "n": [ + "0p674_-0p319_0p341_0" + ], + "t": 19, + "s": [ + -14.62 + ], + "e": [ + -14.418 + ] + }, + { + "i": { + "x": [ + 0.56 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.64 + ], + "y": [ + 0.067 + ] + }, + "n": [ + "0p56_1_0p64_0p067" + ], + "t": 23, + "s": [ + -14.418 + ], + "e": [ + 50 + ] + }, + { + "t": 56 + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 459.201, + 356.344, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 449.08, + 358.479, + 0 + ], + "ix": 1 + }, + "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 + ] + }, + "n": [ + "0p833_0p833_0p167_0p167", + "0p833_0p833_0p167_0p167", + "0p833_0p833_0p167_0p167" + ], + "t": 6, + "s": [ + 100, + 100, + 100 + ], + "e": [ + 131, + 78, + 100 + ] + }, + { + "i": { + "x": [ + 0.27, + 0.27, + 0.27 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0 + ] + }, + "n": [ + "0p27_1_0p167_0p167", + "0p27_1_0p167_0p167", + "0p27_1_0p167_0" + ], + "t": 10, + "s": [ + 131, + 78, + 100 + ], + "e": [ + 100, + 100, + 100 + ] + }, + { + "t": 17 + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -5.465, + 7.119 + ], + [ + 7.118, + 5.465 + ], + [ + 5.465, + -7.118 + ], + [ + -7.119, + -5.465 + ] + ], + "o": [ + [ + 5.465, + -7.119 + ], + [ + -7.119, + -5.465 + ], + [ + -5.466, + 7.119 + ], + [ + 7.119, + 5.465 + ] + ], + "v": [ + [ + 12.89, + 9.896 + ], + [ + 9.896, + -12.889 + ], + [ + -12.889, + -9.895 + ], + [ + -9.895, + 12.89 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.952999997606, + 0.808000033509, + 0.395999983245, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 555.002, + 442.372 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -1.92, + 1.1 + ], + [ + -3.672, + -2.82 + ], + [ + 1.116, + -4.212 + ], + [ + 1.755, + 1.347 + ] + ], + "o": [ + [ + -1.755, + -1.348 + ], + [ + 3.781, + -2.167 + ], + [ + 3.673, + 2.82 + ], + [ + -0.567, + 2.139 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -7.978, + -1.473 + ], + [ + -7.691, + -6.658 + ], + [ + 4.632, + -5.83 + ], + [ + 8.617, + 5.861 + ], + [ + 3.682, + 7.478 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 521.655, + 428.655 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 2, + "cix": 2, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 1.126, + -0.646 + ], + [ + 2.156, + 1.654 + ], + [ + -0.656, + 2.472 + ], + [ + -1.03, + -0.791 + ] + ], + "o": [ + [ + 1.03, + 0.791 + ], + [ + -2.219, + 1.271 + ], + [ + -2.155, + -1.655 + ], + [ + 0.332, + -1.255 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 4.682, + 0.864 + ], + [ + 4.513, + 3.908 + ], + [ + -2.719, + 3.421 + ], + [ + -5.056, + -3.44 + ], + [ + -2.161, + -4.388 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 519.534, + 432.603 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 3", + "np": 2, + "cix": 2, + "ix": 3, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -8.652, + -6.643 + ], + [ + 6.642, + -8.652 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 6.642, + -8.652 + ], + [ + 8.652, + 6.642 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -0.947, + -30.385 + ], + [ + 26.746, + -34.023 + ], + [ + 30.385, + -6.332 + ], + [ + -5.695, + 40.667 + ], + [ + -37.027, + 16.613 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 540.039, + 460.227 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 4", + "np": 2, + "cix": 2, + "ix": 4, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -8.652, + -6.642 + ], + [ + 6.642, + -8.652 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 6.642, + -8.652 + ], + [ + 8.652, + 6.642 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -0.947, + -30.385 + ], + [ + 26.746, + -34.024 + ], + [ + 30.385, + -6.332 + ], + [ + -5.695, + 40.666 + ], + [ + -37.027, + 16.613 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 483.324, + 416.688 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 5", + "np": 2, + "cix": 2, + "ix": 5, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 7.01, + 5.381 + ], + [ + -5.087, + 6.626 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + -5.087, + 6.626 + ], + [ + -7.009, + -5.381 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 1.419, + 23.922 + ], + [ + -20.483, + 26.176 + ], + [ + -23.964, + 4.436 + ], + [ + 3.667, + -31.556 + ], + [ + 29.05, + -12.07 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 527.549, + 419.108 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 6", + "np": 2, + "cix": 2, + "ix": 6, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -1.347, + 9.496 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -13.318, + -10.225 + ], + [ + 0, + 0 + ], + [ + -10.132, + 13.198 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -10.132, + 13.199 + ], + [ + 0, + 0 + ], + [ + 13.318, + 10.224 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -8.762, + 3.9 + ] + ], + "v": [ + [ + 11.966, + -28.935 + ], + [ + 18.368, + -74.081 + ], + [ + -15.857, + -70.098 + ], + [ + -62.668, + -9.121 + ], + [ + -56.898, + 33.289 + ], + [ + -17.082, + 63.857 + ], + [ + 25.379, + 58.471 + ], + [ + 72.799, + -3.298 + ], + [ + 70.701, + -34.535 + ], + [ + 29.089, + -16.01 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 493.819, + 462.152 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 7", + "np": 2, + "cix": 2, + "ix": 7, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 35.29, + 27.092 + ], + [ + 0, + 0 + ], + [ + 27.092, + -35.29 + ], + [ + 0, + 0 + ], + [ + -14.019, + -10.762 + ], + [ + 0, + 0 + ], + [ + -10.762, + 14.018 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -35.29, + -27.092 + ], + [ + 0, + 0 + ], + [ + -10.762, + 14.018 + ], + [ + 0, + 0 + ], + [ + 14.018, + 10.761 + ], + [ + 0, + 0 + ], + [ + 27.092, + -35.289 + ] + ], + "v": [ + [ + 61.762, + -78.449 + ], + [ + 61.762, + -78.449 + ], + [ + -51.19, + -63.604 + ], + [ + -92.936, + -9.225 + ], + [ + -87.039, + 35.645 + ], + [ + -10.009, + 94.779 + ], + [ + 34.86, + 88.882 + ], + [ + 76.606, + 34.503 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 442.313, + 523.242 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + -52.793, + 64.655 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 8", + "np": 2, + "cix": 2, + "ix": 8, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 4, + "nm": "Glass Outlines", + "parent": 11, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 601.505, + 484.344, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 601.505, + 484.344, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 8.306, + -5.957 + ], + [ + -6.185, + 0.826 + ], + [ + -8.305, + -3.702 + ], + [ + -3.784, + 5.958 + ] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 2, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 592.294, + 492.253 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -0.586, + -1.251 + ], + [ + 0, + 0 + ], + [ + 1.347, + 0.192 + ], + [ + 0, + 0 + ], + [ + -0.612, + 1.05 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0.577, + 1.232 + ], + [ + 0, + 0 + ], + [ + -1.204, + -0.171 + ], + [ + 0, + 0 + ], + [ + 0.695, + -1.194 + ] + ], + "v": [ + [ + 1.794, + -8.294 + ], + [ + 8.957, + 7.011 + ], + [ + 7.165, + 9.432 + ], + [ + -7.684, + 7.32 + ], + [ + -8.922, + 4.763 + ], + [ + -1.237, + -8.43 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 2, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 609.898, + 479.757 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 3, + "cix": 2, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 4, + "nm": "Arm R Outlines", + "parent": 8, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.41 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.59 + ], + "y": [ + 0 + ] + }, + "n": [ + "0p41_1_0p59_0" + ], + "t": 0, + "s": [ + 38 + ], + "e": [ + -42 + ] + }, + { + "i": { + "x": [ + 0.41 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.59 + ], + "y": [ + 0 + ] + }, + "n": [ + "0p41_1_0p59_0" + ], + "t": 28, + "s": [ + -42 + ], + "e": [ + 38 + ] + }, + { + "t": 53 + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 575.043, + 479.064, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 575.043, + 479.064, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 22.26, + 22.26 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 4, + -5 + ], + "ix": 3 + }, + "nm": "Ellipse Path 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.117646998985, + 0.121569001441, + 0.333332974303, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 0, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 570.715, + 484.126 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Ellipse 1", + "np": 3, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -0.105, + 0.259 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -2.281, + 5.643 + ], + [ + 5.595, + 2.31 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 5.644, + 2.281 + ], + [ + 2.269, + -5.613 + ], + [ + -6.747, + -2.786 + ] + ], + "v": [ + [ + -7.052, + -14.471 + ], + [ + -15.484, + 6.389 + ], + [ + -1.134, + 12.19 + ], + [ + 13.215, + 6.102 + ], + [ + 7.208, + -8.214 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 585.274, + 482.801 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 4, + "nm": "Arm L Outlines", + "parent": 8, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 460.434, + 386.251, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 460.434, + 386.251, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0.265, + -0.087 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 5.784, + -1.897 + ], + [ + -1.843, + -5.766 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -1.897, + -5.784 + ], + [ + -5.752, + 1.886 + ], + [ + 2.223, + 6.953 + ] + ], + "v": [ + [ + -7.56, + 15.327 + ], + [ + 13.819, + 8.316 + ], + [ + 8.996, + -6.392 + ], + [ + -4.91, + -13.43 + ], + [ + -11.977, + 0.394 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0, + 0, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 452.776, + 378.078 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "chandelier base", + "parent": 2, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 344.204, + -453.167, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 445.204, + 67.833, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 10.771, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 10.771 + ], + [ + 0, + 0 + ], + [ + -4.486, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -4.486 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -10.771, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -4.486 + ], + [ + 0, + 0 + ], + [ + 4.486, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 10.771 + ] + ], + "v": [ + [ + 14.55, + 16.216 + ], + [ + -14.55, + 16.216 + ], + [ + -34.053, + -3.287 + ], + [ + -34.053, + -8.093 + ], + [ + -25.931, + -16.216 + ], + [ + 25.931, + -16.216 + ], + [ + 34.053, + -8.093 + ], + [ + 34.053, + -3.287 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 448.062, + 70.049 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 16", + "np": 2, + "cix": 2, + "ix": 16, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 4.689, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 4.69 + ], + [ + 0, + 0 + ], + [ + -1.953, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1.953 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -4.689, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1.953 + ], + [ + 0, + 0 + ], + [ + 1.953, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 4.69 + ] + ], + "v": [ + [ + 6.334, + 7.059 + ], + [ + -6.335, + 7.059 + ], + [ + -14.825, + -1.431 + ], + [ + -14.825, + -3.523 + ], + [ + -11.289, + -7.059 + ], + [ + 11.289, + -7.059 + ], + [ + 14.825, + -3.523 + ], + [ + 14.825, + -1.431 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 448.063, + 90.319 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 17", + "np": 2, + "cix": 2, + "ix": 17, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "chandelier bottom 2", + "parent": 2, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.16 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.57 + ], + "y": [ + 0 + ] + }, + "n": [ + "0p16_1_0p57_0" + ], + "t": 3, + "s": [ + 22 + ], + "e": [ + -22 + ] + }, + { + "i": { + "x": [ + 0.16 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.57 + ], + "y": [ + 0 + ] + }, + "n": [ + "0p16_1_0p57_0" + ], + "t": 21.473, + "s": [ + -22 + ], + "e": [ + -21.933 + ] + }, + { + "i": { + "x": [ + 0.16 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.57 + ], + "y": [ + 0 + ] + }, + "n": [ + "0p16_1_0p57_0" + ], + "t": 26, + "s": [ + -21.933 + ], + "e": [ + 22 + ] + }, + { + "t": 55 + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 346.204, + -429.167, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 445.992, + 91.903, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -7.487, + -12.331 + ], + [ + 7.486, + -12.331 + ], + [ + 7.486, + 12.331 + ], + [ + -7.487, + 12.331 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3.523, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 366.388, + 306.969 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -5.393, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 5.392 + ], + [ + 0, + 0 + ], + [ + 2.246, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -2.245 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 5.392, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -2.245 + ], + [ + 0, + 0 + ], + [ + -2.246, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 5.392 + ] + ], + "v": [ + [ + -7.284, + 8.118 + ], + [ + 7.285, + 8.118 + ], + [ + 17.048, + -1.645 + ], + [ + 17.048, + -4.052 + ], + [ + 12.983, + -8.118 + ], + [ + -12.983, + -8.118 + ], + [ + -17.048, + -4.052 + ], + [ + -17.048, + -1.645 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 366.914, + 315.483 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 2, + "cix": 2, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 7.093, + -12.691 + ], + [ + 0.261, + -4.766 + ], + [ + 0, + 0 + ], + [ + 1.729, + -3.557 + ], + [ + 4.702, + 22.165 + ] + ], + "o": [ + [ + -7.974, + -14.081 + ], + [ + -2.124, + 3.8 + ], + [ + 0, + 0 + ], + [ + -0.232, + 4.257 + ], + [ + -8.24, + 16.946 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 36.922, + -47.763 + ], + [ + 6.956, + -47.724 + ], + [ + 3.435, + -34.5 + ], + [ + -0.245, + 32.901 + ], + [ + -3.113, + 44.897 + ], + [ + -36.922, + 37.465 + ] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 2.776, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 404.283, + 275.725 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 3", + "np": 2, + "cix": 2, + "ix": 3, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 10.727, + -12.691 + ], + [ + 0.393, + -4.766 + ], + [ + 0, + 0 + ], + [ + 2.616, + -3.556 + ], + [ + 7.111, + 22.164 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -12.059, + -14.08 + ], + [ + -3.212, + 3.8 + ], + [ + 0, + 0 + ], + [ + -0.351, + 4.256 + ], + [ + -12.461, + 16.947 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 60.66, + -36.493 + ], + [ + 51.008, + -47.764 + ], + [ + 5.693, + -47.725 + ], + [ + 0.37, + -34.501 + ], + [ + -5.196, + 32.9 + ], + [ + -9.535, + 44.896 + ], + [ + -60.66, + 37.464 + ] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3.414, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 388.878, + 273.833 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 4", + "np": 2, + "cix": 2, + "ix": 4, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -5.311, + -8.748 + ], + [ + 5.311, + -8.748 + ], + [ + 5.311, + 8.748 + ], + [ + -5.311, + 8.748 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 2.499, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 328.433, + 304.094 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 5", + "np": 2, + "cix": 2, + "ix": 5, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + -3.826, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 3.826 + ], + [ + 0, + 0 + ], + [ + 1.593, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1.593 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 3.825, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1.593 + ], + [ + 0, + 0 + ], + [ + -1.594, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 3.826 + ] + ], + "v": [ + [ + -5.168, + 5.759 + ], + [ + 5.168, + 5.759 + ], + [ + 12.095, + -1.167 + ], + [ + 12.095, + -2.874 + ], + [ + 9.21, + -5.759 + ], + [ + -9.21, + -5.759 + ], + [ + -12.095, + -2.874 + ], + [ + -12.095, + -1.167 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 328.807, + 310.135 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 6", + "np": 2, + "cix": 2, + "ix": 6, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 7.487, + -12.331 + ], + [ + -7.487, + -12.331 + ], + [ + -7.487, + 12.331 + ], + [ + 7.487, + 12.331 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3.523, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 532.021, + 305.346 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 7", + "np": 2, + "cix": 2, + "ix": 7, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 5.393, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 5.392 + ], + [ + 0, + 0 + ], + [ + -2.246, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -2.245 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -5.392, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -2.245 + ], + [ + 0, + 0 + ], + [ + 2.246, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 5.392 + ] + ], + "v": [ + [ + 7.285, + 8.118 + ], + [ + -7.284, + 8.118 + ], + [ + -17.048, + -1.645 + ], + [ + -17.048, + -4.052 + ], + [ + -12.982, + -8.118 + ], + [ + 12.983, + -8.118 + ], + [ + 17.049, + -4.052 + ], + [ + 17.049, + -1.645 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 531.494, + 313.861 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 8", + "np": 2, + "cix": 2, + "ix": 8, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -7.093, + -12.691 + ], + [ + -0.261, + -4.766 + ], + [ + 0, + 0 + ], + [ + -1.729, + -3.557 + ], + [ + -4.702, + 22.165 + ] + ], + "o": [ + [ + 7.974, + -14.081 + ], + [ + 2.124, + 3.8 + ], + [ + 0, + 0 + ], + [ + 0.232, + 4.257 + ], + [ + 8.24, + 16.946 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -36.921, + -47.763 + ], + [ + -6.956, + -47.724 + ], + [ + -3.435, + -34.5 + ], + [ + 0.245, + 32.901 + ], + [ + 3.113, + 44.897 + ], + [ + 36.922, + 37.465 + ] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 2.776, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 494.125, + 274.103 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 9", + "np": 2, + "cix": 2, + "ix": 9, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -10.727, + -12.691 + ], + [ + -0.393, + -4.766 + ], + [ + 0, + 0 + ], + [ + -2.616, + -3.556 + ], + [ + -7.111, + 22.164 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 12.059, + -14.081 + ], + [ + 3.212, + 3.8 + ], + [ + 0, + 0 + ], + [ + 0.351, + 4.256 + ], + [ + 12.461, + 16.947 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -60.66, + -36.493 + ], + [ + -51.008, + -47.762 + ], + [ + -5.693, + -47.725 + ], + [ + -0.37, + -34.501 + ], + [ + 5.196, + 32.9 + ], + [ + 9.535, + 44.896 + ], + [ + 60.66, + 37.464 + ] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3.414, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 509.53, + 272.212 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 10", + "np": 2, + "cix": 2, + "ix": 10, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 5.311, + -8.748 + ], + [ + -5.311, + -8.748 + ], + [ + -5.311, + 8.748 + ], + [ + 5.311, + 8.748 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 2.499, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 569.975, + 302.473 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 11", + "np": 2, + "cix": 2, + "ix": 11, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 3.826, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 3.826 + ], + [ + 0, + 0 + ], + [ + -1.593, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1.593 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -3.825, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1.593 + ], + [ + 0, + 0 + ], + [ + 1.594, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 3.826 + ] + ], + "v": [ + [ + 5.168, + 5.759 + ], + [ + -5.168, + 5.759 + ], + [ + -12.095, + -1.167 + ], + [ + -12.095, + -2.874 + ], + [ + -9.21, + -5.759 + ], + [ + 9.21, + -5.759 + ], + [ + 12.095, + -2.874 + ], + [ + 12.095, + -1.167 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 569.601, + 308.513 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 12", + "np": 2, + "cix": 2, + "ix": 12, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 3.927 + ], + [ + 3.927, + 0 + ], + [ + 0, + -3.927 + ], + [ + -3.927, + 0 + ] + ], + "o": [ + [ + 0, + -3.927 + ], + [ + -3.927, + 0 + ], + [ + 0, + 3.927 + ], + [ + 3.927, + 0 + ] + ], + "v": [ + [ + 7.11, + 0 + ], + [ + 0, + -7.11 + ], + [ + -7.11, + 0 + ], + [ + 0, + 7.11 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 2.188, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 448.063, + 157.884 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 13", + "np": 3, + "cix": 2, + "ix": 13, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 5.821 + ], + [ + 5.821, + 0 + ], + [ + 0, + -5.821 + ], + [ + -5.821, + 0 + ] + ], + "o": [ + [ + 0, + -5.821 + ], + [ + -5.821, + 0 + ], + [ + 0, + 5.821 + ], + [ + 5.821, + 0 + ] + ], + "v": [ + [ + 10.54, + 0 + ], + [ + 0, + -10.54 + ], + [ + -10.54, + 0 + ], + [ + 0, + 10.54 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3.243, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 448.063, + 357.338 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 14", + "np": 3, + "cix": 2, + "ix": 14, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 448.062, + 90.319 + ], + [ + 448.062, + 347.609 + ] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 3.243, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 10, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.944999964097, + 0.776000019148, + 0.361000001197, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 15", + "np": 3, + "cix": 2, + "ix": 15, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 218, + "st": 0, + "bm": 0 + } + ] +} \ No newline at end of file diff --git a/external/rlottie/example/resource/tile_grid_loading_animation.json b/external/rlottie/example/resource/tile_grid_loading_animation.json new file mode 100644 index 000000000..4530a779a --- /dev/null +++ b/external/rlottie/example/resource/tile_grid_loading_animation.json @@ -0,0 +1 @@ +{"v":"5.1.16","fr":60,"ip":0,"op":120,"w":800,"h":800,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"e1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,337],[304,337],[304,305],[336,305]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,401],[240,401],[240,241],[400,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":55,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,401],[240,401],[240,241],[400,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,401],[240,401],[240,241],[400,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":85,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,401],[240,401],[240,241],[400,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,337],[304,337],[304,305],[336,305]],"c":true}]},{"t":115}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"e1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"d1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,337],[144,337],[144,305],[176,305]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,401],[80,401],[80,241],[240,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":50,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,401],[80,401],[80,241],[240,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,401],[80,401],[80,241],[240,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":80,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,401],[80,401],[80,241],[240,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,337],[144,337],[144,305],[176,305]],"c":true}]},{"t":110}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"d1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"c1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,337],[-16,337],[-16,305],[16,305]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,401],[-80,401],[-80,241],[80,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,401],[-80,401],[-80,241],[80,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,401],[-80,401],[-80,241],[80,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":75,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,401],[-80,401],[-80,241],[80,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,337],[-16,337],[-16,305],[16,305]],"c":true}]},{"t":105}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"b1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,337],[-176,337],[-176,305],[-144,305]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,401],[-240,401],[-240,241],[-80,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,401],[-240,401],[-240,241],[-80,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,401],[-240,401],[-240,241],[-80,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,401],[-240,401],[-240,241],[-80,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,337],[-176,337],[-176,305],[-144,305]],"c":true}]},{"t":100}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"b1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"a1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,337],[-336,337],[-336,305],[-304,305]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,401],[-400,401],[-400,241],[-240,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,401],[-400,401],[-400,241],[-240,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,401],[-400,401],[-400,241],[-240,241]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":65,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,401],[-400,401],[-400,241],[-240,241]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,337],[-336,337],[-336,305],[-304,305]],"c":true}]},{"t":95}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"a1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"e2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,177],[304,177],[304,145],[336,145]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,241],[240,241],[240,81],[400,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,241],[240,241],[240,81],[400,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,241],[240,241],[240,81],[400,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":90,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,241],[240,241],[240,81],[400,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,177],[304,177],[304,145],[336,145]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"e2","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"d2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,177],[144,177],[144,145],[176,145]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,241],[80,241],[80,81],[240,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":55,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,241],[80,241],[80,81],[240,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,241],[80,241],[80,81],[240,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":85,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,241],[80,241],[80,81],[240,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,177],[144,177],[144,145],[176,145]],"c":true}]},{"t":115}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"d2","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"c2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,177],[-16,177],[-16,145],[16,145]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,241],[-80,241],[-80,81],[80,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":50,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,241],[-80,241],[-80,81],[80,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,241],[-80,241],[-80,81],[80,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":80,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,241],[-80,241],[-80,81],[80,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,177],[-16,177],[-16,145],[16,145]],"c":true}]},{"t":110}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c2","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"b2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,177],[-176,177],[-176,145],[-144,145]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,241],[-240,241],[-240,81],[-80,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,241],[-240,241],[-240,81],[-80,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,241],[-240,241],[-240,81],[-80,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":75,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,241],[-240,241],[-240,81],[-80,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,177],[-176,177],[-176,145],[-144,145]],"c":true}]},{"t":105}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"b2","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"a2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,177],[-336,177],[-336,145],[-304,145]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,241],[-400,241],[-400,81],[-240,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,241],[-400,241],[-400,81],[-240,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,241],[-400,241],[-400,81],[-240,81]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,241],[-400,241],[-400,81],[-240,81]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,177],[-336,177],[-336,145],[-304,145]],"c":true}]},{"t":100}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"a2","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"e3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p833_1_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[344.976,25.976],[295.024,25.976],[295.024,-23.976],[344.976,-23.976]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,17],[304,17],[304,-15],[336,-15]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,17],[304,17],[304,-15],[336,-15]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,17],[304,17],[304,-15],[336,-15]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,17],[304,17],[304,-15],[336,-15]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,81],[240,81],[240,-79],[400,-79]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":65,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,81],[240,81],[240,-79],[400,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,81],[240,81],[240,-79],[400,-79]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":95,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,81],[240,81],[240,-79],[400,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[344.976,25.976],[295.024,25.976],[295.024,-23.976],[344.976,-23.976]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"e3","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"d3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,17],[144,17],[144,-15],[176,-15]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,81],[80,81],[80,-79],[240,-79]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,81],[80,81],[80,-79],[240,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,81],[80,81],[80,-79],[240,-79]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":90,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,81],[80,81],[80,-79],[240,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,17],[144,17],[144,-15],[176,-15]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"d3","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"c3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,17],[-16,17],[-16,-15],[16,-15]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,81],[-80,81],[-80,-79],[80,-79]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":55,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,81],[-80,81],[-80,-79],[80,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,81],[-80,81],[-80,-79],[80,-79]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":85,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,81],[-80,81],[-80,-79],[80,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,17],[-16,17],[-16,-15],[16,-15]],"c":true}]},{"t":115}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c3","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"b3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,17],[-176,17],[-176,-15],[-144,-15]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,81],[-240,81],[-240,-79],[-80,-79]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":50,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,81],[-240,81],[-240,-79],[-80,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,81],[-240,81],[-240,-79],[-80,-79]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":80,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,81],[-240,81],[-240,-79],[-80,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,17],[-176,17],[-176,-15],[-144,-15]],"c":true}]},{"t":110}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"b3","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"a3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,17],[-336,17],[-336,-15],[-304,-15]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,81],[-400,81],[-400,-79],[-240,-79]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,81],[-400,81],[-400,-79],[-240,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,81],[-400,81],[-400,-79],[-240,-79]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":75,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,81],[-400,81],[-400,-79],[-240,-79]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,17],[-336,17],[-336,-15],[-304,-15]],"c":true}]},{"t":105}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"a3","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"e4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[352.593,-126.407],[287.407,-126.407],[287.407,-191.593],[352.593,-191.593]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,-143],[304,-143],[304,-175],[336,-175]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":10,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,-143],[304,-143],[304,-175],[336,-175]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,-143],[304,-143],[304,-175],[336,-175]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,-143],[304,-143],[304,-175],[336,-175]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,-79],[240,-79],[240,-239],[400,-239]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,-79],[240,-79],[240,-239],[400,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,-79],[240,-79],[240,-239],[400,-239]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":100,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,-79],[240,-79],[240,-239],[400,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[352.593,-126.407],[287.407,-126.407],[287.407,-191.593],[352.593,-191.593]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"e4","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"d4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[180.741,-138.259],[139.259,-138.259],[139.259,-179.741],[180.741,-179.741]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,-143],[144,-143],[144,-175],[176,-175]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,-143],[144,-143],[144,-175],[176,-175]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,-143],[144,-143],[144,-175],[176,-175]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,-143],[144,-143],[144,-175],[176,-175]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,-79],[80,-79],[80,-239],[240,-239]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":65,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,-79],[80,-79],[80,-239],[240,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,-79],[80,-79],[80,-239],[240,-239]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":95,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,-79],[80,-79],[80,-239],[240,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[180.741,-138.259],[139.259,-138.259],[139.259,-179.741],[180.741,-179.741]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"d4","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"c4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,-143],[-16,-143],[-16,-175],[16,-175]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,-79],[-80,-79],[-80,-239],[80,-239]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,-79],[-80,-79],[-80,-239],[80,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,-79],[-80,-79],[-80,-239],[80,-239]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":90,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,-79],[-80,-79],[-80,-239],[80,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,-143],[-16,-143],[-16,-175],[16,-175]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c4","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"b4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,-143],[-176,-143],[-176,-175],[-144,-175]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,-79],[-240,-79],[-240,-239],[-80,-239]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":55,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,-79],[-240,-79],[-240,-239],[-80,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,-79],[-240,-79],[-240,-239],[-80,-239]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":85,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,-79],[-240,-79],[-240,-239],[-80,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,-143],[-176,-143],[-176,-175],[-144,-175]],"c":true}]},{"t":115}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"b4","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"a4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,-143],[-336,-143],[-336,-175],[-304,-175]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,-79],[-400,-79],[-400,-239],[-240,-239]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":50,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,-79],[-400,-79],[-400,-239],[-240,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,-79],[-400,-79],[-400,-239],[-240,-239]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":80,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,-79],[-400,-79],[-400,-239],[-240,-239]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,-143],[-336,-143],[-336,-175],[-304,-175]],"c":true}]},{"t":110}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"a4","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"e5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[368,-271],[272,-271],[272,-367],[368,-367]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,-303],[304,-303],[304,-335],[336,-335]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,-303],[304,-303],[304,-335],[336,-335]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,-303],[304,-303],[304,-335],[336,-335]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[336,-303],[304,-303],[304,-335],[336,-335]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,-239],[240,-239],[240,-399],[400,-399]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":75,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,-239],[240,-239],[240,-399],[400,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,-239],[240,-239],[240,-399],[400,-399]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":105,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[400,-239],[240,-239],[240,-399],[400,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[368,-271],[272,-271],[272,-367],[368,-367]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"e5","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"d5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[192.593,-286.407],[127.407,-286.407],[127.407,-351.593],[192.593,-351.593]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,-303],[144,-303],[144,-335],[176,-335]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":10,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,-303],[144,-303],[144,-335],[176,-335]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,-303],[144,-303],[144,-335],[176,-335]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176,-303],[144,-303],[144,-335],[176,-335]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,-239],[80,-239],[80,-399],[240,-399]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,-239],[80,-239],[80,-399],[240,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,-239],[80,-239],[80,-399],[240,-399]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":100,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[240,-239],[80,-239],[80,-399],[240,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[192.593,-286.407],[127.407,-286.407],[127.407,-351.593],[192.593,-351.593]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"d5","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"c5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[20.741,-298.259],[-20.741,-298.259],[-20.741,-339.741],[20.741,-339.741]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,-303],[-16,-303],[-16,-335],[16,-335]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":5,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,-303],[-16,-303],[-16,-335],[16,-335]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,-303],[-16,-303],[-16,-335],[16,-335]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":35,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16,-303],[-16,-303],[-16,-335],[16,-335]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,-239],[-80,-239],[-80,-399],[80,-399]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":65,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,-239],[-80,-239],[-80,-399],[80,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,-239],[-80,-239],[-80,-399],[80,-399]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":95,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[80,-239],[-80,-239],[-80,-399],[80,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[20.741,-298.259],[-20.741,-298.259],[-20.741,-339.741],[20.741,-339.741]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c5","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"b5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,-303],[-176,-303],[-176,-335],[-144,-335]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,-239],[-240,-239],[-240,-399],[-80,-399]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,-239],[-240,-239],[-240,-399],[-80,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,-239],[-240,-239],[-240,-399],[-80,-399]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":90,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80,-239],[-240,-239],[-240,-399],[-80,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-144,-303],[-176,-303],[-176,-335],[-144,-335]],"c":true}]},{"t":120}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"b5","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"a5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,-303],[-336,-303],[-336,-335],[-304,-335]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,-239],[-400,-239],[-400,-399],[-240,-399]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":55,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,-239],[-400,-239],[-400,-399],[-240,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,-239],[-400,-239],[-400,-399],[-240,-399]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":85,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-240,-239],[-400,-239],[-400,-399],[-240,-399]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-304,-303],[-336,-303],[-336,-335],[-304,-335]],"c":true}]},{"t":115}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"a5","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/tractor.json b/external/rlottie/example/resource/tractor.json new file mode 100644 index 000000000..4c094702e --- /dev/null +++ b/external/rlottie/example/resource/tractor.json @@ -0,0 +1 @@ +{"v":"5.1.10","fr":24,"ip":0,"op":427,"w":400,"h":310,"nm":"Tractor","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Tractor Master Ctrl","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[184.028,155,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Dark 4 Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[31.53,14.503,0],"ix":2},"a":{"a":0,"k":[1.973,2.877,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"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.973,1.877],[1.049,1.877],[1.049,-2.877],[1.973,-2.877],[1.973,2.877],[-1.973,2.877]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.936999990426,0.169000004787,0.149000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.972,2.877],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Light 4 Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[31.53,14.474,0],"ix":2},"a":{"a":0,"k":[2.223,3.156,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-0.571],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[-0.571,0]],"v":[[-1.973,-1.872],[-1.973,2.906],[1.973,2.906],[1.973,-2.906],[-0.939,-2.906]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.936999990426,0.169000004787,0.149000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.222,3.156],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Seat Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[11.031,12.997,0],"ix":2},"a":{"a":0,"k":[3.729,2.891,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.076,-0.343],[0,0],[-1.082,-3.101],[0,0],[0,0],[1.244,1.246],[0.753,0.226]],"o":[[0,0],[0,0],[0,0],[0,0],[-0.935,-1.469],[-0.551,-0.552],[-0.25,-0.075]],"v":[[-3.728,-2.69],[-3.238,-0.466],[1.48,2.214],[1.716,2.892],[3.73,2.795],[0.786,-1.544],[-1.154,-2.773]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.463000009574,0.451000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.729,2.891],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Steering Outlines","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.577,-0.554,0],"ix":2},"a":{"a":0,"k":[6.578,4.658,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.146,-0.95],[0.194,0.437],[-2.146,0.951],[-0.193,-0.437]],"o":[[-2.146,0.951],[-0.194,-0.438],[2.145,-0.95],[0.195,0.437]],"v":[[0.351,0.791],[-3.885,1.721],[-0.351,-0.792],[3.883,-1.721]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.368999974868,0.356999984442,0.356999984442,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[6.578,4.658],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Steering Pipe Light Outlines","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3.217,3.754,0],"ix":2},"a":{"a":0,"k":[2.101,3.505,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.101,-3.378],[1.622,3.504],[2.102,3.365],[-1.731,-3.504]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.301999978458,0.301999978458,0.301999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.102,3.505],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Steering Pipe Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[23.047,12.53,0],"ix":2},"a":{"a":0,"k":[2.785,3.9,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.535,-3.229],[-1.299,-3.651],[2.535,3.22],[1.045,3.651]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501999978458,0.501999978458,0.501999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.784,3.901],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Hood Pipe Outlines","parent":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1.907,-2.469,0],"ix":2},"a":{"a":0,"k":[1.613,3.172,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.051,0.373],[-0.021,-0.14],[0,0],[0.117,-0.038],[-0.07,-0.698],[0.019,-0.684],[0.145,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0.151,-0.027],[0,0],[0.016,0.114],[-0.385,0.128],[0.076,0.751],[-0.004,0.133],[0,0],[0,0]],"v":[[-1.363,2.922],[-1.093,2.826],[-1.093,-1.217],[0.958,-2.895],[1.275,-2.682],[1.347,-2.167],[1.177,-1.906],[0.061,-0.727],[0.069,2.685],[-0.199,2.922],[-1.151,2.922]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.8,0.8,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.613,3.172],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Hood Pipe Base Light Outlines","parent":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1.34,2.435,0],"ix":2},"a":{"a":0,"k":[1.336,2.435,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.209,0],[0,0],[0.196,0],[0,0],[0,-0.197],[0,0],[0,0],[0,0]],"o":[[0,0],[-0.017,-0.182],[0,0],[-0.209,0],[0,0],[0,0],[0,0],[0,-0.196]],"v":[[-0.328,-1.859],[1.087,-1.859],[0.717,-2.185],[-0.71,-2.185],[-1.087,-1.829],[-1.087,2.185],[-0.706,2.185],[-0.706,-1.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8,0.8,0.8,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.336,2.435],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Hood Pipe Base Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[47.012,10.26,0],"ix":2},"a":{"a":0,"k":[1.34,4.62,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.208,0],[0,0],[0,-0.197],[0,0]],"o":[[0,0],[0,-0.197],[0,0],[0.208,0],[0,0],[0,0]],"v":[[-1.09,2.185],[-1.09,-1.828],[-0.713,-2.185],[0.713,-2.185],[1.09,-1.828],[1.09,2.185]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501999978458,0.501999978458,0.501999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.34,2.435],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Light 3 Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[34.404,22.26,0],"ix":2},"a":{"a":0,"k":[4.204,1.828,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.085,-0.014],[-0.019,-0.459],[0.041,-0.614],[0.461,0.004],[1.33,0],[0.801,0.003],[0.002,0.563],[-0.002,0.539],[-0.545,0],[-1.048,0]],"o":[[1.085,0],[0.468,0.007],[0.026,0.616],[-0.025,0.376],[-1.331,-0.011],[-0.803,0],[-0.56,-0.002],[-0.002,-0.538],[0.001,-0.538],[1.047,-0.001],[0,0]],"v":[[-0.037,-1.556],[3.218,-1.552],[3.909,-0.889],[3.913,0.96],[3.207,1.574],[-0.785,1.57],[-3.192,1.57],[-3.951,0.801],[-3.952,-0.814],[-3.179,-1.577],[-0.037,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.463000009574,0.451000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.204,1.828],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Light 2 Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[49,23.93,0],"ix":2},"a":{"a":0,"k":[1.966,2.095,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0.519],[-0.002,0.528],[0.182,0.003],[0.643,-0.303],[-0.946,-0.689],[-0.808,0.022],[0.001,0.138]],"o":[[0,-0.528],[0,-0.142],[-0.701,-0.015],[-1.058,0.498],[0.696,0.507],[0.185,-0.005],[-0.004,-0.518]],"v":[[1.714,0.003],[1.715,-1.581],[1.514,-1.831],[-0.518,-1.477],[-0.771,1.322],[1.531,1.824],[1.716,1.559]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.541000007181,0.528999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.966,2.096],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Light 1 Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[42.524,22.557,0],"ix":2},"a":{"a":0,"k":[3.128,1.472,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.715,-0.001],[-0.006,-0.522],[0.009,-0.361],[0.421,-0.002],[1.489,0.006],[0.002,0.435],[-0.01,0.371],[-0.428,0.004],[-0.744,0]],"o":[[0.715,0],[0.517,0.001],[0.004,0.363],[-0.008,0.419],[-1.488,0.007],[-0.425,-0.001],[-0.001,-0.372],[0.012,-0.428],[0.744,-0.007],[0,0]],"v":[[0.014,-1.221],[2.158,-1.221],[2.87,-0.509],[2.868,0.577],[2.23,1.215],[-2.236,1.215],[-2.877,0.549],[-2.854,-0.566],[-2.219,-1.203],[0.014,-1.205]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.463000009574,0.451000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.128,1.472],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Dark 3 Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[38.849,17.379,0],"ix":2},"a":{"a":0,"k":[2.196,1.873,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.138,-0.1],[-0.055,0.001],[-0.518,-0.01],[0.003,0.214],[0.011,0.734],[-0.238,-0.009],[-0.411,0],[-0.001,0.231],[0.161,0],[0.872,0.012],[-0.004,-0.209],[-0.002,-0.597],[0.251,-0.24]],"o":[[0.112,0.02],[0.518,-0.003],[0.225,0.005],[-0.01,-0.734],[-0.003,-0.225],[0.411,0.017],[0.147,0],[0.002,-0.216],[-0.872,0.002],[-0.228,-0.002],[0.012,0.598],[0.001,0.355],[-0.08,0.077]],"v":[[-1.945,1.585],[-1.725,1.622],[-0.17,1.611],[0.113,1.323],[0.104,-0.878],[0.406,-1.186],[1.639,-1.181],[1.943,-1.388],[1.652,-1.618],[-0.964,-1.621],[-1.24,-1.327],[-1.234,0.465],[-1.629,1.351]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.936999990426,0.169000004787,0.149000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.195,1.873],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Dark 2 Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[41.961,15.21,0],"ix":2},"a":{"a":0,"k":[4.607,1.242,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.011,0.075],[0.846,0.001],[2.016,0.004],[-0.003,-0.249],[-0.166,0.001],[-0.891,-0.011],[-0.033,-0.792],[-0.209,0.001],[-1.284,0]],"o":[[-0.014,-0.119],[-0.151,-0.969],[-2.016,-0.003],[-0.191,-0.001],[0.003,0.244],[0.89,-0.002],[0.797,0.009],[0.009,0.251],[1.282,-0.006],[0,0]],"v":[[4.357,0.987],[4.326,0.719],[2.004,-0.988],[-4.045,-0.991],[-4.354,-0.732],[-4.051,-0.497],[-1.378,-0.495],[-0.127,0.707],[0.197,0.99],[4.045,0.987]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.936999990426,0.169000004787,0.149000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.607,1.242],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Dark 1 Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[44.06,18.414,0],"ix":2},"a":{"a":0,"k":[2.565,1.488,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.646,0],[0,0],[0.567,-0.005],[-0.001,-0.653],[-0.025,-0.506],[-0.226,0.002],[-1.283,-0.007],[0.004,0.211],[-0.013,0.616],[0.219,-0.003]],"o":[[0,0],[-0.567,0],[-0.67,0.006],[0,0.508],[0.011,0.205],[1.282,-0.008],[0.196,0.001],[-0.01,-0.617],[0.006,-0.241],[-0.645,0.01]],"v":[[0.058,-1.168],[0.058,-1.169],[-1.645,-1.168],[-2.213,-0.585],[-2.165,0.937],[-1.816,1.236],[2.031,1.236],[2.309,0.972],[2.309,-0.878],[1.995,-1.172]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.936999990426,0.169000004787,0.149000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.565,1.488],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Back Nut 4 Outlines","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.805,6.221,0],"ix":2},"a":{"a":0,"k":[3.063,1.81,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.074,0.157],[-0.131,0.127],[-1.789,0.124],[-0.015,-0.29],[0.345,-0.026],[0.884,-0.566],[0.385,-0.314],[0.223,0.252]],"o":[[0.108,-0.158],[1.3,-1.262],[0.342,-0.024],[0.014,0.283],[-1.041,0.077],[-0.417,0.267],[-0.285,0.233],[-0.078,-0.088]],"v":[[-2.814,0.934],[-2.491,0.472],[2.178,-1.536],[2.799,-1.056],[2.234,-0.495],[-0.683,0.397],[-1.857,1.316],[-2.631,1.308]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.063,1.81],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Back Nut 3 Outlines","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6.191,15.057,0],"ix":2},"a":{"a":0,"k":[1.842,3.074,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.026,0.006],[-0.274,0.019],[-0.028,-0.302],[-0.37,-0.791],[-0.472,-0.498],[0.202,-0.206],[0.249,0.232],[0.326,0.963],[0.192,0.773]],"o":[[0,-0.292],[0.273,-0.019],[0.082,0.862],[0.294,0.629],[0.222,0.234],[-0.22,0.224],[-0.749,-0.699],[-0.255,-0.753],[0.026,-0.007]],"v":[[-1.513,-2.246],[-1.019,-2.805],[-0.47,-2.31],[0.16,0.178],[1.346,1.837],[1.39,2.593],[0.635,2.592],[-1.002,0.093],[-1.592,-2.226]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.842,3.074],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Back Nut 2 Outlines","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[15.068,18.658,0],"ix":2},"a":{"a":0,"k":[3.064,1.834,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.019,0.312],[-0.323,0.03],[-0.658,0.249],[-0.607,0.577],[-0.197,-0.197],[0.242,-0.246],[0.996,-0.312],[0.727,-0.179]],"o":[[-0.356,0.008],[-0.017,-0.291],[0.695,-0.062],[0.793,-0.301],[0.249,-0.236],[0.208,0.209],[-0.729,0.745],[-0.714,0.224],[0,0]],"v":[[-2.21,1.501],[-2.797,1.026],[-2.28,0.459],[-0.25,0.027],[1.823,-1.321],[2.606,-1.387],[2.565,-0.596],[-0.009,1.039],[-2.189,1.584]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.064,1.834],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Back Nut 1 Outlines","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18.641,9.799,0],"ix":2},"a":{"a":0,"k":[1.816,3.073,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.087,-0.47],[0.292,-0.034],[0.077,0.388],[0.191,0.621],[0.633,0.629],[-0.15,0.237],[-0.251,-0.082],[-0.062,-0.06],[-0.297,-1.3]],"o":[[-0.032,0.38],[-0.32,0.038],[-0.127,-0.64],[-0.264,-0.853],[-0.2,-0.201],[0.143,-0.229],[0.078,0.026],[0.958,0.928],[0.108,0.465]],"v":[[1.566,2.154],[1.091,2.785],[0.497,2.242],[0.08,0.329],[-1.329,-1.871],[-1.416,-2.533],[-0.802,-2.741],[-0.589,-2.596],[1.3,0.747]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.816,3.073],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Back Center Light Outlines","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.438,12.414,0],"ix":2},"a":{"a":0,"k":[2.336,2.343,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.011,1.149],[1.123,0.012],[0.004,-1.145],[-1.12,-0.001]],"o":[[0.009,-1.123],[-1.142,-0.012],[-0.004,1.137],[1.153,0.001]],"v":[[2.077,0.014],[0.02,-2.081],[-2.082,-0.004],[-0.027,2.092]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.6,0.6,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.336,2.343],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Back Center Dark Outlines","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.443,12.418,0],"ix":2},"a":{"a":0,"k":[4.432,4.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.321,-0.046],[0.019,-2.297],[2.345,0.03],[-0.009,2.302]],"o":[[2.309,-0.045],[-0.019,2.285],[-2.288,-0.03],[0.009,-2.285]],"v":[[-0.005,-4.146],[4.163,0.027],[-0.057,4.161],[-4.173,-0.008]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.431,4.441],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Back Wheel Inner Outlines","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.438,12.427,0],"ix":2},"a":{"a":0,"k":[9.201,9.201,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.944],[4.943,0],[0,-4.943],[-4.945,0]],"o":[[0,-4.943],[-4.945,0],[0,4.944],[4.943,0]],"v":[[8.952,-0.001],[0.001,-8.952],[-8.952,-0.001],[0.001,8.952]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.6,0.6,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.201,9.202],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Back Wheel Body Outlines","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[720]},{"t":142}],"ix":10},"p":{"s":true,"x":{"a":0,"k":1.969,"ix":3},"y":{"a":0,"k":17.435,"ix":4}},"a":{"a":0,"k":[12.411,12.481,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.004,0.008],[0.011,0.198],[0.134,0.191],[0.399,0.578],[0.09,0.03],[0.213,0.853],[-0.494,0.223],[0.023,0.194],[0.086,0.835],[0.072,0.082],[-0.206,0.794],[-0.081,0.253],[-0.18,-0.026],[-0.063,0.144],[-0.363,0.82],[0.018,0.105],[-0.521,0.554],[-0.168,0.216],[-0.033,-0.034],[-0.008,-0.004],[-0.19,0.009],[-0.189,0.134],[-0.597,0.423],[-0.037,0.089],[-0.748,0.181],[-0.193,0.068],[-0.084,-0.185],[-0.529,0.073],[-0.758,0.076],[-0.094,0.077],[-0.761,-0.205],[-0.056,-0.018],[0.053,-0.53],[-0.153,-0.066],[-0.793,-0.346],[-0.113,0.017],[-0.597,-0.665],[0.3,-0.417],[-0.114,-0.154],[-0.517,-0.709],[-0.081,-0.03],[-0.19,-0.794],[-0.018,-0.076],[0.494,-0.222],[-0.023,-0.172],[-0.106,-0.834],[-0.108,-0.155],[0.104,-0.596],[0.061,-0.277],[0.2,0.022],[0.184,-0.434],[0.309,-0.695],[-0.019,-0.139],[0.636,-0.566],[0.014,-0.013],[0.467,0.306],[0.052,-0.057],[0.682,-0.399],[0.123,-0.316],[0.684,-0.136],[0.191,-0.071],[0.067,0.144],[0.608,-0.087],[0.71,-0.071],[0.123,-0.1],[0.905,0.305],[-0.002,0.078],[0.518,0.222],[0.675,0.307],[0.113,-0.016],[0.57,0.635],[0.168,0.148]],"o":[[0,-0.01],[0.123,-0.206],[-0.01,-0.187],[-0.401,-0.576],[-0.059,-0.085],[-0.889,-0.297],[-0.13,-0.515],[0.199,-0.09],[-0.099,-0.834],[-0.012,-0.121],[-0.568,-0.643],[0.059,-0.227],[0.178,0.017],[0.154,0.023],[0.359,-0.822],[0.045,-0.1],[-0.128,-0.768],[0.187,-0.198],[0.033,0.034],[0.009,0.001],[0.196,0.126],[0.186,-0.009],[0.597,-0.423],[0.081,-0.057],[0.29,-0.691],[0.199,-0.048],[0.182,-0.065],[0.223,0.491],[0.754,-0.104],[0.13,-0.014],[0.636,-0.517],[0.056,0.015],[0.513,0.162],[-0.017,0.168],[0.796,0.341],[0.112,0.049],[0.911,-0.14],[0.348,0.389],[-0.113,0.156],[0.526,0.703],[0.054,0.075],[0.762,0.29],[0.018,0.076],[0.13,0.533],[-0.15,0.068],[0.109,0.834],[0.024,0.192],[0.348,0.503],[-0.048,0.279],[-0.046,0.207],[-0.468,-0.052],[-0.297,0.701],[-0.062,0.137],[0.123,0.865],[-0.015,0.013],[-0.4,0.372],[-0.081,-0.052],[-0.543,0.592],[-0.268,0.157],[-0.251,0.645],[-0.199,0.04],[-0.156,0.058],[-0.247,-0.527],[-0.705,0.102],[-0.164,0.017],[-0.845,0.677],[-0.054,-0.019],[0.015,-0.559],[-0.68,-0.292],[-0.11,-0.051],[-0.841,0.119],[-0.149,-0.166],[0,0]],"v":[[-8.696,8.471],[-8.694,8.443],[-8.356,7.827],[-8.775,7.285],[-9.964,5.545],[-10.188,5.327],[-11.701,3.495],[-11.35,2.743],[-11.166,2.367],[-11.421,-0.141],[-11.512,-0.492],[-11.955,-2.665],[-11.732,-3.365],[-11.191,-3.313],[-10.911,-3.492],[-9.812,-5.949],[-9.757,-6.281],[-9.111,-8.236],[-8.604,-8.88],[-8.505,-8.779],[-8.477,-8.774],[-7.89,-8.426],[-7.347,-8.833],[-5.548,-10.09],[-5.355,-10.324],[-3.847,-11.678],[-3.257,-11.85],[-2.893,-11.688],[-2.136,-11.311],[0.141,-11.533],[0.519,-11.646],[2.624,-12.026],[2.793,-11.977],[3.26,-11.283],[3.45,-10.982],[5.827,-9.936],[6.186,-9.85],[8.401,-8.982],[8.469,-8.182],[8.484,-7.776],[10.032,-5.647],[10.238,-5.46],[11.67,-3.841],[11.732,-3.615],[11.37,-2.855],[11.21,-2.544],[11.5,-0.038],[11.685,0.521],[12.058,2.163],[11.863,2.99],[11.498,3.219],[10.87,3.62],[9.928,5.7],[9.818,6.139],[9.001,8.258],[8.957,8.299],[8.095,8.357],[7.766,8.359],[5.868,9.764],[5.271,10.406],[3.827,11.557],[3.243,11.738],[2.957,11.6],[2.101,11.201],[-0.031,11.391],[-0.507,11.554],[-3.153,11.738],[-3.25,11.507],[-3.758,10.747],[-5.777,9.816],[-6.134,9.728],[-8.245,8.967],[-8.747,8.521]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.411,12.482],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Nut 4 Outlines","parent":32,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[10.16,5.586,0],"ix":2},"a":{"a":0,"k":[0.723,0.73,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.004,-0.262],[-0.271,-0.001],[0.003,0.281],[0.281,-0.005]],"o":[[-0.005,0.275],[0.276,0.001],[-0.002,-0.285],[-0.257,0.005]],"v":[[-0.468,-0.006],[-0.001,0.479],[0.47,-0.003],[-0.009,-0.475]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.723,0.731],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Nut 3 Outlines","parent":32,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[5.621,4.868,0],"ix":2},"a":{"a":0,"k":[0.743,0.744,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.008,0.258],[0.249,0.002],[0.018,-0.246],[-0.245,-0.012]],"o":[[0.009,-0.251],[-0.239,-0.002],[-0.018,0.245],[0.253,0.012]],"v":[[0.485,0.008],[0.01,-0.492],[-0.475,-0.032],[-0.018,0.482]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.743,0.744],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"Nut 2 Outlines","parent":32,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[4.904,9.394,0],"ix":2},"a":{"a":0,"k":[0.739,0.746,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.219,-0.01],[-0.004,-0.262],[-0.265,0.002],[0.005,0.25]],"o":[[-0.262,0.012],[0.004,0.265],[0.25,-0.002],[-0.003,-0.229]],"v":[[-0.013,-0.486],[-0.485,0.017],[0.004,0.494],[0.484,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.739,0.746],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"Nut 1 Outlines","parent":32,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.434,10.125,0],"ix":2},"a":{"a":0,"k":[0.741,0.729,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.281,0.005],[0.004,-0.263],[-0.272,-0.005],[-0.006,0.282]],"o":[[-0.272,-0.004],[-0.004,0.265],[0.287,0.005],[0.005,-0.276]],"v":[[0.012,-0.475],[-0.486,-0.009],[-0.006,0.474],[0.486,0.008]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.74,0.729],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Front Center Light Outlines","parent":32,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[7.54,7.509,0],"ix":2},"a":{"a":0,"k":[1.142,1.137,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.441,-0.001],[-0.009,0.483],[-0.509,-0.002],[0.003,-0.475]],"o":[[-0.474,0.002],[0.009,-0.504],[0.487,0.002],[-0.002,0.446]],"v":[[0.001,0.884],[-0.883,-0.029],[0.003,-0.885],[0.889,-0.012]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.6,0.6,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.142,1.137],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Front Center Dark Outlines","parent":32,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[7.546,7.513,0],"ix":2},"a":{"a":0,"k":[2.188,2.185,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.084,0.003],[0.004,-1.083],[-1.081,-0.013],[-0.006,1.034]],"o":[[-1.089,-0.003],[-0.004,1.084],[1.027,0.013],[0.007,-1.067]],"v":[[-0.012,-1.932],[-1.934,-0.033],[-0.016,1.922],[1.931,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.188,2.185],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Front Wheel Inner Outlines","parent":32,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[7.508,7.508,0],"ix":2},"a":{"a":0,"k":[4.693,4.692,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.454],[2.454,0],[0,-2.453],[-2.453,0]],"o":[[0,-2.453],[-2.453,0],[0,2.454],[2.454,0]],"v":[[4.443,0],[0,-4.442],[-4.443,0],[0,4.442]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.6,0.6,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.693,4.692],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Front Wheel Body Outlines","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[1440]},{"t":142}],"ix":10},"p":{"s":true,"x":{"a":0,"k":38.472,"ix":3},"y":{"a":0,"k":22.138,"ix":4}},"a":{"a":0,"k":[7.508,7.508,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.009,0],[0,-4.008],[-4.008,0],[0,4.009]],"o":[[-4.008,0],[0,4.009],[4.009,0],[0,-4.008]],"v":[[0,-7.258],[-7.258,0],[0,7.258],[7.258,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.508,7.508],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Body Top Back Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[51.891,12.164,0],"ix":2},"a":{"a":0,"k":[4.035,2.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.267,0.002],[-1.524,-0.002],[0.001,-1.02],[0.012,-0.274],[-0.089,-0.038],[0,0],[-0.058,0.003],[0.003,0.351],[0.457,0.012],[0.009,-0.002],[-0.009,0.207],[0,0.274],[1.021,0.002],[1.523,-0.012],[0.005,0.222],[0.004,-0.44]],"o":[[1.523,-0.012],[1.021,0.002],[0,0.274],[-0.006,0.141],[0,0],[0.097,-0.008],[0.433,-0.018],[-0.004,-0.355],[-0.01,-0.001],[-0.23,0.032],[0.012,-0.274],[0.001,-1.021],[-1.524,-0.002],[-0.252,0.001],[0,0.44],[-0.002,0.252]],"v":[[-3.454,-0.532],[1.118,-0.537],[2.74,1.094],[2.738,1.917],[2.852,2.191],[2.852,2.076],[3.064,2.058],[3.783,1.442],[3.046,0.853],[3.016,0.853],[2.738,0.561],[2.74,-0.261],[1.118,-1.893],[-3.454,-1.887],[-3.781,-2.191],[-3.784,-0.87]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.463000009574,0.451000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.035,2.441],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Body Top Front Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[36.774,12.109,0],"ix":2},"a":{"a":0,"k":[9.459,2.378,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.938,0],[-5.172,-0.009],[0.004,0.301],[0,0.427],[0.267,0],[5.172,-0.002],[0.005,-0.933],[0,-0.403],[0.106,-0.008],[0.009,-0.328],[-0.345,-0.036],[-0.11,-0.012],[-0.002,0.342]],"o":[[5.172,-0.002],[0.297,0.001],[-0.007,-0.427],[-0.014,0.23],[-5.172,-0.01],[-0.938,0.001],[-0.003,0.379],[-0.139,0.008],[-0.351,0.028],[-0.009,0.326],[0.11,0.011],[0,-0.359],[0.005,-0.932]],"v":[[-6.691,-0.481],[8.826,-0.476],[9.205,-0.847],[9.199,-2.128],[8.826,-1.831],[-6.691,-1.837],[-8.265,-0.273],[-8.266,0.889],[-8.616,0.91],[-9.2,1.489],[-8.619,2.112],[-8.266,2.128],[-8.265,1.082]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.463000009574,0.451000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.459,2.378],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Body Main Outlines","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":17.757,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.465]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p465_0p167_0p167"],"t":0,"s":[8.208],"e":[8.174]},{"i":{"x":[0.833],"y":[0.83]},"o":{"x":[0.167],"y":[0.099]},"n":["0p833_0p83_0p167_0p099"],"t":1,"s":[8.174],"e":[7.99]},{"i":{"x":[0.833],"y":[0.903]},"o":{"x":[0.167],"y":[0.163]},"n":["0p833_0p903_0p167_0p163"],"t":2,"s":[7.99],"e":[7.799]},{"i":{"x":[0.833],"y":[1.228]},"o":{"x":[0.167],"y":[0.584]},"n":["0p833_1p228_0p167_0p584"],"t":3,"s":[7.799],"e":[7.767]},{"i":{"x":[0.833],"y":[0.739]},"o":{"x":[0.167],"y":[0.061]},"n":["0p833_0p739_0p167_0p061"],"t":4,"s":[7.767],"e":[7.886]},{"i":{"x":[0.833],"y":[0.804]},"o":{"x":[0.167],"y":[0.122]},"n":["0p833_0p804_0p167_0p122"],"t":5,"s":[7.886],"e":[8.141]},{"i":{"x":[0.833],"y":[0.831]},"o":{"x":[0.167],"y":[0.145]},"n":["0p833_0p831_0p167_0p145"],"t":6,"s":[8.141],"e":[8.483]},{"i":{"x":[0.833],"y":[0.859]},"o":{"x":[0.167],"y":[0.165]},"n":["0p833_0p859_0p167_0p165"],"t":7,"s":[8.483],"e":[8.834]},{"i":{"x":[0.833],"y":[0.921]},"o":{"x":[0.167],"y":[0.203]},"n":["0p833_0p921_0p167_0p203"],"t":8,"s":[8.834],"e":[9.078]},{"i":{"x":[0.833],"y":[-1.176]},"o":{"x":[0.167],"y":[-1.612]},"n":["0p833_-1p176_0p167_-1p612"],"t":9,"s":[9.078],"e":[9.066]},{"i":{"x":[0.833],"y":[0.781]},"o":{"x":[0.167],"y":[0.087]},"n":["0p833_0p781_0p167_0p087"],"t":10,"s":[9.066],"e":[8.765]},{"i":{"x":[0.833],"y":[0.822]},"o":{"x":[0.167],"y":[0.134]},"n":["0p833_0p822_0p167_0p134"],"t":11,"s":[8.765],"e":[8.275]},{"i":{"x":[0.833],"y":[0.844]},"o":{"x":[0.167],"y":[0.156]},"n":["0p833_0p844_0p167_0p156"],"t":12,"s":[8.275],"e":[7.715]},{"i":{"x":[0.833],"y":[0.872]},"o":{"x":[0.167],"y":[0.178]},"n":["0p833_0p872_0p167_0p178"],"t":13,"s":[7.715],"e":[7.225]},{"i":{"x":[0.833],"y":[0.953]},"o":{"x":[0.167],"y":[0.238]},"n":["0p833_0p953_0p167_0p238"],"t":14,"s":[7.225],"e":[6.961]},{"i":{"x":[0.833],"y":[0.66]},"o":{"x":[0.167],"y":[-0.107]},"n":["0p833_0p66_0p167_-0p107"],"t":15,"s":[6.961],"e":[7.077]},{"i":{"x":[0.833],"y":[0.84]},"o":{"x":[0.167],"y":[0.11]},"n":["0p833_0p84_0p167_0p11"],"t":16,"s":[7.077],"e":[7.433]},{"i":{"x":[0.833],"y":[0.883]},"o":{"x":[0.167],"y":[0.174]},"n":["0p833_0p883_0p167_0p174"],"t":17,"s":[7.433],"e":[7.76]},{"i":{"x":[0.833],"y":[1.002]},"o":{"x":[0.167],"y":[0.293]},"n":["0p833_1p002_0p167_0p293"],"t":18,"s":[7.76],"e":[7.891]},{"i":{"x":[0.833],"y":[0.69]},"o":{"x":[0.167],"y":[0.002]},"n":["0p833_0p69_0p167_0p002"],"t":19,"s":[7.891],"e":[7.757]},{"i":{"x":[0.833],"y":[0.784]},"o":{"x":[0.167],"y":[0.114]},"n":["0p833_0p784_0p167_0p114"],"t":20,"s":[7.757],"e":[7.393]},{"i":{"x":[0.833],"y":[0.819]},"o":{"x":[0.167],"y":[0.135]},"n":["0p833_0p819_0p167_0p135"],"t":21,"s":[7.393],"e":[6.812]},{"i":{"x":[0.833],"y":[0.87]},"o":{"x":[0.167],"y":[0.154]},"n":["0p833_0p87_0p167_0p154"],"t":22,"s":[6.812],"e":[6.129]},{"i":{"x":[0.833],"y":[0.94]},"o":{"x":[0.167],"y":[0.233]},"n":["0p833_0p94_0p167_0p233"],"t":23,"s":[6.129],"e":[5.748]},{"i":{"x":[0.833],"y":[0.488]},"o":{"x":[0.167],"y":[-0.212]},"n":["0p833_0p488_0p167_-0p212"],"t":24,"s":[5.748],"e":[5.855]},{"i":{"x":[0.833],"y":[0.807]},"o":{"x":[0.167],"y":[0.1]},"n":["0p833_0p807_0p167_0p1"],"t":25,"s":[5.855],"e":[6.408]},{"i":{"x":[0.833],"y":[0.863]},"o":{"x":[0.167],"y":[0.147]},"n":["0p833_0p863_0p167_0p147"],"t":26,"s":[6.408],"e":[7.134]},{"i":{"x":[0.833],"y":[0.897]},"o":{"x":[0.167],"y":[0.212]},"n":["0p833_0p897_0p167_0p212"],"t":27,"s":[7.134],"e":[7.603]},{"i":{"x":[0.833],"y":[1.043]},"o":{"x":[0.167],"y":[0.443]},"n":["0p833_1p043_0p167_0p443"],"t":28,"s":[7.603],"e":[7.711]},{"i":{"x":[0.833],"y":[0.763]},"o":{"x":[0.167],"y":[0.028]},"n":["0p833_0p763_0p167_0p028"],"t":29,"s":[7.711],"e":[7.547]},{"i":{"x":[0.833],"y":[0.845]},"o":{"x":[0.167],"y":[0.129]},"n":["0p833_0p845_0p167_0p129"],"t":30,"s":[7.547],"e":[7.243]},{"i":{"x":[0.833],"y":[0.92]},"o":{"x":[0.167],"y":[0.18]},"n":["0p833_0p92_0p167_0p18"],"t":31,"s":[7.243],"e":[6.982]},{"i":{"x":[0.833],"y":[-0.784]},"o":{"x":[0.167],"y":[-1.91]},"n":["0p833_-0p784_0p167_-1p91"],"t":32,"s":[6.982],"e":[6.993]},{"i":{"x":[0.833],"y":[0.964]},"o":{"x":[0.167],"y":[0.087]},"n":["0p833_0p964_0p167_0p087"],"t":33,"s":[6.993],"e":[7.215]},{"i":{"x":[0.833],"y":[0.656]},"o":{"x":[0.167],"y":[-0.062]},"n":["0p833_0p656_0p167_-0p062"],"t":34,"s":[7.215],"e":[7.088]},{"i":{"x":[0.833],"y":[0.807]},"o":{"x":[0.167],"y":[0.11]},"n":["0p833_0p807_0p167_0p11"],"t":35,"s":[7.088],"e":[6.689]},{"i":{"x":[0.833],"y":[0.843]},"o":{"x":[0.167],"y":[0.147]},"n":["0p833_0p843_0p167_0p147"],"t":36,"s":[6.689],"e":[6.164]},{"i":{"x":[0.833],"y":[0.885]},"o":{"x":[0.167],"y":[0.177]},"n":["0p833_0p885_0p167_0p177"],"t":37,"s":[6.164],"e":[5.698]},{"i":{"x":[0.833],"y":[1.009]},"o":{"x":[0.167],"y":[0.3]},"n":["0p833_1p009_0p167_0p3"],"t":38,"s":[5.698],"e":[5.518]},{"i":{"x":[0.833],"y":[0.789]},"o":{"x":[0.167],"y":[0.008]},"n":["0p833_0p789_0p167_0p008"],"t":39,"s":[5.518],"e":[5.717]},{"i":{"x":[0.833],"y":[0.818]},"o":{"x":[0.167],"y":[0.138]},"n":["0p833_0p818_0p167_0p138"],"t":40,"s":[5.717],"e":[6.021]},{"i":{"x":[0.833],"y":[0.83]},"o":{"x":[0.167],"y":[0.153]},"n":["0p833_0p83_0p167_0p153"],"t":41,"s":[6.021],"e":[6.383]},{"i":{"x":[0.833],"y":[0.839]},"o":{"x":[0.167],"y":[0.163]},"n":["0p833_0p839_0p167_0p163"],"t":42,"s":[6.383],"e":[6.761]},{"i":{"x":[0.833],"y":[0.851]},"o":{"x":[0.167],"y":[0.173]},"n":["0p833_0p851_0p167_0p173"],"t":43,"s":[6.761],"e":[7.112]},{"i":{"x":[0.833],"y":[0.907]},"o":{"x":[0.167],"y":[0.189]},"n":["0p833_0p907_0p167_0p189"],"t":44,"s":[7.112],"e":[7.388]},{"i":{"x":[0.833],"y":[1.9]},"o":{"x":[0.167],"y":[0.792]},"n":["0p833_1p9_0p167_0p792"],"t":45,"s":[7.388],"e":[7.42]},{"i":{"x":[0.833],"y":[0.786]},"o":{"x":[0.167],"y":[0.076]},"n":["0p833_0p786_0p167_0p076"],"t":46,"s":[7.42],"e":[7.037]},{"i":{"x":[0.833],"y":[0.831]},"o":{"x":[0.167],"y":[0.137]},"n":["0p833_0p831_0p167_0p137"],"t":47,"s":[7.037],"e":[6.438]},{"i":{"x":[0.833],"y":[0.857]},"o":{"x":[0.167],"y":[0.164]},"n":["0p833_0p857_0p167_0p164"],"t":48,"s":[6.438],"e":[5.823]},{"i":{"x":[0.833],"y":[0.898]},"o":{"x":[0.167],"y":[0.199]},"n":["0p833_0p898_0p167_0p199"],"t":49,"s":[5.823],"e":[5.379]},{"i":{"x":[0.833],"y":[1.272]},"o":{"x":[0.167],"y":[0.463]},"n":["0p833_1p272_0p167_0p463"],"t":50,"s":[5.379],"e":[5.282]},{"i":{"x":[0.833],"y":[0.765]},"o":{"x":[0.167],"y":[0.064]},"n":["0p833_0p765_0p167_0p064"],"t":51,"s":[5.282],"e":[5.697]},{"i":{"x":[0.833],"y":[0.838]},"o":{"x":[0.167],"y":[0.129]},"n":["0p833_0p838_0p167_0p129"],"t":52,"s":[5.697],"e":[6.453]},{"i":{"x":[0.833],"y":[0.866]},"o":{"x":[0.167],"y":[0.171]},"n":["0p833_0p866_0p167_0p171"],"t":53,"s":[6.453],"e":[7.169]},{"i":{"x":[0.833],"y":[0.906]},"o":{"x":[0.167],"y":[0.221]},"n":["0p833_0p906_0p167_0p221"],"t":54,"s":[7.169],"e":[7.603]},{"i":{"x":[0.833],"y":[1.307]},"o":{"x":[0.167],"y":[0.712]},"n":["0p833_1p307_0p167_0p712"],"t":55,"s":[7.603],"e":[7.661]},{"i":{"x":[0.833],"y":[0.818]},"o":{"x":[0.167],"y":[0.066]},"n":["0p833_0p818_0p167_0p066"],"t":56,"s":[7.661],"e":[7.391]},{"i":{"x":[0.833],"y":[0.904]},"o":{"x":[0.167],"y":[0.154]},"n":["0p833_0p904_0p167_0p154"],"t":57,"s":[7.391],"e":[7.072]},{"i":{"x":[0.833],"y":[1.255]},"o":{"x":[0.167],"y":[0.627]},"n":["0p833_1p255_0p167_0p627"],"t":58,"s":[7.072],"e":[7.023]},{"i":{"x":[0.833],"y":[0.768]},"o":{"x":[0.167],"y":[0.063]},"n":["0p833_0p768_0p167_0p063"],"t":59,"s":[7.023],"e":[7.221]},{"i":{"x":[0.833],"y":[0.832]},"o":{"x":[0.167],"y":[0.13]},"n":["0p833_0p832_0p167_0p13"],"t":60,"s":[7.221],"e":[7.576]},{"i":{"x":[0.833],"y":[0.88]},"o":{"x":[0.167],"y":[0.165]},"n":["0p833_0p88_0p167_0p165"],"t":61,"s":[7.576],"e":[7.936]},{"i":{"x":[0.833],"y":[1.009]},"o":{"x":[0.167],"y":[0.275]},"n":["0p833_1p009_0p167_0p275"],"t":62,"s":[7.936],"e":[8.093]},{"i":{"x":[0.833],"y":[0.821]},"o":{"x":[0.167],"y":[0.008]},"n":["0p833_0p821_0p167_0p008"],"t":63,"s":[8.093],"e":[7.919]},{"i":{"x":[0.833],"y":[0.902]},"o":{"x":[0.167],"y":[0.156]},"n":["0p833_0p902_0p167_0p156"],"t":64,"s":[7.919],"e":[7.721]},{"i":{"x":[0.833],"y":[1.417]},"o":{"x":[0.167],"y":[0.571]},"n":["0p833_1p417_0p167_0p571"],"t":65,"s":[7.721],"e":[7.687]},{"i":{"x":[0.833],"y":[0.751]},"o":{"x":[0.167],"y":[0.069]},"n":["0p833_0p751_0p167_0p069"],"t":66,"s":[7.687],"e":[7.891]},{"i":{"x":[0.833],"y":[0.822]},"o":{"x":[0.167],"y":[0.125]},"n":["0p833_0p822_0p167_0p125"],"t":67,"s":[7.891],"e":[8.296]},{"i":{"x":[0.833],"y":[0.869]},"o":{"x":[0.167],"y":[0.157]},"n":["0p833_0p869_0p167_0p157"],"t":68,"s":[8.296],"e":[8.754]},{"i":{"x":[0.833],"y":[0.95]},"o":{"x":[0.167],"y":[0.229]},"n":["0p833_0p95_0p167_0p229"],"t":69,"s":[8.754],"e":[9.017]},{"i":{"x":[0.833],"y":[0.534]},"o":{"x":[0.167],"y":[-0.128]},"n":["0p833_0p534_0p167_-0p128"],"t":70,"s":[9.017],"e":[8.913]},{"i":{"x":[0.833],"y":[0.786]},"o":{"x":[0.167],"y":[0.101]},"n":["0p833_0p786_0p167_0p101"],"t":71,"s":[8.913],"e":[8.436]},{"i":{"x":[0.833],"y":[0.827]},"o":{"x":[0.167],"y":[0.136]},"n":["0p833_0p827_0p167_0p136"],"t":72,"s":[8.436],"e":[7.688]},{"i":{"x":[0.833],"y":[0.86]},"o":{"x":[0.167],"y":[0.16]},"n":["0p833_0p86_0p167_0p16"],"t":73,"s":[7.688],"e":[6.88]},{"i":{"x":[0.833],"y":[0.894]},"o":{"x":[0.167],"y":[0.206]},"n":["0p833_0p894_0p167_0p206"],"t":74,"s":[6.88],"e":[6.329]},{"i":{"x":[0.833],"y":[0.855]},"o":{"x":[0.167],"y":[0.384]},"n":["0p833_0p855_0p167_0p384"],"t":75,"s":[6.329],"e":[6.176]},{"i":{"x":[0.833],"y":[0.887]},"o":{"x":[0.167],"y":[0.195]},"n":["0p833_0p887_0p167_0p195"],"t":76,"s":[6.176],"e":[6.062]},{"i":{"x":[0.833],"y":[1.012]},"o":{"x":[0.167],"y":[0.316]},"n":["0p833_1p012_0p167_0p316"],"t":77,"s":[6.062],"e":[6.021]},{"i":{"x":[0.833],"y":[0.722]},"o":{"x":[0.167],"y":[0.01]},"n":["0p833_0p722_0p167_0p01"],"t":78,"s":[6.021],"e":[6.068]},{"i":{"x":[0.833],"y":[0.835]},"o":{"x":[0.167],"y":[0.119]},"n":["0p833_0p835_0p167_0p119"],"t":79,"s":[6.068],"e":[6.177]},{"i":{"x":[0.833],"y":[0.83]},"o":{"x":[0.167],"y":[0.168]},"n":["0p833_0p83_0p167_0p168"],"t":80,"s":[6.177],"e":[6.285]},{"i":{"x":[0.833],"y":[0.733]},"o":{"x":[0.167],"y":[0.163]},"n":["0p833_0p733_0p167_0p163"],"t":81,"s":[6.285],"e":[6.397]},{"i":{"x":[0.833],"y":[0.816]},"o":{"x":[0.167],"y":[0.121]},"n":["0p833_0p816_0p167_0p121"],"t":82,"s":[6.397],"e":[6.644]},{"i":{"x":[0.833],"y":[0.84]},"o":{"x":[0.167],"y":[0.152]},"n":["0p833_0p84_0p167_0p152"],"t":83,"s":[6.644],"e":[6.942]},{"i":{"x":[0.833],"y":[0.858]},"o":{"x":[0.167],"y":[0.174]},"n":["0p833_0p858_0p167_0p174"],"t":84,"s":[6.942],"e":[7.218]},{"i":{"x":[0.833],"y":[0.885]},"o":{"x":[0.167],"y":[0.201]},"n":["0p833_0p885_0p167_0p201"],"t":85,"s":[7.218],"e":[7.413]},{"i":{"x":[0.833],"y":[0.967]},"o":{"x":[0.167],"y":[0.303]},"n":["0p833_0p967_0p167_0p303"],"t":86,"s":[7.413],"e":[7.487]},{"i":{"x":[0.833],"y":[0.777]},"o":{"x":[0.167],"y":[-0.056]},"n":["0p833_0p777_0p167_-0p056"],"t":87,"s":[7.487],"e":[7.442]},{"i":{"x":[0.833],"y":[0.861]},"o":{"x":[0.167],"y":[0.133]},"n":["0p833_0p861_0p167_0p133"],"t":88,"s":[7.442],"e":[7.368]},{"i":{"x":[0.833],"y":[0.921]},"o":{"x":[0.167],"y":[0.207]},"n":["0p833_0p921_0p167_0p207"],"t":89,"s":[7.368],"e":[7.318]},{"i":{"x":[0.833],"y":[-1.111]},"o":{"x":[0.167],"y":[-1.691]},"n":["0p833_-1p111_0p167_-1p691"],"t":90,"s":[7.318],"e":[7.321]},{"i":{"x":[0.833],"y":[0.787]},"o":{"x":[0.167],"y":[0.087]},"n":["0p833_0p787_0p167_0p087"],"t":91,"s":[7.321],"e":[7.378]},{"i":{"x":[0.833],"y":[0.781]},"o":{"x":[0.167],"y":[0.137]},"n":["0p833_0p781_0p167_0p137"],"t":92,"s":[7.378],"e":[7.466]},{"i":{"x":[0.833],"y":[0.796]},"o":{"x":[0.167],"y":[0.135]},"n":["0p833_0p796_0p167_0p135"],"t":93,"s":[7.466],"e":[7.61]},{"i":{"x":[0.833],"y":[0.872]},"o":{"x":[0.167],"y":[0.141]},"n":["0p833_0p872_0p167_0p141"],"t":94,"s":[7.61],"e":[7.819]},{"i":{"x":[0.833],"y":[0.969]},"o":{"x":[0.167],"y":[0.24]},"n":["0p833_0p969_0p167_0p24"],"t":95,"s":[7.819],"e":[7.931]},{"i":{"x":[0.833],"y":[0.622]},"o":{"x":[0.167],"y":[-0.048]},"n":["0p833_0p622_0p167_-0p048"],"t":96,"s":[7.931],"e":[7.86]},{"i":{"x":[0.833],"y":[0.804]},"o":{"x":[0.167],"y":[0.107]},"n":["0p833_0p804_0p167_0p107"],"t":97,"s":[7.86],"e":[7.611]},{"i":{"x":[0.833],"y":[0.84]},"o":{"x":[0.167],"y":[0.145]},"n":["0p833_0p84_0p167_0p145"],"t":98,"s":[7.611],"e":[7.275]},{"i":{"x":[0.833],"y":[0.849]},"o":{"x":[0.167],"y":[0.174]},"n":["0p833_0p849_0p167_0p174"],"t":99,"s":[7.275],"e":[6.964]},{"i":{"x":[0.833],"y":[0.877]},"o":{"x":[0.167],"y":[0.186]},"n":["0p833_0p877_0p167_0p186"],"t":100,"s":[6.964],"e":[6.712]},{"i":{"x":[0.833],"y":[0.935]},"o":{"x":[0.167],"y":[0.259]},"n":["0p833_0p935_0p167_0p259"],"t":101,"s":[6.712],"e":[6.592]},{"i":{"x":[0.833],"y":[0.535]},"o":{"x":[0.167],"y":[-0.293]},"n":["0p833_0p535_0p167_-0p293"],"t":102,"s":[6.592],"e":[6.619]},{"i":{"x":[0.833],"y":[0.848]},"o":{"x":[0.167],"y":[0.102]},"n":["0p833_0p848_0p167_0p102"],"t":103,"s":[6.619],"e":[6.74]},{"i":{"x":[0.833],"y":[0.892]},"o":{"x":[0.167],"y":[0.184]},"n":["0p833_0p892_0p167_0p184"],"t":104,"s":[6.74],"e":[6.841]},{"i":{"x":[0.833],"y":[0.656]},"o":{"x":[0.167],"y":[0.36]},"n":["0p833_0p656_0p167_0p36"],"t":105,"s":[6.841],"e":[6.871]},{"i":{"x":[0.833],"y":[0.84]},"o":{"x":[0.167],"y":[0.11]},"n":["0p833_0p84_0p167_0p11"],"t":106,"s":[6.871],"e":[6.966]},{"i":{"x":[0.833],"y":[0.89]},"o":{"x":[0.167],"y":[0.174]},"n":["0p833_0p89_0p167_0p174"],"t":107,"s":[6.966],"e":[7.052]},{"i":{"x":[0.833],"y":[1.075]},"o":{"x":[0.167],"y":[0.346]},"n":["0p833_1p075_0p167_0p346"],"t":108,"s":[7.052],"e":[7.08]},{"i":{"x":[0.833],"y":[0.722]},"o":{"x":[0.167],"y":[0.039]},"n":["0p833_0p722_0p167_0p039"],"t":109,"s":[7.08],"e":[7.028]},{"i":{"x":[0.833],"y":[0.817]},"o":{"x":[0.167],"y":[0.119]},"n":["0p833_0p817_0p167_0p119"],"t":110,"s":[7.028],"e":[6.905]},{"i":{"x":[0.833],"y":[0.891]},"o":{"x":[0.167],"y":[0.153]},"n":["0p833_0p891_0p167_0p153"],"t":111,"s":[6.905],"e":[6.759]},{"i":{"x":[0.833],"y":[1.212]},"o":{"x":[0.167],"y":[0.355]},"n":["0p833_1p212_0p167_0p355"],"t":112,"s":[6.759],"e":[6.715]},{"i":{"x":[0.833],"y":[0.722]},"o":{"x":[0.167],"y":[0.06]},"n":["0p833_0p722_0p167_0p06"],"t":113,"s":[6.715],"e":[6.873]},{"i":{"x":[0.833],"y":[0.804]},"o":{"x":[0.167],"y":[0.119]},"n":["0p833_0p804_0p167_0p119"],"t":114,"s":[6.873],"e":[7.244]},{"i":{"x":[0.833],"y":[0.841]},"o":{"x":[0.167],"y":[0.145]},"n":["0p833_0p841_0p167_0p145"],"t":115,"s":[7.244],"e":[7.744]},{"i":{"x":[0.833],"y":[0.885]},"o":{"x":[0.167],"y":[0.176]},"n":["0p833_0p885_0p167_0p176"],"t":116,"s":[7.744],"e":[8.195]},{"i":{"x":[0.833],"y":[0.959]},"o":{"x":[0.167],"y":[0.3]},"n":["0p833_0p959_0p167_0p3"],"t":117,"s":[8.195],"e":[8.369]},{"i":{"x":[0.833],"y":[0.72]},"o":{"x":[0.167],"y":[-0.082]},"n":["0p833_0p72_0p167_-0p082"],"t":118,"s":[8.369],"e":[8.281]},{"i":{"x":[0.833],"y":[0.836]},"o":{"x":[0.167],"y":[0.119]},"n":["0p833_0p836_0p167_0p119"],"t":119,"s":[8.281],"e":[8.074]},{"i":{"x":[0.833],"y":[0.883]},"o":{"x":[0.167],"y":[0.17]},"n":["0p833_0p883_0p167_0p17"],"t":120,"s":[8.074],"e":[7.875]},{"i":{"x":[0.833],"y":[1.056]},"o":{"x":[0.167],"y":[0.29]},"n":["0p833_1p056_0p167_0p29"],"t":121,"s":[7.875],"e":[7.795]},{"i":{"x":[0.833],"y":[0.643]},"o":{"x":[0.167],"y":[0.033]},"n":["0p833_0p643_0p167_0p033"],"t":122,"s":[7.795],"e":[7.929]},{"i":{"x":[0.833],"y":[0.811]},"o":{"x":[0.167],"y":[0.109]},"n":["0p833_0p811_0p167_0p109"],"t":123,"s":[7.929],"e":[8.371]},{"i":{"x":[0.833],"y":[0.868]},"o":{"x":[0.167],"y":[0.149]},"n":["0p833_0p868_0p167_0p149"],"t":124,"s":[8.371],"e":[8.93]},{"i":{"x":[0.833],"y":[0.934]},"o":{"x":[0.167],"y":[0.225]},"n":["0p833_0p934_0p167_0p225"],"t":125,"s":[8.93],"e":[9.259]},{"i":{"x":[0.833],"y":[0.375]},"o":{"x":[0.167],"y":[-0.319]},"n":["0p833_0p375_0p167_-0p319"],"t":126,"s":[9.259],"e":[9.191]},{"i":{"x":[0.833],"y":[0.802]},"o":{"x":[0.167],"y":[0.096]},"n":["0p833_0p802_0p167_0p096"],"t":127,"s":[9.191],"e":[8.749]},{"i":{"x":[0.833],"y":[0.841]},"o":{"x":[0.167],"y":[0.144]},"n":["0p833_0p841_0p167_0p144"],"t":128,"s":[8.749],"e":[8.142]},{"i":{"x":[0.833],"y":[0.844]},"o":{"x":[0.167],"y":[0.175]},"n":["0p833_0p844_0p167_0p175"],"t":129,"s":[8.142],"e":[7.59]},{"i":{"x":[0.833],"y":[0.882]},"o":{"x":[0.167],"y":[0.179]},"n":["0p833_0p882_0p167_0p179"],"t":130,"s":[7.59],"e":[7.108]},{"i":{"x":[0.833],"y":[0.979]},"o":{"x":[0.167],"y":[0.284]},"n":["0p833_0p979_0p167_0p284"],"t":131,"s":[7.108],"e":[6.908]},{"i":{"x":[0.833],"y":[0.689]},"o":{"x":[0.167],"y":[-0.028]},"n":["0p833_0p689_0p167_-0p028"],"t":132,"s":[6.908],"e":[7.057]},{"i":{"x":[0.833],"y":[0.831]},"o":{"x":[0.167],"y":[0.114]},"n":["0p833_0p831_0p167_0p114"],"t":133,"s":[7.057],"e":[7.465]},{"i":{"x":[0.833],"y":[0.899]},"o":{"x":[0.167],"y":[0.165]},"n":["0p833_0p899_0p167_0p165"],"t":134,"s":[7.465],"e":[7.883]},{"i":{"x":[0.833],"y":[1.108]},"o":{"x":[0.167],"y":[0.476]},"n":["0p833_1p108_0p167_0p476"],"t":135,"s":[7.883],"e":[7.972]},{"i":{"x":[0.833],"y":[0.796]},"o":{"x":[0.167],"y":[0.047]},"n":["0p833_0p796_0p167_0p047"],"t":136,"s":[7.972],"e":[7.768]},{"i":{"x":[0.833],"y":[0.852]},"o":{"x":[0.167],"y":[0.141]},"n":["0p833_0p852_0p167_0p141"],"t":137,"s":[7.768],"e":[7.473]},{"i":{"x":[0.833],"y":[0.899]},"o":{"x":[0.167],"y":[0.191]},"n":["0p833_0p899_0p167_0p191"],"t":138,"s":[7.473],"e":[7.245]},{"i":{"x":[0.833],"y":[1.278]},"o":{"x":[0.167],"y":[0.488]},"n":["0p833_1p278_0p167_0p488"],"t":139,"s":[7.245],"e":[7.198]},{"i":{"x":[0.833],"y":[0.785]},"o":{"x":[0.167],"y":[0.064]},"n":["0p833_0p785_0p167_0p064"],"t":140,"s":[7.198],"e":[7.402]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.136]},"n":["0p833_0p833_0p167_0p136"],"t":141,"s":[7.402],"e":[7.723]},{"t":142}],"ix":4}},"a":{"a":0,"k":[28.441,21.711,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.745,0.472],[0.129,0.165],[0.024,0.263],[-0.243,-0.001],[-1.293,-0.012],[0.002,0.24],[-0.01,1.272],[0.239,-0.005],[0.744,0.004],[-0.007,0.291],[-0.336,0.003],[-0.657,0.005],[-0.021,0.646],[0.223,-0.003],[0.735,0.005],[0.1,0.048],[-0.043,0.221],[-0.246,0.001],[-0.676,0.005],[-0.026,0.629],[0.227,-0.003],[0.735,0.005],[-0.01,0.279],[-0.362,0.01],[-0.059,0],[-0.676,-0.012],[0.041,0.257],[-0.009,0.057],[0.3,-0.008],[0.725,0.008],[-0.139,0.326],[-0.227,-0.001],[-0.686,0.001],[-0.029,0.54],[0.297,-0.009],[0.734,0.009],[-0.223,0.299],[-0.172,0.007],[-0.685,-0.001],[-0.001,0.465],[0,0],[-0.057,0.003],[0.003,0.351],[0.455,0.012],[0.01,-0.002],[-0.01,0.208],[0,0.275],[1.017,0.001],[1.518,-0.012],[-0.002,0.251],[-0.005,1.214],[0.263,-0.019],[0.001,0.07],[-0.007,1.175],[-0.335,0.147],[-0.09,0.155],[0.025,0.233],[-0.001,0.02],[0.153,-0.032],[-0.005,-1.331],[-0.008,-1.078],[0.241,0.036],[-0.003,-0.245],[-0.018,-1.204],[0.296,0],[5.152,-0.001],[0.005,-0.933],[0,-0.403],[0.104,-0.008],[0.008,-0.328],[-0.344,-0.036],[-0.085,-0.1],[-0.006,-0.185],[-0.004,-0.049],[0.164,-0.027],[0.97,-0.181],[0,0],[0.369,-0.231],[0.371,-0.281],[-0.024,-0.014],[-0.804,-0.805],[-0.642,-1.238],[-0.19,0.005],[-0.588,-0.013],[-0.002,0.213],[-0.007,0.627],[0,0.753],[0,0],[0.013,-0.662],[-0.278,0.006],[-1.136,0],[-1.184,-0.016],[0.003,0.206],[0.023,0.713],[-0.242,-0.003],[0.008,-0.336],[-0.038,-0.596],[-0.89,0.001],[-1.245,0.013],[0.003,-0.268],[0,-1.058],[0.42,0],[6.181,-0.028],[0.21,0.448],[1.071,1.103],[1.514,0.737],[1.612,0.228],[0.062,0.094],[0.63,0.942],[0.369,0.48],[1.249,-0.024],[0.463,-0.063],[-0.221,-0.992],[-0.2,-0.877],[0.237,-0.061],[0.323,-0.11],[1.135,-0.883],[0.335,-0.266],[-0.006,0.075],[0.42,0.306],[0.759,-0.034],[-0.009,-0.978],[-0.05,0.003],[-0.377,0.04],[-0.167,0.032],[0.209,-0.26],[-0.554,-0.433],[-0.904,0.64],[-1.694,0.332],[-2.888,-1.396],[-1.017,-1.094],[-0.566,-2.211],[0.014,-1.23],[-0.241,0.007],[-0.499,-0.018],[0.016,0.237],[0.069,0.652],[0.108,0.691],[0,0],[-6.25,-0.002],[-0.127,-0.141],[-0.03,-0.278],[0.243,-0.048]],"o":[[-0.252,-0.069],[-0.13,-0.167],[-0.022,-0.246],[1.293,0.011],[0.247,0.002],[-0.01,-1.273],[0.002,-0.228],[-0.744,0.014],[-0.364,-0.003],[0.006,-0.264],[0.656,-0.005],[0.643,-0.005],[0.007,-0.216],[-0.734,0.011],[-0.115,-0.001],[-0.195,-0.094],[0.054,-0.271],[0.677,-0.004],[0.632,-0.005],[0.011,-0.262],[-0.734,0.009],[-0.349,-0.003],[0.01,-0.277],[0.058,-0.002],[0.675,0],[0.233,0.005],[-0.008,-0.057],[0.05,-0.298],[-0.723,0.02],[-0.402,-0.005],[0.091,-0.214],[0.686,0.003],[0.545,-0.001],[0.017,-0.303],[-0.733,0.021],[-0.413,-0.005],[0.097,-0.13],[0.684,-0.025],[0.451,0],[0,0],[0.097,-0.008],[0.432,-0.018],[-0.003,-0.355],[-0.01,-0.001],[-0.228,0.032],[0.013,-0.273],[0.002,-1.02],[-1.518,-0.002],[-0.266,0.001],[0.011,-1.215],[0.001,-0.202],[-0.065,0.005],[-0.01,-1.175],[0.003,-0.368],[0.21,-0.091],[0.094,-0.163],[-0.003,-0.019],[0.001,-0.178],[-1.11,0.238],[0.003,1.078],[0.001,0.22],[-0.245,-0.037],[0.012,1.204],[0.005,0.302],[-5.152,-0.009],[-0.936,0.001],[-0.001,0.379],[-0.138,0.009],[-0.351,0.028],[-0.009,0.326],[0.18,0.019],[0.094,0.111],[0.002,0.049],[0.016,0.178],[-0.972,0.163],[0,0],[-0.439,0.224],[-0.364,0.227],[0.092,0.073],[1.006,0.542],[0.991,0.993],[0.079,0.153],[0.587,-0.013],[0.221,0.005],[0.006,-0.626],[0.008,-0.722],[0,0],[0.665,-0.001],[-0.005,0.264],[1.135,-0.022],[1.183,0],[0.231,0.004],[-0.009,-0.714],[-0.011,-0.327],[0.233,0.004],[-0.014,0.596],[0.057,0.891],[1.244,-0.001],[0.273,-0.003],[-0.013,1.058],[0,0.411],[-6.179,0],[-0.554,0.003],[-0.653,-1.394],[-1.177,-1.212],[-1.462,-0.712],[-0.122,-0.017],[-0.624,-0.945],[-0.336,-0.502],[-0.799,-1.04],[-0.45,0.008],[0.232,1.049],[0.196,0.878],[0.041,0.179],[-0.33,0.085],[-1.363,0.466],[-0.278,0.215],[0.023,-0.166],[0.035,-0.494],[-0.618,-0.451],[0,1.008],[0.001,0.053],[0.378,-0.023],[0.087,-0.01],[-0.251,0.311],[0.559,0.437],[0.686,-0.918],[1.407,-0.998],[3.172,-0.622],[1.339,0.647],[1.571,1.688],[0.304,1.186],[-0.002,0.221],[0.499,-0.014],[0.228,0.009],[-0.046,-0.655],[-0.07,-0.657],[0,0],[6.249,0],[0.272,0],[0.146,0.163],[0.024,0.242],[-1.106,0.22]],"v":[[22.506,7.187],[21.773,6.964],[21.719,6.195],[22.032,5.88],[25.911,5.891],[26.223,5.573],[26.224,1.754],[25.929,1.451],[23.696,1.455],[23.144,0.993],[23.694,0.553],[25.664,0.549],[26.223,-0.018],[25.942,-0.308],[23.738,-0.308],[23.395,-0.358],[23.156,-0.845],[23.652,-1.208],[25.68,-1.21],[26.224,-1.757],[25.896,-2.063],[23.692,-2.062],[23.141,-2.535],[23.699,-2.966],[23.876,-2.966],[25.903,-2.962],[26.22,-3.271],[26.22,-3.447],[25.85,-3.826],[23.676,-3.824],[23.181,-4.455],[23.677,-4.748],[25.734,-4.747],[26.227,-5.236],[25.851,-5.609],[23.648,-5.605],[23.216,-6.268],[23.712,-6.496],[25.768,-6.507],[26.22,-6.971],[26.22,-7.471],[26.431,-7.489],[27.148,-8.105],[26.414,-8.694],[26.384,-8.694],[26.108,-8.986],[26.11,-9.809],[24.493,-11.439],[19.94,-11.434],[19.611,-11.772],[19.619,-15.416],[19.339,-15.739],[19.138,-15.936],[19.136,-19.462],[19.667,-20.239],[20.283,-20.505],[20.232,-21.187],[20.228,-21.246],[19.977,-21.429],[18.083,-19.266],[18.086,-16.033],[17.791,-15.727],[17.477,-15.418],[17.49,-11.805],[17.113,-11.433],[1.656,-11.439],[0.087,-9.875],[0.087,-8.713],[-0.261,-8.692],[-0.843,-8.113],[-0.265,-7.49],[0.254,-7.412],[0.296,-6.874],[0.297,-6.727],[0.055,-6.478],[-2.859,-5.962],[-4.349,-5.53],[-5.564,-4.901],[-6.626,-4.107],[-6.488,-3.999],[-3.788,-1.955],[-1.397,1.433],[-1.039,1.664],[0.724,1.663],[1.014,1.375],[1.056,-0.505],[1.058,-2.703],[3.331,-2.703],[3.994,-2.042],[4.336,-1.694],[7.743,-1.72],[11.295,-1.697],[11.568,-1.994],[11.559,-4.136],[11.954,-4.47],[12.358,-4.143],[12.402,-2.353],[13.85,-1.016],[17.583,-1.022],[17.931,-0.67],[17.925,2.504],[17.504,2.915],[-1.037,2.932],[-2.038,2.282],[-4.671,-1.434],[-8.734,-4.322],[-10.748,-5.53],[-11.844,-7.053],[-15.53,-8.77],[-16.616,-10.226],[-19.776,-11.583],[-21.138,-11.405],[-20.468,-8.371],[-19.872,-5.739],[-20.058,-5.368],[-21.03,-5.044],[-24.773,-3.009],[-25.659,-2.307],[-25.615,-2.623],[-26.095,-3.88],[-28.188,-4.339],[-28.182,-1.376],[-28.03,-1.225],[-26.897,-1.33],[-26.558,-1.396],[-27.212,-0.587],[-25.565,0.701],[-23.169,-1.606],[-18.511,-3.589],[-9.424,-2.352],[-5.907,0.297],[-2.771,6.189],[-2.341,9.825],[-2.049,10.132],[-0.551,10.142],[-0.25,9.849],[-0.372,7.885],[-0.677,5.885],[-0.162,5.885],[18.587,5.887],[19.373,5.946],[19.456,6.758],[19.148,7.15]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.282000014361,0.234999997008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.441,21.711],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"Body Inner Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[31.531,19.277,0],"ix":2},"a":{"a":0,"k":[20.528,7.309,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-0.218,-0.175],[0,0],[0,0],[0,0],[0,0],[0,0],[4.679,1.44]],"o":[[0,0],[0,0],[0,0],[0,0],[0.216,0.175],[0,0],[0,0],[0,0],[0,0],[0,0],[-4.68,-1.44]],"v":[[-20.279,-4.067],[-8.201,-1.906],[0.723,-3.519],[7.318,-7.059],[16.61,-5.058],[18.459,1.058],[19.185,1.406],[20.279,5.544],[19.185,7.059],[-5.48,7.059],[-11.9,-0.832]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.936999990426,0.169000004787,0.149000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[20.528,7.309],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"Face Light Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[52.842,19.272,0],"ix":2},"a":{"a":0,"k":[1.967,5.302,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.717,5.052],[-1.717,5.052],[-1.717,-5.052],[1.717,-5.052]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.741000007181,0.741000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.967,5.302],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"Back Wheel Cover Black Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[13.81,24.179,0],"ix":2},"a":{"a":0,"k":[12.831,7.913,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-12.581,-3.056],[-8.625,0.145],[2.856,-2.465],[7.819,4.492],[9.671,7.652],[12.581,7.663],[12.059,1.58],[7.568,-5.178],[-0.965,-7.663],[-9.441,-5.327]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.395999983245,0.395999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.831,7.914],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"Back Light Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.814,18.853,0],"ix":2},"a":{"a":0,"k":[1.324,1.731,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.147,-1.482]],"o":[[0,0],[0,0]],"v":[[1.067,-1.482],[1.074,1.482]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.804000016755,0.616000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.323,1.732],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"Driver Head Outlines","parent":42,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3.692,-1.422,0],"ix":2},"a":{"a":0,"k":[2.431,2.553,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.417,0.242],[0,0],[0,0],[-1.696,0.048],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.485,-0.146],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[1.697,-0.049],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.485,0.145],[0,0],[0,0],[0,0]],"v":[[-1.289,1.811],[-1.289,-0.266],[-2.182,-0.266],[-1.503,-0.654],[0.049,-2.253],[1.62,-0.799],[2.182,-0.221],[1.62,-0.221],[1.62,0.413],[1.62,0.799],[1.357,0.799],[0.825,2.158],[0.243,2.012],[0.146,2.303],[-0.969,1.867]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.2,0.165000002992,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.431,2.553],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"Driver Hand Outlines","parent":42,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[7.378,5.125,0],"ix":2},"a":{"a":0,"k":[3.936,2.259,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"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]],"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]],"v":[[-2.279,-2.009],[-0.874,-1.19],[1.161,-1.19],[2.664,-1.599],[2.664,-0.899],[3.246,-0.899],[1.84,0.119],[-1.117,0.119],[-2.508,-1.332],[1.226,0.952],[3.686,-0.528],[1.314,2.009],[-3.686,0.47]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.2,0.165000002992,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.936,2.259],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"Driver Body Outlines","parent":35,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16.33,11.297,0],"ix":2},"a":{"a":0,"k":[7.401,8.225,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.432,-0.534],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[1.552,-4.945],[0,0],[0,0],[0,0],[-1.745,2.667],[0,0],[2.431,0.533],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-2.593,-0.606],[-3.563,-6.957],[-3.563,-7.344],[-5.406,-7.975],[-5.406,-7.296],[-5.841,-0.606],[-4.201,2.304],[1.43,2.546],[3.223,5.891],[3.999,7.975],[5.745,6.957],[7.15,5.503],[4.581,5.746],[2.788,1.188],[-2.786,-0.267]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.2,0.165000002992,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.4,8.225],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":3,"nm":"Front Particles Ctrl","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[227,170,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"particle 200","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":135,"s":[100],"e":[0]},{"t":145}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":125,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":145}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":125,"op":146,"st":125,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"particle 199","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":133,"s":[100],"e":[0]},{"t":143}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":123,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":143}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":123,"op":144,"st":123,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"particle 198","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":132,"s":[100],"e":[0]},{"t":142}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":122,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":142}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":122,"op":143,"st":122,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":"particle 197","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":130,"s":[100],"e":[0]},{"t":140}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":120,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":140}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":120,"op":141,"st":120,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"particle 196","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":131,"s":[100],"e":[0]},{"t":141}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":121,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":141}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":121,"op":142,"st":121,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"particle 195","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":128,"s":[100],"e":[0]},{"t":138}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":118,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":138}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":118,"op":139,"st":118,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"particle 194","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":126,"s":[100],"e":[0]},{"t":136}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":116,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":136}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":116,"op":137,"st":116,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"particle 193","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":125,"s":[100],"e":[0]},{"t":135}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":115,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":135}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":115,"op":136,"st":115,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"particle 192","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":123,"s":[100],"e":[0]},{"t":133}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":113,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":133}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":113,"op":134,"st":113,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"particle 191","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":124,"s":[100],"e":[0]},{"t":134}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":114,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":134}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":114,"op":135,"st":114,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"particle 190","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":121,"s":[100],"e":[0]},{"t":131}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":111,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":131}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":111,"op":132,"st":111,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"particle 189","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":119,"s":[100],"e":[0]},{"t":129}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":109,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":129}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":109,"op":130,"st":109,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"particle 188","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":118,"s":[100],"e":[0]},{"t":128}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":108,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":128}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":108,"op":129,"st":108,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"particle 187","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":116,"s":[100],"e":[0]},{"t":126}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":106,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":126}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":106,"op":127,"st":106,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"particle 186","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":117,"s":[100],"e":[0]},{"t":127}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":107,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":127}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":107,"op":128,"st":107,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"particle 185","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":115,"s":[100],"e":[0]},{"t":125}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":105,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":125}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":105,"op":126,"st":105,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"particle 184","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":114,"s":[100],"e":[0]},{"t":124}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":104,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":124}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":104,"op":125,"st":104,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"particle 183","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":112,"s":[100],"e":[0]},{"t":122}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":102,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":122}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":102,"op":123,"st":102,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"particle 182","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":111,"s":[100],"e":[0]},{"t":121}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":101,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":121}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":101,"op":122,"st":101,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"particle 181","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":109,"s":[100],"e":[0]},{"t":119}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":99,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":119}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":99,"op":120,"st":99,"bm":0},{"ddd":0,"ind":64,"ty":4,"nm":"particle 180","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":108,"s":[100],"e":[0]},{"t":118}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":98,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":118}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":98,"op":119,"st":98,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":"particle 179","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":106,"s":[100],"e":[0]},{"t":116}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":96,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":116}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":96,"op":117,"st":96,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"particle 178","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":107,"s":[100],"e":[0]},{"t":117}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":97,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":117}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":97,"op":118,"st":97,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"particle 177","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":105,"s":[100],"e":[0]},{"t":115}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":95,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":115}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":95,"op":116,"st":95,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"particle 176","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":104,"s":[100],"e":[0]},{"t":114}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":94,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":114}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":94,"op":115,"st":94,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"particle 175","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":102,"s":[100],"e":[0]},{"t":112}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":92,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":112}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":92,"op":113,"st":92,"bm":0},{"ddd":0,"ind":70,"ty":4,"nm":"particle 148","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":100,"s":[100],"e":[0]},{"t":110}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":90,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":110}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":90,"op":111,"st":90,"bm":0},{"ddd":0,"ind":71,"ty":4,"nm":"particle 147","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":98,"s":[100],"e":[0]},{"t":108}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":88,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":108}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":88,"op":109,"st":88,"bm":0},{"ddd":0,"ind":72,"ty":4,"nm":"particle 146","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":97,"s":[100],"e":[0]},{"t":107}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":87,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":107}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":87,"op":108,"st":87,"bm":0},{"ddd":0,"ind":73,"ty":4,"nm":"particle 145","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":95,"s":[100],"e":[0]},{"t":105}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":85,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":105}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":85,"op":106,"st":85,"bm":0},{"ddd":0,"ind":74,"ty":4,"nm":"particle 144","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":96,"s":[100],"e":[0]},{"t":106}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":86,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":106}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":86,"op":107,"st":86,"bm":0},{"ddd":0,"ind":75,"ty":4,"nm":"particle 143","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93,"s":[100],"e":[0]},{"t":103}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":83,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":103}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":83,"op":104,"st":83,"bm":0},{"ddd":0,"ind":76,"ty":4,"nm":"particle 142","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":91,"s":[100],"e":[0]},{"t":101}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":101}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":81,"op":102,"st":81,"bm":0},{"ddd":0,"ind":77,"ty":4,"nm":"particle 141","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[100],"e":[0]},{"t":100}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":80,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":100}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":80,"op":101,"st":80,"bm":0},{"ddd":0,"ind":78,"ty":4,"nm":"particle 140","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":88,"s":[100],"e":[0]},{"t":98}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":78,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":98}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":78,"op":99,"st":78,"bm":0},{"ddd":0,"ind":79,"ty":4,"nm":"particle 139","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[100],"e":[0]},{"t":99}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":79,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":99}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":79,"op":100,"st":79,"bm":0},{"ddd":0,"ind":80,"ty":4,"nm":"particle 138","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":86,"s":[100],"e":[0]},{"t":96}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":76,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":96}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":76,"op":97,"st":76,"bm":0},{"ddd":0,"ind":81,"ty":4,"nm":"particle 137","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":84,"s":[100],"e":[0]},{"t":94}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":94}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":74,"op":95,"st":74,"bm":0},{"ddd":0,"ind":82,"ty":4,"nm":"particle 136","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":83,"s":[100],"e":[0]},{"t":93}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":73,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":93}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":73,"op":94,"st":73,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"particle 135","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":81,"s":[100],"e":[0]},{"t":91}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":71,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":91}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":71,"op":92,"st":71,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"particle 134","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":82,"s":[100],"e":[0]},{"t":92}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":72,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":92}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":72,"op":93,"st":72,"bm":0},{"ddd":0,"ind":85,"ty":4,"nm":"particle 133","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":80,"s":[100],"e":[0]},{"t":90}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":70,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":70,"op":91,"st":70,"bm":0},{"ddd":0,"ind":86,"ty":4,"nm":"particle 132","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":79,"s":[100],"e":[0]},{"t":89}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":89}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":69,"op":90,"st":69,"bm":0},{"ddd":0,"ind":87,"ty":4,"nm":"particle 131","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":77,"s":[100],"e":[0]},{"t":87}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":67,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":87}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":67,"op":88,"st":67,"bm":0},{"ddd":0,"ind":88,"ty":4,"nm":"particle 130","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":76,"s":[100],"e":[0]},{"t":86}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":66,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":86}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":66,"op":87,"st":66,"bm":0},{"ddd":0,"ind":89,"ty":4,"nm":"particle 129","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":74,"s":[100],"e":[0]},{"t":84}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":64,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":84}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":64,"op":85,"st":64,"bm":0},{"ddd":0,"ind":90,"ty":4,"nm":"particle 128","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":73,"s":[100],"e":[0]},{"t":83}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":63,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":83}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":63,"op":84,"st":63,"bm":0},{"ddd":0,"ind":91,"ty":4,"nm":"particle 127","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":71,"s":[100],"e":[0]},{"t":81}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":81}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":82,"st":61,"bm":0},{"ddd":0,"ind":92,"ty":4,"nm":"particle 126","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":72,"s":[100],"e":[0]},{"t":82}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":62,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":82}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":62,"op":83,"st":62,"bm":0},{"ddd":0,"ind":93,"ty":4,"nm":"particle 125","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":70,"s":[100],"e":[0]},{"t":80}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":80}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":60,"op":81,"st":60,"bm":0},{"ddd":0,"ind":94,"ty":4,"nm":"particle 124","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":69,"s":[100],"e":[0]},{"t":79}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":59,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":79}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":59,"op":80,"st":59,"bm":0},{"ddd":0,"ind":95,"ty":4,"nm":"particle 123","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":67,"s":[100],"e":[0]},{"t":77}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":57,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":77}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":57,"op":78,"st":57,"bm":0},{"ddd":0,"ind":96,"ty":4,"nm":"particle 122","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":68,"s":[100],"e":[0]},{"t":78}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":58,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":78}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":58,"op":79,"st":58,"bm":0},{"ddd":0,"ind":97,"ty":4,"nm":"particle 121","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":66,"s":[100],"e":[0]},{"t":76}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":56,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":76}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":56,"op":77,"st":56,"bm":0},{"ddd":0,"ind":98,"ty":4,"nm":"particle 120","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":65,"s":[100],"e":[0]},{"t":75}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":75}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":55,"op":76,"st":55,"bm":0},{"ddd":0,"ind":99,"ty":4,"nm":"particle 119","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":63,"s":[100],"e":[0]},{"t":73}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":53,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":73}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":53,"op":74,"st":53,"bm":0},{"ddd":0,"ind":100,"ty":4,"nm":"particle 118","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64,"s":[100],"e":[0]},{"t":74}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":54,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":74}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":54,"op":75,"st":54,"bm":0},{"ddd":0,"ind":101,"ty":4,"nm":"particle 117","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":62,"s":[100],"e":[0]},{"t":72}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":72}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":52,"op":73,"st":52,"bm":0},{"ddd":0,"ind":102,"ty":4,"nm":"particle 116","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":61,"s":[100],"e":[0]},{"t":71}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":71}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":51,"op":72,"st":51,"bm":0},{"ddd":0,"ind":103,"ty":4,"nm":"particle 115","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":59,"s":[100],"e":[0]},{"t":69}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":49,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":69}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":49,"op":70,"st":49,"bm":0},{"ddd":0,"ind":104,"ty":4,"nm":"particle 114","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":58,"s":[100],"e":[0]},{"t":68}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":48,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":68}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":48,"op":69,"st":48,"bm":0},{"ddd":0,"ind":105,"ty":4,"nm":"particle 113","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[100],"e":[0]},{"t":66}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":46,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":66}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":46,"op":67,"st":46,"bm":0},{"ddd":0,"ind":106,"ty":4,"nm":"particle 112","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":55,"s":[100],"e":[0]},{"t":65}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":65}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":45,"op":66,"st":45,"bm":0},{"ddd":0,"ind":107,"ty":4,"nm":"particle 111","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":53,"s":[100],"e":[0]},{"t":63}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":43,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":63}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":43,"op":64,"st":43,"bm":0},{"ddd":0,"ind":108,"ty":4,"nm":"particle 110","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":54,"s":[100],"e":[0]},{"t":64}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":64}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":44,"op":65,"st":44,"bm":0},{"ddd":0,"ind":109,"ty":4,"nm":"particle 109","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":52,"s":[100],"e":[0]},{"t":62}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":62}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":42,"op":63,"st":42,"bm":0},{"ddd":0,"ind":110,"ty":4,"nm":"particle 108","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":51,"s":[100],"e":[0]},{"t":61}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":61}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":41,"op":62,"st":41,"bm":0},{"ddd":0,"ind":111,"ty":4,"nm":"particle 107","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":49,"s":[100],"e":[0]},{"t":59}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":39,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":59}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":39,"op":60,"st":39,"bm":0},{"ddd":0,"ind":112,"ty":4,"nm":"particle 106","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":47,"s":[100],"e":[0]},{"t":57}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":57}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":37,"op":58,"st":37,"bm":0},{"ddd":0,"ind":113,"ty":4,"nm":"particle 105","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":45,"s":[100],"e":[0]},{"t":55}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":35,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":55}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":35,"op":56,"st":35,"bm":0},{"ddd":0,"ind":114,"ty":4,"nm":"particle 104","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":44,"s":[100],"e":[0]},{"t":54}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":34,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":54}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":34,"op":55,"st":34,"bm":0},{"ddd":0,"ind":115,"ty":4,"nm":"particle 103","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[100],"e":[0]},{"t":52}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":52}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":32,"op":53,"st":32,"bm":0},{"ddd":0,"ind":116,"ty":4,"nm":"particle 102","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":43,"s":[100],"e":[0]},{"t":53}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":33,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":53}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":33,"op":54,"st":33,"bm":0},{"ddd":0,"ind":117,"ty":4,"nm":"particle 101","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":41,"s":[100],"e":[0]},{"t":51}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":51}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":31,"op":52,"st":31,"bm":0},{"ddd":0,"ind":118,"ty":4,"nm":"particle 100","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[100],"e":[0]},{"t":50}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":50}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":30,"op":51,"st":30,"bm":0},{"ddd":0,"ind":119,"ty":4,"nm":"particle 99","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":38,"s":[100],"e":[0]},{"t":48}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":28,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":48}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":28,"op":49,"st":28,"bm":0},{"ddd":0,"ind":120,"ty":4,"nm":"particle 98","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":37,"s":[100],"e":[0]},{"t":47}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":27,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":47}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":27,"op":48,"st":27,"bm":0},{"ddd":0,"ind":121,"ty":4,"nm":"particle 97","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[100],"e":[0]},{"t":45}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":45}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":25,"op":46,"st":25,"bm":0},{"ddd":0,"ind":122,"ty":4,"nm":"particle 96","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[100],"e":[0]},{"t":44}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":24,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":44}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":24,"op":45,"st":24,"bm":0},{"ddd":0,"ind":123,"ty":4,"nm":"particle 95","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":32,"s":[100],"e":[0]},{"t":42}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":42}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":43,"st":22,"bm":0},{"ddd":0,"ind":124,"ty":4,"nm":"particle 94","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":33,"s":[100],"e":[0]},{"t":43}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":23,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":43}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":23,"op":44,"st":23,"bm":0},{"ddd":0,"ind":125,"ty":4,"nm":"particle 93","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":31,"s":[100],"e":[0]},{"t":41}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":41}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":21,"op":42,"st":21,"bm":0},{"ddd":0,"ind":126,"ty":4,"nm":"particle 92","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[100],"e":[0]},{"t":40}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":40}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":41,"st":20,"bm":0},{"ddd":0,"ind":127,"ty":4,"nm":"particle 91","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":28,"s":[100],"e":[0]},{"t":38}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":38}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":18,"op":39,"st":18,"bm":0},{"ddd":0,"ind":128,"ty":4,"nm":"particle 90","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":29,"s":[100],"e":[0]},{"t":39}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":19,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":39}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":19,"op":40,"st":19,"bm":0},{"ddd":0,"ind":129,"ty":4,"nm":"particle 89","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":27,"s":[100],"e":[0]},{"t":37}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":37}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":17,"op":38,"st":17,"bm":0},{"ddd":0,"ind":130,"ty":4,"nm":"particle 88","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":26,"s":[100],"e":[0]},{"t":36}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":36}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":16,"op":37,"st":16,"bm":0},{"ddd":0,"ind":131,"ty":4,"nm":"particle 87","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":24,"s":[100],"e":[0]},{"t":34}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":14,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":34}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":14,"op":35,"st":14,"bm":0},{"ddd":0,"ind":132,"ty":4,"nm":"particle 86","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25,"s":[100],"e":[0]},{"t":35}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":35}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":36,"st":15,"bm":0},{"ddd":0,"ind":133,"ty":4,"nm":"particle 85","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":23,"s":[100],"e":[0]},{"t":33}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":13,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":33}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":13,"op":34,"st":13,"bm":0},{"ddd":0,"ind":134,"ty":4,"nm":"particle 84","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[100],"e":[0]},{"t":32}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":32}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":12,"op":33,"st":12,"bm":0},{"ddd":0,"ind":135,"ty":4,"nm":"particle 83","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[100],"e":[0]},{"t":30}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":30}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":10,"op":31,"st":10,"bm":0},{"ddd":0,"ind":136,"ty":4,"nm":"particle 82","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":19,"s":[100],"e":[0]},{"t":29}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":9,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":29}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":30,"st":9,"bm":0},{"ddd":0,"ind":137,"ty":4,"nm":"particle 81","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[100],"e":[0]},{"t":27}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":7,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":27}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":28,"st":7,"bm":0},{"ddd":0,"ind":138,"ty":4,"nm":"particle 80","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":16,"s":[100],"e":[0]},{"t":26}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":26}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":6,"op":27,"st":6,"bm":0},{"ddd":0,"ind":139,"ty":4,"nm":"particle 79","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[100],"e":[0]},{"t":24}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":4,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":24}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":25,"st":4,"bm":0},{"ddd":0,"ind":140,"ty":4,"nm":"particle 78","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[100],"e":[0]},{"t":25}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[-7,-4,0],"e":[-27,-4,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":25}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":26,"st":5,"bm":0},{"ddd":0,"ind":141,"ty":4,"nm":"particle 77","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":13,"s":[100],"e":[0]},{"t":23}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[-7,-2,0],"e":[-27,-2,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":23}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":3,"op":24,"st":3,"bm":0},{"ddd":0,"ind":142,"ty":4,"nm":"particle 76","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12,"s":[100],"e":[0]},{"t":22}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2,"s":[-6,-8,0],"e":[-26,-8,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":22}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2,"op":23,"st":2,"bm":0},{"ddd":0,"ind":143,"ty":4,"nm":"particle 75","parent":43,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[0]},{"t":20}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[0,0,0],"e":[-20,0,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":20}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":21,"st":0,"bm":0},{"ddd":0,"ind":144,"ty":4,"nm":"particle 174","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":135,"s":[100],"e":[0]},{"t":145}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":125,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":145}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":125,"op":146,"st":125,"bm":0},{"ddd":0,"ind":145,"ty":4,"nm":"particle 173","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":133,"s":[100],"e":[0]},{"t":143}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":123,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":143}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":123,"op":144,"st":123,"bm":0},{"ddd":0,"ind":146,"ty":4,"nm":"particle 172","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":132,"s":[100],"e":[0]},{"t":142}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":122,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":142}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":122,"op":143,"st":122,"bm":0},{"ddd":0,"ind":147,"ty":4,"nm":"particle 171","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":130,"s":[100],"e":[0]},{"t":140}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":120,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":140}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":120,"op":141,"st":120,"bm":0},{"ddd":0,"ind":148,"ty":4,"nm":"particle 170","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":131,"s":[100],"e":[0]},{"t":141}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":121,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":141}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":121,"op":142,"st":121,"bm":0},{"ddd":0,"ind":149,"ty":4,"nm":"particle 169","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":128,"s":[100],"e":[0]},{"t":138}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":118,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":138}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":118,"op":139,"st":118,"bm":0},{"ddd":0,"ind":150,"ty":4,"nm":"particle 168","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":126,"s":[100],"e":[0]},{"t":136}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":116,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":136}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":116,"op":137,"st":116,"bm":0},{"ddd":0,"ind":151,"ty":4,"nm":"particle 167","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":125,"s":[100],"e":[0]},{"t":135}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":115,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":135}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":115,"op":136,"st":115,"bm":0},{"ddd":0,"ind":152,"ty":4,"nm":"particle 166","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":123,"s":[100],"e":[0]},{"t":133}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":113,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":133}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":113,"op":134,"st":113,"bm":0},{"ddd":0,"ind":153,"ty":4,"nm":"particle 165","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":124,"s":[100],"e":[0]},{"t":134}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":114,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":134}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":114,"op":135,"st":114,"bm":0},{"ddd":0,"ind":154,"ty":4,"nm":"particle 164","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":121,"s":[100],"e":[0]},{"t":131}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":111,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":131}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":111,"op":132,"st":111,"bm":0},{"ddd":0,"ind":155,"ty":4,"nm":"particle 163","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":119,"s":[100],"e":[0]},{"t":129}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":109,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":129}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":109,"op":130,"st":109,"bm":0},{"ddd":0,"ind":156,"ty":4,"nm":"particle 162","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":118,"s":[100],"e":[0]},{"t":128}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":108,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":128}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":108,"op":129,"st":108,"bm":0},{"ddd":0,"ind":157,"ty":4,"nm":"particle 161","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":116,"s":[100],"e":[0]},{"t":126}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":106,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":126}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":106,"op":127,"st":106,"bm":0},{"ddd":0,"ind":158,"ty":4,"nm":"particle 160","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":117,"s":[100],"e":[0]},{"t":127}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":107,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":127}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":107,"op":128,"st":107,"bm":0},{"ddd":0,"ind":159,"ty":4,"nm":"particle 159","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":115,"s":[100],"e":[0]},{"t":125}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":105,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":125}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":105,"op":126,"st":105,"bm":0},{"ddd":0,"ind":160,"ty":4,"nm":"particle 158","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":114,"s":[100],"e":[0]},{"t":124}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":104,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":124}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":104,"op":125,"st":104,"bm":0},{"ddd":0,"ind":161,"ty":4,"nm":"particle 157","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":112,"s":[100],"e":[0]},{"t":122}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":102,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":122}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":102,"op":123,"st":102,"bm":0},{"ddd":0,"ind":162,"ty":4,"nm":"particle 156","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":111,"s":[100],"e":[0]},{"t":121}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":101,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":121}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":101,"op":122,"st":101,"bm":0},{"ddd":0,"ind":163,"ty":4,"nm":"particle 155","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":109,"s":[100],"e":[0]},{"t":119}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":99,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":119}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":99,"op":120,"st":99,"bm":0},{"ddd":0,"ind":164,"ty":4,"nm":"particle 154","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":108,"s":[100],"e":[0]},{"t":118}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":98,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":118}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":98,"op":119,"st":98,"bm":0},{"ddd":0,"ind":165,"ty":4,"nm":"particle 153","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":106,"s":[100],"e":[0]},{"t":116}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":96,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":116}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":96,"op":117,"st":96,"bm":0},{"ddd":0,"ind":166,"ty":4,"nm":"particle 152","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":107,"s":[100],"e":[0]},{"t":117}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":97,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":117}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":97,"op":118,"st":97,"bm":0},{"ddd":0,"ind":167,"ty":4,"nm":"particle 151","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":105,"s":[100],"e":[0]},{"t":115}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":95,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":115}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":95,"op":116,"st":95,"bm":0},{"ddd":0,"ind":168,"ty":4,"nm":"particle 150","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":104,"s":[100],"e":[0]},{"t":114}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":94,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":114}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":94,"op":115,"st":94,"bm":0},{"ddd":0,"ind":169,"ty":4,"nm":"particle 149","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":102,"s":[100],"e":[0]},{"t":112}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":92,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":112}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":92,"op":113,"st":92,"bm":0},{"ddd":0,"ind":170,"ty":4,"nm":"particle 74","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":100,"s":[100],"e":[0]},{"t":110}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":90,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":110}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":90,"op":111,"st":90,"bm":0},{"ddd":0,"ind":171,"ty":4,"nm":"particle 73","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":98,"s":[100],"e":[0]},{"t":108}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":88,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":108}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":88,"op":109,"st":88,"bm":0},{"ddd":0,"ind":172,"ty":4,"nm":"particle 72","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":97,"s":[100],"e":[0]},{"t":107}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":87,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":107}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":87,"op":108,"st":87,"bm":0},{"ddd":0,"ind":173,"ty":4,"nm":"particle 71","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":95,"s":[100],"e":[0]},{"t":105}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":85,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":105}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":85,"op":106,"st":85,"bm":0},{"ddd":0,"ind":174,"ty":4,"nm":"particle 70","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":96,"s":[100],"e":[0]},{"t":106}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":86,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":106}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":86,"op":107,"st":86,"bm":0},{"ddd":0,"ind":175,"ty":4,"nm":"particle 69","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93,"s":[100],"e":[0]},{"t":103}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":83,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":103}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":83,"op":104,"st":83,"bm":0},{"ddd":0,"ind":176,"ty":4,"nm":"particle 68","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":91,"s":[100],"e":[0]},{"t":101}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":101}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":81,"op":102,"st":81,"bm":0},{"ddd":0,"ind":177,"ty":4,"nm":"particle 67","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[100],"e":[0]},{"t":100}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":80,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":100}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":80,"op":101,"st":80,"bm":0},{"ddd":0,"ind":178,"ty":4,"nm":"particle 66","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":88,"s":[100],"e":[0]},{"t":98}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":78,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":98}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":78,"op":99,"st":78,"bm":0},{"ddd":0,"ind":179,"ty":4,"nm":"particle 65","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":89,"s":[100],"e":[0]},{"t":99}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":79,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":99}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":79,"op":100,"st":79,"bm":0},{"ddd":0,"ind":180,"ty":4,"nm":"particle 64","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":86,"s":[100],"e":[0]},{"t":96}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":76,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":96}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":76,"op":97,"st":76,"bm":0},{"ddd":0,"ind":181,"ty":4,"nm":"particle 63","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":84,"s":[100],"e":[0]},{"t":94}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":94}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":74,"op":95,"st":74,"bm":0},{"ddd":0,"ind":182,"ty":4,"nm":"particle 62","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":83,"s":[100],"e":[0]},{"t":93}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":73,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":93}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":73,"op":94,"st":73,"bm":0},{"ddd":0,"ind":183,"ty":4,"nm":"particle 61","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":81,"s":[100],"e":[0]},{"t":91}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":71,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":91}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":71,"op":92,"st":71,"bm":0},{"ddd":0,"ind":184,"ty":4,"nm":"particle 60","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":82,"s":[100],"e":[0]},{"t":92}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":72,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":92}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":72,"op":93,"st":72,"bm":0},{"ddd":0,"ind":185,"ty":4,"nm":"particle 59","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":80,"s":[100],"e":[0]},{"t":90}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":70,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":90}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":70,"op":91,"st":70,"bm":0},{"ddd":0,"ind":186,"ty":4,"nm":"particle 58","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":79,"s":[100],"e":[0]},{"t":89}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":89}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":69,"op":90,"st":69,"bm":0},{"ddd":0,"ind":187,"ty":4,"nm":"particle 57","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":77,"s":[100],"e":[0]},{"t":87}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":67,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":87}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":67,"op":88,"st":67,"bm":0},{"ddd":0,"ind":188,"ty":4,"nm":"particle 56","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":76,"s":[100],"e":[0]},{"t":86}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":66,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":86}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":66,"op":87,"st":66,"bm":0},{"ddd":0,"ind":189,"ty":4,"nm":"particle 55","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":74,"s":[100],"e":[0]},{"t":84}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":64,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":84}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":64,"op":85,"st":64,"bm":0},{"ddd":0,"ind":190,"ty":4,"nm":"particle 54","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":73,"s":[100],"e":[0]},{"t":83}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":63,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":83}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":63,"op":84,"st":63,"bm":0},{"ddd":0,"ind":191,"ty":4,"nm":"particle 53","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":71,"s":[100],"e":[0]},{"t":81}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":81}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":82,"st":61,"bm":0},{"ddd":0,"ind":192,"ty":4,"nm":"particle 52","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":72,"s":[100],"e":[0]},{"t":82}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":62,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":82}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":62,"op":83,"st":62,"bm":0},{"ddd":0,"ind":193,"ty":4,"nm":"particle 51","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":70,"s":[100],"e":[0]},{"t":80}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":80}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":60,"op":81,"st":60,"bm":0},{"ddd":0,"ind":194,"ty":4,"nm":"particle 50","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":69,"s":[100],"e":[0]},{"t":79}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":59,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":79}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":59,"op":80,"st":59,"bm":0},{"ddd":0,"ind":195,"ty":4,"nm":"particle 49","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":67,"s":[100],"e":[0]},{"t":77}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":57,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":77}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":57,"op":78,"st":57,"bm":0},{"ddd":0,"ind":196,"ty":4,"nm":"particle 48","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":68,"s":[100],"e":[0]},{"t":78}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":58,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":78}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":58,"op":79,"st":58,"bm":0},{"ddd":0,"ind":197,"ty":4,"nm":"particle 47","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":66,"s":[100],"e":[0]},{"t":76}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":56,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":76}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":56,"op":77,"st":56,"bm":0},{"ddd":0,"ind":198,"ty":4,"nm":"particle 46","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":65,"s":[100],"e":[0]},{"t":75}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":75}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":55,"op":76,"st":55,"bm":0},{"ddd":0,"ind":199,"ty":4,"nm":"particle 45","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":63,"s":[100],"e":[0]},{"t":73}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":53,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":73}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":53,"op":74,"st":53,"bm":0},{"ddd":0,"ind":200,"ty":4,"nm":"particle 44","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64,"s":[100],"e":[0]},{"t":74}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":54,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":74}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":54,"op":75,"st":54,"bm":0},{"ddd":0,"ind":201,"ty":4,"nm":"particle 43","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":62,"s":[100],"e":[0]},{"t":72}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":72}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":52,"op":73,"st":52,"bm":0},{"ddd":0,"ind":202,"ty":4,"nm":"particle 42","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":61,"s":[100],"e":[0]},{"t":71}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":71}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":51,"op":72,"st":51,"bm":0},{"ddd":0,"ind":203,"ty":4,"nm":"particle 41","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":59,"s":[100],"e":[0]},{"t":69}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":49,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":69}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":49,"op":70,"st":49,"bm":0},{"ddd":0,"ind":204,"ty":4,"nm":"particle 40","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":58,"s":[100],"e":[0]},{"t":68}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":48,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":68}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":48,"op":69,"st":48,"bm":0},{"ddd":0,"ind":205,"ty":4,"nm":"particle 39","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[100],"e":[0]},{"t":66}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":46,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":66}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":46,"op":67,"st":46,"bm":0},{"ddd":0,"ind":206,"ty":4,"nm":"particle 38","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":55,"s":[100],"e":[0]},{"t":65}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":45,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":65}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":45,"op":66,"st":45,"bm":0},{"ddd":0,"ind":207,"ty":4,"nm":"particle 37","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":53,"s":[100],"e":[0]},{"t":63}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":43,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":63}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":43,"op":64,"st":43,"bm":0},{"ddd":0,"ind":208,"ty":4,"nm":"particle 36","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":54,"s":[100],"e":[0]},{"t":64}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":64}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":44,"op":65,"st":44,"bm":0},{"ddd":0,"ind":209,"ty":4,"nm":"particle 35","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":52,"s":[100],"e":[0]},{"t":62}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":42,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":62}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":42,"op":63,"st":42,"bm":0},{"ddd":0,"ind":210,"ty":4,"nm":"particle 34","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":51,"s":[100],"e":[0]},{"t":61}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":61}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":41,"op":62,"st":41,"bm":0},{"ddd":0,"ind":211,"ty":4,"nm":"particle 33","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":49,"s":[100],"e":[0]},{"t":59}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":39,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":59}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":39,"op":60,"st":39,"bm":0},{"ddd":0,"ind":212,"ty":4,"nm":"particle 32","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":47,"s":[100],"e":[0]},{"t":57}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":57}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":37,"op":58,"st":37,"bm":0},{"ddd":0,"ind":213,"ty":4,"nm":"particle 31","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":45,"s":[100],"e":[0]},{"t":55}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":35,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":55}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":35,"op":56,"st":35,"bm":0},{"ddd":0,"ind":214,"ty":4,"nm":"particle 30","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":44,"s":[100],"e":[0]},{"t":54}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":34,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":54}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":34,"op":55,"st":34,"bm":0},{"ddd":0,"ind":215,"ty":4,"nm":"particle 29","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":42,"s":[100],"e":[0]},{"t":52}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":32,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":52}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":32,"op":53,"st":32,"bm":0},{"ddd":0,"ind":216,"ty":4,"nm":"particle 28","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":43,"s":[100],"e":[0]},{"t":53}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":33,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":53}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":33,"op":54,"st":33,"bm":0},{"ddd":0,"ind":217,"ty":4,"nm":"particle 27","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":41,"s":[100],"e":[0]},{"t":51}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":51}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":31,"op":52,"st":31,"bm":0},{"ddd":0,"ind":218,"ty":4,"nm":"particle 26","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[100],"e":[0]},{"t":50}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":30,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":50}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":30,"op":51,"st":30,"bm":0},{"ddd":0,"ind":219,"ty":4,"nm":"particle 25","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":38,"s":[100],"e":[0]},{"t":48}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":28,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":48}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":28,"op":49,"st":28,"bm":0},{"ddd":0,"ind":220,"ty":4,"nm":"particle 24","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":37,"s":[100],"e":[0]},{"t":47}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":27,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":47}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":27,"op":48,"st":27,"bm":0},{"ddd":0,"ind":221,"ty":4,"nm":"particle 23","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35,"s":[100],"e":[0]},{"t":45}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":45}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":25,"op":46,"st":25,"bm":0},{"ddd":0,"ind":222,"ty":4,"nm":"particle 22","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[100],"e":[0]},{"t":44}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":24,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":44}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":24,"op":45,"st":24,"bm":0},{"ddd":0,"ind":223,"ty":4,"nm":"particle 21","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":32,"s":[100],"e":[0]},{"t":42}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":42}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":43,"st":22,"bm":0},{"ddd":0,"ind":224,"ty":4,"nm":"particle 20","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":33,"s":[100],"e":[0]},{"t":43}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":23,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":43}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":23,"op":44,"st":23,"bm":0},{"ddd":0,"ind":225,"ty":4,"nm":"particle 19","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":31,"s":[100],"e":[0]},{"t":41}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":41}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":21,"op":42,"st":21,"bm":0},{"ddd":0,"ind":226,"ty":4,"nm":"particle 18","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[100],"e":[0]},{"t":40}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":20,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":40}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":41,"st":20,"bm":0},{"ddd":0,"ind":227,"ty":4,"nm":"particle 17","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":28,"s":[100],"e":[0]},{"t":38}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":38}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":18,"op":39,"st":18,"bm":0},{"ddd":0,"ind":228,"ty":4,"nm":"particle 16","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":29,"s":[100],"e":[0]},{"t":39}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":19,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":39}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":19,"op":40,"st":19,"bm":0},{"ddd":0,"ind":229,"ty":4,"nm":"particle 15","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":27,"s":[100],"e":[0]},{"t":37}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":37}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":17,"op":38,"st":17,"bm":0},{"ddd":0,"ind":230,"ty":4,"nm":"particle 14","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":26,"s":[100],"e":[0]},{"t":36}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":36}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":16,"op":37,"st":16,"bm":0},{"ddd":0,"ind":231,"ty":4,"nm":"particle 13","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":24,"s":[100],"e":[0]},{"t":34}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":14,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":34}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":14,"op":35,"st":14,"bm":0},{"ddd":0,"ind":232,"ty":4,"nm":"particle 12","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25,"s":[100],"e":[0]},{"t":35}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":35}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":36,"st":15,"bm":0},{"ddd":0,"ind":233,"ty":4,"nm":"particle 11","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":23,"s":[100],"e":[0]},{"t":33}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":13,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":33}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":13,"op":34,"st":13,"bm":0},{"ddd":0,"ind":234,"ty":4,"nm":"particle 10","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[100],"e":[0]},{"t":32}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":32}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":12,"op":33,"st":12,"bm":0},{"ddd":0,"ind":235,"ty":4,"nm":"particle 9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[100],"e":[0]},{"t":30}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":30}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":10,"op":31,"st":10,"bm":0},{"ddd":0,"ind":236,"ty":4,"nm":"particle 8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":19,"s":[100],"e":[0]},{"t":29}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":9,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":29}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":30,"st":9,"bm":0},{"ddd":0,"ind":237,"ty":4,"nm":"particle 7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[100],"e":[0]},{"t":27}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":7,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":27}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":28,"st":7,"bm":0},{"ddd":0,"ind":238,"ty":4,"nm":"particle 6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":16,"s":[100],"e":[0]},{"t":26}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":26}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":6,"op":27,"st":6,"bm":0},{"ddd":0,"ind":239,"ty":4,"nm":"particle 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[100],"e":[0]},{"t":24}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":4,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":24}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":25,"st":4,"bm":0},{"ddd":0,"ind":240,"ty":4,"nm":"particle 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[100],"e":[0]},{"t":25}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[193,151,0],"e":[173,151,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":25}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":26,"st":5,"bm":0},{"ddd":0,"ind":241,"ty":4,"nm":"particle 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":13,"s":[100],"e":[0]},{"t":23}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[193,153,0],"e":[173,153,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":23}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":3,"op":24,"st":3,"bm":0},{"ddd":0,"ind":242,"ty":4,"nm":"particle 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12,"s":[100],"e":[0]},{"t":22}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":2,"s":[194,147,0],"e":[174,147,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":22}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2,"op":23,"st":2,"bm":0},{"ddd":0,"ind":243,"ty":4,"nm":"particle","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[0]},{"t":20}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[200,155,0],"e":[180,155,0],"to":[-0.58333331346512,-14,0],"ti":[3.58333325386047,-16,0]},{"t":20}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[2,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.349019616842,0.247058823705,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-20,28.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":21,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"matte 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.235,155.416,0],"ix":2},"a":{"a":0,"k":[159.625,99.679,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[159.375,99.43],[-159.375,99.43],[-159.375,-99.43],[159.375,-99.43]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.898000021542,0.773000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.625,99.679],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":284,"op":427,"st":284,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Tractor","tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":284,"s":[-8],"e":[-5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":341.404,"s":[-5],"e":[7]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":348.957,"s":[7],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":364.063,"s":[3],"e":[-1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":379.17,"s":[-1],"e":[-5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":391.255,"s":[-5],"e":[-12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":400.319,"s":[-12],"e":[-6]},{"t":418.447265625}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":284,"s":[-151.709],"e":[252.291]},{"t":426}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":284,"s":[284.709],"e":[271.709]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":320.255,"s":[271.709],"e":[262.709]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":341.404,"s":[262.709],"e":[232.709]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":348.957,"s":[232.709],"e":[247.709]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":364.063,"s":[247.709],"e":[262.709]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":379.17,"s":[262.709],"e":[271.209]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":391.255,"s":[271.209],"e":[286.209]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":400.319,"s":[286.209],"e":[268.209]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":413.915,"s":[268.209],"e":[257.209]},{"t":418.447265625}],"ix":4}},"a":{"a":0,"k":[84.07,197.084,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"w":400,"h":310,"ip":284,"op":427,"st":284,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"matte 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.235,155.416,0],"ix":2},"a":{"a":0,"k":[159.625,99.679,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[159.375,99.43],[-159.375,99.43],[-159.375,-99.43],[159.375,-99.43]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.898000021542,0.773000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.625,99.679],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":142,"op":285,"st":142,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Tractor","tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":152.574,"s":[2],"e":[1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":161.639,"s":[1],"e":[-10.952]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":167.681,"s":[-10.952],"e":[-10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":175.234,"s":[-10],"e":[-3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":182.787,"s":[-3],"e":[-2.895]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":219.043,"s":[-2.895],"e":[-6]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":240.191,"s":[-6],"e":[-7]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":249.255,"s":[-7],"e":[-8]},{"t":284}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":142,"s":[521.291],"e":[108.291]},{"t":284}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.486],"y":[0.936]},"o":{"x":[0.017],"y":[-0.006]},"n":["0p486_0p936_0p017_-0p006"],"t":161.639,"s":[214.709],"e":[189.887]},{"i":{"x":[0.673],"y":[1.24]},"o":{"x":[0.332],"y":[-0.185]},"n":["0p673_1p24_0p332_-0p185"],"t":167.681,"s":[189.887],"e":[196.785]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[-0.047]},"n":["0p833_1_0p167_-0p047"],"t":175.234,"s":[196.785],"e":[214.785]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":182.787,"s":[214.785],"e":[218.785]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":199.404,"s":[218.785],"e":[219.285]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":228.106,"s":[219.285],"e":[216.785]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":240.191,"s":[216.785],"e":[218.785]},{"i":{"x":[0.596],"y":[0.694]},"o":{"x":[0.163],"y":[0]},"n":["0p596_0p694_0p163_0"],"t":249.255,"s":[218.785],"e":[226.676]},{"t":284}],"ix":4}},"a":{"a":0,"k":[84.07,197.084,0],"ix":1},"s":{"a":0,"k":[-100,100,100],"ix":6}},"ao":0,"w":400,"h":310,"ip":142,"op":285,"st":142,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"matte","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.235,155.416,0],"ix":2},"a":{"a":0,"k":[159.625,99.679,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[159.375,99.43],[-159.375,99.43],[-159.375,-99.43],[159.375,-99.43]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.898000021542,0.773000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.625,99.679],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Tractor","tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":19.639,"s":[0],"e":[-4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":51.361,"s":[-4],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64.915,"s":[0],"e":[1]},{"t":107.5146484375}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-81.709],"e":[291.291]},{"t":142}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.984],"y":[1.174]},"o":{"x":[0.016],"y":[0.174]},"n":["0p984_1p174_0p016_0p174"],"t":19.639,"s":[194.709],"e":[198.709]},{"i":{"x":[0.966],"y":[0.841]},"o":{"x":[0.034],"y":[0.08]},"n":["0p966_0p841_0p034_0p08"],"t":51.361,"s":[198.709],"e":[190.709]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0],"y":[0]},"n":["0p833_1_0_0"],"t":64.915,"s":[190.709],"e":[192.709]},{"t":119.685546875}],"ix":4}},"a":{"a":0,"k":[84.07,197.084,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"w":400,"h":310,"ip":0,"op":143,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Cloud 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":53,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[329.596,137.146,0],"ix":2},"a":{"a":0,"k":[30.206,5.341,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-10,4.659],[-1.334,-0.341],[-7.921,-8.999],[0,0]],"o":[[0,0],[10,-4.66],[1.333,0.34],[0,0],[0,0]],"v":[[-30.207,3.854],[-11.54,-2.153],[7.127,-2.153],[30.206,-1.146],[30.206,5.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.206,5.341],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Cloud 3 Outlines","sr":1,"ks":{"o":{"a":0,"k":52,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[268.783,90.652,0],"ix":2},"a":{"a":0,"k":[84.003,12.222,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.003,0.005],[-8.101,1.603],[-6.328,1.682],[-7.071,1.057],[-13.586,3.264],[-3.685,1.116],[-13.401,-4.884],[-9.333,0]],"o":[[4.506,-6.796],[6.536,-1.294],[6.669,-1.772],[13.806,-2.053],[3.743,-0.899],[15.499,-4.694],[9.374,3.415],[-0.01,0]],"v":[[-84.003,11.935],[-63.714,-2.419],[-44.506,-2.117],[-26.836,-12.075],[6.28,2.766],[17.099,-1.228],[57.435,9.92],[84.003,11.94]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[84.003,12.222],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Cloud 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":45,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100.443,84.782,0],"ix":2},"a":{"a":0,"k":[25.947,5.87,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.521,-2],[-6.836,-6.333],[-11.393,-9.333]],"o":[[0,0],[6.52,2],[6.835,6.333],[0,0]],"v":[[-25.946,5.87],[-16.573,0.552],[0.779,-4.115],[25.947,5.87]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.947,5.87],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Cloud 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":60,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[110.659,122.68,0],"ix":2},"a":{"a":0,"k":[69.872,6.118,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-12.785,-4.018],[-11.344,0.301],[-6.857,-1.046],[-20.404,-0.256],[19.213,2.083],[4.157,-0.297],[0,0]],"o":[[0,0],[7.99,2.511],[7.15,-0.19],[8.506,1.298],[0,0],[-19.213,-2.083],[-4.157,0.298],[0,0]],"v":[[-69.872,-4.332],[-30.482,-4.332],[5.474,-2.052],[26.647,-0.763],[69.871,2.364],[10.608,5.637],[-19.114,2.661],[-69.872,6.118]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[69.871,6.118],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Mud Dark 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.453,241.443,0],"ix":2},"a":{"a":0,"k":[159.646,16.692,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-38.708,-12.333],[-4.874,18.621],[0,0],[54.391,12.981],[11.076,-1.083],[0,0]],"o":[[0,0],[38.708,12.334],[0,0],[0,0],[-10.825,-2.583],[0,0],[0,0]],"v":[[-159.396,8.557],[0.229,-4.109],[159.396,-10.154],[159.396,7.225],[-4.514,3.462],[-37.574,1.094],[-159.359,13.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.2,0.165000002992,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.646,16.693],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Mud Dark 3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.311,208.501,0],"ix":2},"a":{"a":0,"k":[159.55,20.417,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-21.595,3.035],[-14.459,0.76],[-6.037,-0.293],[-10.699,-0.618],[-8.022,0.299],[-17.772,2.532],[-9.316,2.166],[-3.166,3.226],[0,0],[0,0],[12.667,-10.666],[12.365,1.981],[0,0]],"o":[[21.354,-4.439],[14.332,-2.015],[6.033,-0.317],[10.688,0.518],[8.018,0.463],[17.942,-0.671],[9.463,-1.349],[4.131,-0.961],[7.333,-7.472],[0,0],[0,0],[-12.666,10.667],[-12.366,-1.98],[0,0]],"v":[[-159.3,13.458],[-94.798,2.303],[-51.598,-2.203],[-33.469,-2.395],[-1.814,2.234],[22.277,2.308],[75.914,-2.665],[104.164,-7.71],[118.413,-12.695],[159.3,-16.527],[159.3,-6.501],[123.079,-6.501],[-26.555,5.146],[-159.283,20.167]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.2,0.165000002992,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.55,20.417],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Mud Light 3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.592,234.246,0],"ix":2},"a":{"a":0,"k":[159.461,20.849,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-38.926,-12.378],[-9.254,21.314],[0,0],[0,0]],"o":[[0,0],[38.927,12.378],[-0.027,4.686],[0,0],[0,0]],"v":[[-159.211,10.768],[25.798,-6.497],[159.211,-20.598],[159.211,20.598],[-158.826,20.598]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.349000010771,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.461,20.849],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Mud Dark 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.384,229.469,0],"ix":2},"a":{"a":0,"k":[159.785,25.625,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-51.667,-13.666],[0.069,-4],[0,0],[0,0]],"o":[[0,0],[51.667,13.667],[-0.07,4.001],[0,0],[0,0]],"v":[[-159.535,2.977],[67.465,-8.357],[159.466,-21.375],[159.227,25.375],[-158.618,24.644]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.2,0.165000002992,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.785,25.625],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Mud Light 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.278,195.068,0],"ix":2},"a":{"a":0,"k":[159.583,13.261,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-21.871,-1.621],[0,0],[-24.66,-1.98],[0,0],[21.285,-10.8],[18.04,-0.099],[16.789,1],[8.846,-0.447],[0,0]],"o":[[0,0],[21.871,1.621],[0,0],[0,0],[0,0],[-8.011,4.064],[-16.439,0.09],[-19.585,-1.166],[-24.75,1.25],[0,0]],"v":[[-159.333,1.093],[-41.388,-7.771],[38.817,-8.512],[159.333,-11.032],[159.333,-1.219],[74.862,-2.068],[33.729,1.809],[-18.042,1.201],[-64.138,-0.318],[-159.302,13.012]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.349000010771,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.583,13.262],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Mud Dark 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.236,195.086,0],"ix":2},"a":{"a":0,"k":[159.625,18.812,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-36.717,-5.6],[-49.373,-15.377],[0,0],[21.107,-4.577],[0,0]],"o":[[0,0],[41.567,6.337],[0,0],[0,0],[-21.108,4.576],[0,0]],"v":[[-159.375,18.561],[-5.739,6.581],[159.375,-3.113],[159.375,-10.641],[-59.887,-13.984],[-159.321,-10.607]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.2,0.165000002992,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.625,18.811],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Mud Light 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.262,217.559,0],"ix":2},"a":{"a":0,"k":[159.598,37.536,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-38.35,3.168],[-22.338,0.489],[0,0],[0,0],[0,0]],"o":[[0,0],[41.282,-3.41],[25.387,-0.556],[0,0],[0,0],[0,0]],"v":[[-159.348,-33.079],[-57.499,-33.876],[106.231,-33.008],[159.348,-33.522],[159.348,37.286],[-159.169,36.886]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.349000010771,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.598,37.536],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Grass Light Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.229,180.691,0],"ix":2},"a":{"a":0,"k":[159.381,6.727,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-19.854,-6.958],[-24.927,2.87],[-21.286,-0.394],[-21.984,-2.691],[-27.896,1.102],[0,0],[27.765,3.4],[22.112,0.409],[21.206,-2.442],[19.853,6.958],[0,0]],"o":[[0,0],[19.853,6.958],[21.206,-2.442],[22.112,0.409],[27.765,3.4],[0,0],[-27.896,1.101],[-21.984,-2.692],[-21.286,-0.393],[-24.927,2.87],[-19.854,-6.959],[0,0]],"v":[[-159.381,1.434],[-117.316,3.177],[-56.388,2.339],[8.047,1.4],[74.731,4.395],[159.381,3.344],[159.381,-1.012],[74.731,-2.415],[8.047,-5.411],[-56.388,-4.471],[-117.316,-3.633],[-159.315,-3.633]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.528999956916,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.381,6.727],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":2},{"ddd":0,"ind":19,"ty":4,"nm":"Grass Dark Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.262,178.289,0],"ix":2},"a":{"a":0,"k":[159.598,18.123,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-19.854,-6.958],[-24.927,2.871],[-21.286,-0.394],[-21.984,-2.692],[-27.895,1.102],[0,0],[0,0]],"o":[[0,0],[19.853,6.959],[21.206,-2.441],[22.113,0.409],[27.765,3.4],[0,0],[0,0],[0,0]],"v":[[-159.348,-11.232],[-116.393,-10.915],[-55.464,-11.753],[8.969,-12.691],[75.654,-9.695],[159.348,-8.611],[159.348,5.747],[-159.318,17.872]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470999983245,0.528999956916,0.294000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.598,18.123],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"BG Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200.235,155.416,0],"ix":2},"a":{"a":0,"k":[159.625,99.679,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[159.375,99.43],[-159.375,99.43],[-159.375,-99.43],[159.375,-99.43]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.898000021542,0.773000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.625,99.679],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":427,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/triib_manage.json b/external/rlottie/example/resource/triib_manage.json new file mode 100644 index 000000000..0a5b27e8f --- /dev/null +++ b/external/rlottie/example/resource/triib_manage.json @@ -0,0 +1 @@ +{"v":"5.1.10","fr":29.9700012207031,"ip":0,"op":177.000007209358,"w":174,"h":149,"nm":"Untitled-1","ddd":0,"comps":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 5","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75.75,74.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":10047.0004092227,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Null 1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"n":"0_1_0p333_0","t":66,"s":[-46,31,0],"e":[-46,-33.75,0],"to":[0,-10.7916669845581,0],"ti":[0,10.7916669845581,0]},{"t":95.0000038694293}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[20,25.5,100],"ix":6}},"ao":0,"ip":0,"op":10047.0004092227,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 2 Outlines","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"n":"0_1_0p333_0","t":0,"s":[629.172,75.232,0],"e":[171.672,48.761,0],"to":[-138.75,67.1568603515625,0],"ti":[80.8209686279297,45.4995231628418,0]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"n":"0_1_0p333_0","t":36,"s":[171.672,48.761,0],"e":[171.672,48.761,0],"to":[-1.93182694911957,-1.08755445480347,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"n":"0_1_0p333_0","t":132,"s":[171.672,48.761,0],"e":[631.672,331.114,0],"to":[0,0,0],"ti":[0,0,0]},{"t":152.000006191087}],"ix":2},"a":{"a":0,"k":[16.521,14.514,0],"ix":1},"s":{"a":0,"k":[500,392.157,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.168,0.319],[0,0],[-0.599,-1.491],[0,0],[-0.566,1.885],[-3.712,3.085],[-3.228,1.079]],"o":[[0,0],[-1.59,-0.233],[0,0],[0.732,1.826],[1.386,-4.61],[2.391,-1.987],[2.077,-0.695]],"v":[[13.832,-10.021],[-13.436,-14.031],[-15.672,-11.194],[-6.19,12.438],[-2.268,12.272],[5.237,-1.438],[14.194,-5.99]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.791999966491,0.19199999641,0.286000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.52,14.514],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":10047.0004092227,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 4 Outlines","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-132.498,2.875,0],"ix":2},"a":{"a":0,"k":[10,19.267,0],"ix":1},"s":{"a":0,"k":[500,392.157,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.105,"y":0},"n":"0_1_0p105_0","t":135,"s":[{"i":[[5.117,0],[0,0],[0,5.118],[-5.118,0],[0,0],[0,-5.118]],"o":[[0,0],[-5.118,0],[0,-5.118],[0,0],[5.117,0],[0,5.118]],"v":[[40.483,9.267],[-40.483,9.267],[-49.75,0],[-40.483,-9.267],[40.483,-9.267],[49.75,0]],"c":true}],"e":[{"i":[[5.117,0],[0,0],[0,5.118],[-5.118,0],[0,0],[0,-5.118]],"o":[[0,0],[-5.118,0],[0,-5.118],[0,0],[5.117,0],[0,5.118]],"v":[[69.671,9.116],[-40.483,9.267],[-49.75,0],[-40.483,-9.267],[69.671,-9.418],[78.938,-0.151]],"c":true}]},{"t":148.000006028164}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.397579656863,0,0,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":44,"s":[0],"e":[33]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":45,"s":[33],"e":[33]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":112,"s":[33],"e":[0]},{"t":115.000004684046}],"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"st","c":{"a":0,"k":[0.607999973671,0.13300000359,0.211999990426,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[59.75,19.267],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":10047.0004092227,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 5 Outlines","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"n":"0_1_0p333_0","t":81,"s":[-72.5,-0.702,0],"e":[-72.5,32.048,0],"to":[0,5.45833349227905,0],"ti":[0,-5.45833349227905,0]},{"t":113.000004602584}],"ix":2},"a":{"a":0,"k":[10,19.267,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":135,"s":[{"i":[[5.117,0],[0,0],[0,5.118],[-5.118,0],[0,0],[0,-5.118]],"o":[[0,0],[-5.118,0],[0,-5.118],[0,0],[5.117,0],[0,5.118]],"v":[[61.328,9.267],[-61.328,9.267],[-70.595,0],[-61.328,-9.267],[61.328,-9.267],[70.595,0]],"c":true}],"e":[{"i":[[5.117,0],[0,0],[0,5.118],[-5.118,0],[0,0],[0,-5.118]],"o":[[0,0],[-5.118,0],[0,-5.118],[0,0],[5.117,0],[0,5.118]],"v":[[18.828,9.403],[-61.328,9.267],[-70.595,0],[-61.328,-9.267],[18.828,-9.131],[28.095,0.136]],"c":true}]},{"t":148.000006028164}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.607999973671,0.13300000359,0.211999990426,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[80.595,19.017],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-10.0000004073083,"op":10037.0004088154,"st":-10.0000004073083,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 3 Outlines","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"n":"0_1_0p333_0","t":86,"s":[-72.5,-33.137,0],"e":[-72.5,-1.137,0],"to":[0,5.33333349227905,0],"ti":[0,-5.33333349227905,0]},{"t":113.000004602584}],"ix":2},"a":{"a":0,"k":[10,19.267,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.105,"y":0},"n":"0_1_0p105_0","t":135,"s":[{"i":[[5.118,0],[0,0],[0,5.118],[-5.118,0],[0,0],[0,-5.118]],"o":[[0,0],[-5.118,0],[0,-5.118],[0,0],[5.118,0],[0,5.118]],"v":[[54.455,9.267],[-54.454,9.267],[-63.722,0],[-54.454,-9.267],[54.455,-9.267],[63.722,0]],"c":true}],"e":[{"i":[[5.118,0],[0,0],[0,5.118],[-5.118,0],[0,0],[0,-5.118]],"o":[[0,0],[-5.118,0],[0,-5.118],[0,0],[5.118,0],[0,5.118]],"v":[[69.705,9.346],[-54.454,9.267],[-63.722,0],[-54.454,-9.267],[69.705,-9.188],[78.972,0.079]],"c":true}]},{"t":148.000006028164}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.607999973671,0.13300000359,0.211999990426,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[73.722,19.267],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-10.0000004073083,"op":10037.0004088154,"st":-10.0000004073083,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/waves_.json b/external/rlottie/example/resource/waves_.json new file mode 100644 index 000000000..f7396e1a9 --- /dev/null +++ b/external/rlottie/example/resource/waves_.json @@ -0,0 +1 @@ +{"v":"5.1.8","fr":23.9759979248047,"ip":0,"op":239.999979227274,"w":300,"h":300,"nm":"SleepJounrey_Anim_Card","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 6","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55,1909,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[130,130,100],"e":[122,122,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":120,"s":[122,122,100],"e":[130,130,100]},{"t":239.999979227274}],"ix":6}},"ao":0,"ip":0,"op":360.999968754358,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Null 7","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[540,1069,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":360.999968754358,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 4","parent":2,"sr":1,"ks":{"o":{"a":0,"k":50,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-25],"e":[-115]},{"t":239.999979227274}],"ix":10},"p":{"a":0,"k":[-485,949,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[113.773,-33.791],[0,0],[27.159,-50.107],[0,0],[104.344,56.556],[0,0],[54.636,-16.227],[0,0],[33.791,113.773],[0,0],[50.107,27.159],[0,0],[-56.556,104.344],[0,0],[16.227,54.636],[0,0],[-113.773,33.791],[0,0],[-27.159,50.108],[0,0],[-104.344,-56.556],[0,0],[-54.636,16.227],[0,0],[-33.791,-113.773],[0,0],[-50.107,-27.159],[0,0],[56.556,-104.344],[0,0],[-16.227,-54.636],[0,0]],"o":[[0,0],[-54.636,16.227],[0,0],[-56.556,104.344],[0,0],[-50.108,-27.159],[0,0],[-113.773,33.791],[0,0],[-16.227,-54.636],[0,0],[-104.344,-56.556],[0,0],[27.159,-50.107],[0,0],[-33.791,-113.773],[0,0],[54.636,-16.227],[0,0],[56.556,-104.344],[0,0],[50.108,27.159],[0,0],[113.773,-33.791],[0,0],[16.227,54.636],[0,0],[104.344,56.556],[0,0],[-27.159,50.107],[0,0],[33.791,113.773]],"v":[[745.996,577.184],[607.363,618.358],[479.616,721.959],[410.702,849.102],[119.368,935.629],[-7.775,866.716],[-171.363,849.642],[-309.996,890.816],[-577.184,745.996],[-618.358,607.362],[-721.959,479.616],[-849.102,410.702],[-935.629,119.368],[-866.715,-7.775],[-849.642,-171.363],[-890.816,-309.996],[-745.996,-577.184],[-607.363,-618.358],[-479.616,-721.959],[-410.702,-849.102],[-119.368,-935.629],[7.775,-866.715],[171.363,-849.642],[309.996,-890.816],[577.184,-745.996],[618.358,-607.363],[721.959,-479.616],[849.102,-410.702],[935.629,-119.368],[866.715,7.775],[849.642,171.362],[890.816,309.996]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0.47,0.475,0.725,0.816,0.735,0.457,0.59,0.837,1,0.439,0.455,0.859],"ix":9}},"s":{"a":0,"k":[0,0],"ix":5},"e":{"a":0,"k":[264,742],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":360.999968754358,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 3","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.839],"y":[1]},"o":{"x":[0.198],"y":[0]},"n":["0p839_1_0p198_0"],"t":0,"s":[0],"e":[-90]},{"t":239.999979227274}],"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[113.773,-33.791],[0,0],[27.159,-50.107],[0,0],[104.344,56.556],[0,0],[54.636,-16.227],[0,0],[33.791,113.773],[0,0],[50.107,27.159],[0,0],[-56.556,104.344],[0,0],[16.227,54.636],[0,0],[-113.773,33.791],[0,0],[-27.159,50.108],[0,0],[-104.344,-56.556],[0,0],[-54.636,16.227],[0,0],[-33.791,-113.773],[0,0],[-50.107,-27.159],[0,0],[56.556,-104.344],[0,0],[-16.227,-54.636],[0,0]],"o":[[0,0],[-54.636,16.227],[0,0],[-56.556,104.344],[0,0],[-50.108,-27.159],[0,0],[-113.773,33.791],[0,0],[-16.227,-54.636],[0,0],[-104.344,-56.556],[0,0],[27.159,-50.107],[0,0],[-33.791,-113.773],[0,0],[54.636,-16.227],[0,0],[56.556,-104.344],[0,0],[50.108,27.159],[0,0],[113.773,-33.791],[0,0],[16.227,54.636],[0,0],[104.344,56.556],[0,0],[-27.159,50.107],[0,0],[33.791,113.773]],"v":[[745.996,577.184],[607.363,618.358],[479.616,721.959],[410.702,849.102],[119.368,935.629],[-7.775,866.716],[-171.363,849.642],[-309.996,890.816],[-577.184,745.996],[-618.358,607.362],[-721.959,479.616],[-849.102,410.702],[-935.629,119.368],[-866.715,-7.775],[-849.642,-171.363],[-890.816,-309.996],[-745.996,-577.184],[-607.363,-618.358],[-479.616,-721.959],[-410.702,-849.102],[-119.368,-935.629],[7.775,-866.715],[171.363,-849.642],[309.996,-890.816],[577.184,-745.996],[618.358,-607.363],[721.959,-479.616],[849.102,-410.702],[935.629,-119.368],[866.715,7.775],[849.642,171.362],[890.816,309.996]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0.47,0.475,0.725,0.816,0.735,0.457,0.59,0.837,1,0.439,0.455,0.859],"ix":9}},"s":{"a":0,"k":[0,0],"ix":5},"e":{"a":0,"k":[264,742],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":360.999968754358,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[540,960,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[140,140,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[1362.031,2140.766],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.799,0.545,0.301,0.406,0.456,0.302,0.318,1,0.113,0.06,0.334],"ix":9}},"s":{"a":0,"k":[1228.306,-624.67],"ix":5},"e":{"a":0,"k":[85.869,7.393],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.375,6.68],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":4533.99960756859,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":2,"ty":0,"nm":"OceanSlumber","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,182,0],"ix":2},"a":{"a":0,"k":[540,960,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"w":1080,"h":1920,"ip":0,"op":360.999968754358,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/resource/windmill.json b/external/rlottie/example/resource/windmill.json new file mode 100644 index 000000000..69874abc9 --- /dev/null +++ b/external/rlottie/example/resource/windmill.json @@ -0,0 +1 @@ +{"v":"5.2.0","fr":30,"ip":0,"op":90,"w":128,"h":128,"nm":"icons/features/windmill","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"▽ ic_windmill","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[19,-121,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"▽ propeler","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[0],"e":[0]},{"t":95}],"ix":10,"x":"var $bm_rt;\n$bm_rt = transform.rotation;"},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":9,"s":[0,0,0],"e":[0,125,0],"to":[0,20.8333339691162,0],"ti":[0,-20.8333339691162,0]},{"t":14}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, time_max, n, t, t, v;\namp = 0.05;\nfreq = 2;\ndecay = 2;\nn = 0;\n$bm_rt = time_max = 2;\nif (numKeys > 0) {\n $bm_rt = n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n}\nif (n == 0) {\n $bm_rt = t = 0;\n} else {\n $bm_rt = t = sub(time, key(n).time);\n}\nif (n > 0 && t < time_max) {\n v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10)));\n $bm_rt = sum(value, div(mul(mul(v, amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))));\n} else {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Stroke 45","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[48.43,38.07,0],"ix":2},"a":{"a":0,"k":[5.08,5.08,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.16,0],[0,10.16]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Fill 43","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[48.43,38.07,0],"ix":2},"a":{"a":0,"k":[5.08,5.08,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.16,0],[0,10.16]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995509028435,0.995630025864,0.995441973209,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Stroke 13","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[38.26,48.24,0],"ix":2},"a":{"a":0,"k":[5.08,5.08,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,10.16],[10.16,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Fill 11","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[38.26,48.24,0],"ix":2},"a":{"a":0,"k":[5.08,5.08,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,10.16],[10.16,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995509028435,0.995630025864,0.995441973209,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Stroke 9","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20.075,64.8,0],"ix":2},"a":{"a":0,"k":[19.065,17.44,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-3.07,3.08],[0,0]],"o":[[0,0],[0,0],[3.07,3.08],[0,0],[0,0]],"v":[[26.2,0],[0,26.2],[6.37,32.57],[17.49,32.57],[38.13,11.93]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Stroke 41","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[64.991,19.88,0],"ix":2},"a":{"a":0,"k":[17.441,19.07,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[3.07,-3.08],[0,0]],"o":[[0,0],[0,0],[3.07,3.07],[0,0],[0,0]],"v":[[0,26.21],[26.21,0],[32.58,6.37],[32.58,17.5],[11.93,38.14]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Stroke 33","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[48.445,48.245,0],"ix":2},"a":{"a":0,"k":[5.085,5.085,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.17,10.17],[0,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Stroke 31","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[66.66,64.831,0],"ix":2},"a":{"a":0,"k":[19.09,17.461,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[3.08,3.07],[0,0]],"o":[[0,0],[0,0],[-3.07,3.07],[0,0],[0,0]],"v":[[11.93,0],[38.18,26.25],[31.81,32.62],[20.68,32.62],[0,11.93]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Stroke 23","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[38.28,38.08,0],"ix":2},"a":{"a":0,"k":[5.08,5.08,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,0],[10.16,10.16]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Stroke 21","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[21.719,19.895,0],"ix":2},"a":{"a":0,"k":[17.439,19.065,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-3.07,-3.07],[0,0]],"o":[[0,0],[0,0],[-3.07,3.07],[0,0],[0,0]],"v":[[34.88,26.2],[8.67,0],[2.3,6.37],[2.3,17.49],[22.95,38.13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Combined Shape","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[43.335,41.448,0],"ix":2},"a":{"a":0,"k":[42.295,40.648,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.89,20.62],[20.62,11.89],[8.73,0],[0,8.73]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[17.44,46.55],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 3","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.89,20.62],[20.62,11.89],[8.73,0],[0,8.73]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[8.73,55.3],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 5","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-3.21,3.21]],"o":[[0,0],[0,0],[0,0],[0,0],[3.2,3.21],[0,0]],"v":[[17.7,14.81],[20.62,11.89],[8.73,0],[0,8.73],[6.09,14.81],[17.7,14.81]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,64.02],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 7","np":1,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,11.85],[8.73,20.58],[20.58,8.73],[11.85,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[17.52,17.49],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 15","np":1,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 3","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,11.85],[8.73,20.58],[20.58,8.73],[11.85,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[8.76,8.77],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 17","np":1,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 4","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-3.2,-3.2]],"o":[[0,0],[0,0],[0,0],[0,0],[-3.2,3.21],[0,0]],"v":[[2.4,17.66],[5.33,20.59],[17.19,8.73],[8.46,0],[2.4,6.05],[2.4,17.66]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[3.44,0.04],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 19","np":1,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 5","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.73,20.59],[0,11.86],[11.85,0],[20.58,8.73]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[46.55,46.62],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 25","np":1,"cix":2,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 6","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.73,20.59],[0,11.86],[11.85,0],[20.58,8.73]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[55.27,55.38],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 27","np":1,"cix":2,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 7","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[3.2,3.21]],"o":[[0,0],[0,0],[0,0],[0,0],[-3.21,3.21],[0,0]],"v":[[2.93,14.78],[0,11.85],[11.85,0],[20.59,8.73],[14.54,14.78],[2.93,14.78]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[64,64.11],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 29","np":1,"cix":2,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 8","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[20.62,11.89],[11.89,20.62],[0,8.73],[8.73,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[46.49,17.46],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 35","np":1,"cix":2,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 9","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[20.62,11.89],[11.89,20.62],[0,8.73],[8.73,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[55.25,8.73],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 37","np":1,"cix":2,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 10","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[3.2,-3.21]],"o":[[0,0],[0,0],[0,0],[0,0],[3.2,3.2],[0,0]],"v":[[14.82,17.7],[11.89,20.62],[0,8.73],[8.73,0],[14.82,6.09],[14.82,17.7]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[63.99,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Fill 39","np":1,"cix":2,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 11","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850979983807,0.231372997165,0.125489994884,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 40","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Combined Shape","np":24,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"door","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[43.33,89.975,0],"e":[43.33,210.475,0],"to":[0,20.0833339691162,0],"ti":[0,-20.0833339691162,0]},{"t":11}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, time_max, n, t, t, v;\namp = 0.05;\nfreq = 2;\ndecay = 2;\nn = 0;\n$bm_rt = time_max = 2;\nif (numKeys > 0) {\n $bm_rt = n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n}\nif (n == 0) {\n $bm_rt = t = 0;\n} else {\n $bm_rt = t = sub(time, key(n).time);\n}\nif (n > 0 && t < time_max) {\n v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10)));\n $bm_rt = sum(value, div(mul(mul(v, amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))));\n} else {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[9.84,15.655,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-4.34,0],[0,0],[0,-4.34]],"o":[[0,0],[0,0],[0,-4.34],[0,0],[4.35,0],[0,0]],"v":[[19.68,31.31],[0,31.31],[0,7.87],[7.87,0],[11.81,0],[19.68,7.87]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":3,"nm":"▽ bottom","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[0,105,0],"e":[0,225,0],"to":[0,20,0],"ti":[0,-20,0]},{"t":5}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, time_max, n, t, t, v;\namp = 0.05;\nfreq = 2;\ndecay = 2;\nn = 0;\n$bm_rt = time_max = 2;\nif (numKeys > 0) {\n $bm_rt = n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n}\nif (n == 0) {\n $bm_rt = t = 0;\n} else {\n $bm_rt = t = sub(time, key(n).time);\n}\nif (n > 0 && t < time_max) {\n v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10)));\n $bm_rt = sum(value, div(mul(mul(v, amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))));\n} else {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Fill 51","parent":15,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[43.335,13.395,0],"ix":2},"a":{"a":0,"k":[1.955,1.955,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.07,0],[0,1.08],[-1.09,0],[0,-1.09]],"o":[[0,1.08],[-1.09,0],[0,-1.09],[1.07,0],[0,0]],"v":[[3.91,1.96],[1.96,3.91],[0,1.96],[1.96,0],[3.91,1.96]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Stroke 47","parent":15,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[43.33,7.395,0],"ix":2},"a":{"a":0,"k":[43.33,6.025,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.58,0],[0,0],[0,-2.17],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-2.17],[0,0],[2.58,0],[0,0],[0,0],[0,0]],"v":[[33.97,12.05],[0,12.05],[0,3.93],[4.67,0],[81.99,0],[86.66,3.93],[86.66,12.05],[52.66,12.05]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"top","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[42.55,59.74,0],"e":[42.55,179.5,0],"to":[0,19.9599990844727,0],"ti":[0,-20.2099990844727,0]},{"t":8}],"ix":2,"x":"var $bm_rt;\nvar amp, freq, decay, n, time_max, n, t, t, v;\namp = 0.05;\nfreq = 2;\ndecay = 2;\nn = 0;\n$bm_rt = time_max = 2;\nif (numKeys > 0) {\n $bm_rt = n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n}\nif (n == 0) {\n $bm_rt = t = 0;\n} else {\n $bm_rt = t = sub(time, key(n).time);\n}\nif (n > 0 && t < time_max) {\n v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10)));\n $bm_rt = sum(value, div(mul(mul(v, amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))));\n} else {\n $bm_rt = value;\n}"},"a":{"a":0,"k":[21.22,45.9,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-10.86,0],[0,0],[0,-10.86]],"o":[[0,0],[0,0],[0,-10.86],[0,0],[10.87,0],[0,0]],"v":[[42.44,91.8],[0,91.8],[0,19.67],[19.67,0],[22.76,0],[42.44,19.67]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.039216000587,0.141176000237,0.207843005657,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0}],"markers":[{"tm":90,"cm":"1","dr":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/world_locations.json b/external/rlottie/example/resource/world_locations.json new file mode 100644 index 000000000..519200ec4 --- /dev/null +++ b/external/rlottie/example/resource/world_locations.json @@ -0,0 +1 @@ +{"v":"5.0.1","fr":60,"ip":0,"op":301,"w":800,"h":600,"nm":"World","ddd":0,"assets":[{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"here 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":45,"s":[100],"e":[0]},{"t":75}],"ix":11,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"r":{"a":0,"k":-22.856,"ix":10},"p":{"a":0,"k":[75,75,0],"ix":2},"a":{"a":0,"k":[-252.5,-48.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.14,0.14],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p14_1_0p167_0p167","0p14_1_0p167_0p167"],"t":15,"s":[2,2],"e":[40,40]},{"t":75}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.972549019608,0.576470588235,0.188235294118,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.14],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p14_1_0p167_0p167"],"t":15,"s":[10],"e":[0]},{"t":75}],"ix":5,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-252.5,-48.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":715,"st":15,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"here","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[100],"e":[0]},{"t":60}],"ix":11,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"r":{"a":0,"k":-22.856,"ix":10},"p":{"a":0,"k":[75,75,0],"ix":2},"a":{"a":0,"k":[-252.5,-48.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.14,0.14],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p14_1_0p167_0p167","0p14_1_0p167_0p167"],"t":0,"s":[2,2],"e":[60,60]},{"t":60}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.972549019608,0.576470588235,0.188235294118,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.14],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p14_1_0p167_0p167"],"t":0,"s":[10],"e":[0]},{"t":60}],"ix":5,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-252.5,-48.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":730,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":2,"ty":3,"nm":"NULL CONTROL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":-9,"ix":10},"p":{"a":0,"k":[396,281,0],"ix":2},"a":{"a":0,"k":[60,60,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":72,"op":301,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"rings 4","parent":2,"sr":1,"ks":{"o":{"a":0,"k":35,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[58.436,59.877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[334,66.48],"ix":2},"p":{"a":0,"k":[0,55],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.686274509804,0.933333333333,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.5,-9.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":210,"s":[21.5],"e":[26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":225.6,"s":[26],"e":[79]},{"t":262}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":210,"s":[21.5],"e":[79]},{"t":236}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":210,"op":301,"st":210,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"rings 3","parent":2,"sr":1,"ks":{"o":{"a":0,"k":35,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,70,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[417,83],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.686274509804,0.933333333333,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.5,-9.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":202,"s":[15],"e":[26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":217.6,"s":[26],"e":[84]},{"t":254}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":202,"s":[15],"e":[84]},{"t":228}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":202,"op":301,"st":202,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"rings 2","parent":2,"sr":1,"ks":{"o":{"a":0,"k":35,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[58.436,59.877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[334,66.48],"ix":2},"p":{"a":0,"k":[0,55],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.686274509804,0.933333333333,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.5,-9.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60,"s":[21.5],"e":[26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":75.6,"s":[26],"e":[79]},{"t":112}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60,"s":[21.5],"e":[79]},{"t":86}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":60,"op":301,"st":60,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"rings","parent":2,"sr":1,"ks":{"o":{"a":0,"k":35,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,70,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[417,83],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.686274509804,0.933333333333,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.5,-9.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":52,"s":[15],"e":[26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":67.6,"s":[26],"e":[84]},{"t":104}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":52,"s":[15],"e":[84]},{"t":78}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":52,"op":301,"st":52,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"maspMask 5","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[-18.5,-5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-81.462,0],[0,-81.462],[81.462,0],[0,81.462]],"o":[[81.462,0],[0,81.462],[-81.462,0],[0,-81.462]],"v":[[-18.5,-153],[129,-5.5],[-18.5,142],[-166,-5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0.662744978362,0.67843095368,0.650979973288,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Here rings","parent":16,"tt":1,"refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[70.408,63.975,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":150,"h":150,"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"maspMask 4","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[-18.5,-5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-81.462,0],[0,-81.462],[81.462,0],[0,81.462]],"o":[[81.462,0],[0,81.462],[-81.462,0],[0,-81.462]],"v":[[-18.5,-153],[129,-5.5],[-18.5,142],[-166,-5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0.662744978362,0.67843095368,0.650979973288,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"Here rings","parent":16,"tt":1,"refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-80.007,318.38,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":150,"h":150,"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"maspMask 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[-18.5,-5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-81.462,0],[0,-81.462],[81.462,0],[0,81.462]],"o":[[81.462,0],[0,81.462],[-81.462,0],[0,-81.462]],"v":[[-18.5,-153],[129,-5.5],[-18.5,142],[-166,-5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0.662744978362,0.67843095368,0.650979973288,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"Here rings","parent":16,"tt":1,"refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-170.998,95.543,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":150,"h":150,"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"maspMask 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[-18.5,-5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-81.462,0],[0,-81.462],[81.462,0],[0,81.462]],"o":[[81.462,0],[0,81.462],[-81.462,0],[0,-81.462]],"v":[[-18.5,-153],[129,-5.5],[-18.5,142],[-166,-5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0.662744978362,0.67843095368,0.650979973288,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"Here rings","parent":16,"tt":1,"refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-191.425,-28.874,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":150,"h":150,"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"maspMask","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[-18.5,-5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-81.462,0],[0,-81.462],[81.462,0],[0,81.462]],"o":[[81.462,0],[0,81.462],[-81.462,0],[0,-81.462]],"v":[[-18.5,-153],[129,-5.5],[-18.5,142],[-166,-5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0.662744978362,0.67843095368,0.650979973288,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"map","tt":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.95],"y":[0]},"n":["0p833_0p833_0p95_0"],"t":16,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":86,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.95],"y":[0]},"n":["0p833_0p833_0p95_0"],"t":180,"s":[100],"e":[0]},{"t":239}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.14],"y":[1]},"o":{"x":[0.58],"y":[0]},"n":["0p14_1_0p58_0"],"t":16,"s":[-22.856],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":146,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.72],"y":[0]},"n":["0p833_0p833_0p72_0"],"t":180,"s":[0],"e":[51]},{"t":246}],"ix":10},"p":{"a":0,"k":[240.55,-287.518,0],"ix":2},"a":{"a":0,"k":[-409.527,-960.177,0],"ix":1},"s":{"a":0,"k":[53.851,53.851,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.207,0.165],[0.867,1.221],[-0.146,-1.605],[-0.425,-1.251],[1.443,0.861]],"o":[[0.99,-1.532],[0.914,1.268],[0.125,1.365],[-0.831,-1.273],[0.19,-0.107]],"v":[[53.422,-169.413],[53.886,-174.034],[55.387,-169.683],[56.25,-165.777],[52.829,-169.024]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.221,0.036],[0.202,-0.081]],"o":[[-0.202,0.081],[0.179,-0.142]],"v":[[79.925,-218.282],[79.321,-218.037]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-0.097,0.141],[0.026,-0.316],[0.23,-0.223],[-0.222,0.297]],"o":[[-0.005,0.307],[-0.328,0.057],[0.146,-0.325],[0.107,-0.144]],"v":[[70.501,91.15],[70.466,92.085],[69.632,92.509],[70.199,91.575]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-0.302,-0.569],[-2.966,1.735],[-0.508,0.195],[-0.288,0.188],[-0.146,-0.057],[0.432,-0.165],[-0.447,-1.656],[2.425,0.115],[0.108,0.207],[0.313,1.452]],"o":[[1.559,2.949],[0.534,-0.286],[0.261,-0.182],[0.144,0.056],[-0.41,0.1],[-2.584,1.813],[-1.28,-1.834],[-0.111,-0.206],[0.406,-1.54],[0.28,0.576]],"v":[[58.462,-160.873],[65.125,-158.758],[66.684,-159.461],[67.511,-160.019],[67.945,-159.848],[66.684,-159.461],[63.503,-154.417],[57.797,-157.441],[57.467,-158.059],[57.588,-162.59]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[2.019,-0.203],[1.848,1.224],[0.979,0.677],[0.668,0.287],[0.085,0.232],[0.382,0.604],[3.152,1.27],[0.544,4.318],[2.55,2.615],[0,0],[-1.086,3.211],[3.016,0.917],[1.605,3.901],[0,0.003],[-1.369,0.237],[-0.134,-0.385],[-2.91,-12.044],[-0.776,-0.561],[-4.493,-5.058],[-1.334,-0.655],[-1.389,-3.659],[-0.091,-0.245]],"o":[[-1.847,-1.226],[-0.005,-1.235],[-0.657,-0.321],[-0.084,-0.232],[0.504,-0.437],[-1.885,-2.146],[-2.966,-2.857],[-0.431,-3.362],[0,0],[-2.126,-1.468],[1.301,-3.024],[-3.297,-2.917],[0,0],[0.67,-1.565],[0.184,0.361],[6.125,10.035],[0.229,0.933],[5.65,4.112],[0.963,1.083],[-2.97,3.861],[0.093,0.263],[-2.088,0.607]],"v":[[-9.095,165.196],[-14.642,161.523],[-16.196,158.702],[-18.175,157.758],[-18.433,157.066],[-18.231,155.506],[-22.932,148.401],[-28.253,137.917],[-32.158,128.44],[-32.158,128.44],[-35.338,122.303],[-38.049,116.461],[-44.127,105.489],[-44.127,105.486],[-41.037,102.837],[-40.546,103.952],[-22.555,134.295],[-21.068,136.785],[-8.533,152.74],[-5.465,155.753],[-3.832,166.843],[-3.559,167.585]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[-1.611,0.833],[-2.113,1.572],[-0.011,0.004],[1.444,9.227],[-1.949,0.979],[-1.452,5.235],[-1.205,-0.651],[-4.261,3.828],[-1.263,0.803],[-0.064,-0.102],[-2.206,-0.692],[0.03,-0.378],[-5.151,-1.208],[-0.767,-0.452],[-0.467,0.059],[0.03,-0.127],[-1.628,0.466],[0.059,-0.628],[6.221,-0.498],[0.058,-3.047],[-2.229,-0.301],[-0.498,0.26],[-1.904,3.28],[-0.126,-0.064],[-1.598,0.955],[-0.054,0.758],[0,0],[-0.512,3.445],[0,0],[-0.487,1.3],[0.803,0.474],[1.709,0.909],[1.051,5.31],[-0.615,4.649],[-0.034,0.039],[-3.736,-3.599],[-2.427,1.091],[-0.07,-0.076],[-1.559,-0.503],[-0.899,-1.636],[-1.047,0.186],[-0.034,-0.256],[-1.297,-0.448],[-0.139,-0.02],[-0.027,-0.276],[0,0],[-0.999,-2.421],[0,0],[1.108,-0.057],[-0.083,-1.499],[-0.989,0.016],[-2.42,0.89],[-4.521,6.094],[-0.582,0.696],[-0.485,0.149],[-0.209,0.003],[1.303,1.458],[1.388,-0.047],[0.247,0.085],[0.344,1.099],[-0.115,0.437],[0,0.003],[-0.003,-0.003],[-4.402,-0.406],[-3.696,-5.259],[-0.385,-0.139],[-2.098,0.334],[-0.023,-0.097],[-8.01,-2.744],[-1.77,1.139],[-0.63,0.44],[-2.018,-2.544],[-0.091,-1.878],[-0.222,-0.482],[0.301,-0.402],[0.104,-0.517],[-0.023,-0.642],[0.47,-0.164],[-0.034,-0.892],[-0.07,-0.18],[0.831,-2.62],[-0.003,-0.054],[0.615,-0.059],[3.769,-1.769],[5.721,0.761],[2.154,-0.758],[0.06,-0.102],[3.676,1.63],[2.718,-0.603],[2.103,-3.244],[1.166,0.107],[-0.016,0.057],[1.988,1.048],[1.886,1.985],[4.131,0.57],[1.834,1.419],[1.213,-0.773],[0.02,-0.177],[0.928,0.318],[0.218,0.508],[-0.088,0.127],[-1.262,0.764],[0.092,1.911],[0.298,2.018],[2.657,0.046],[1.323,-1.104],[5.808,0.145],[4.091,-2.217],[7.579,1.333],[0,0]],"o":[[2.34,-0.055],[0.008,-0.006],[6.339,-3.243],[-0.341,-2.19],[4.754,-2.396],[0.447,-1.605],[6.806,3.662],[1.155,-1.247],[0.038,0.107],[1.46,1.238],[0.768,0.07],[1.181,5.686],[0.766,0.451],[0.466,-0.065],[-0.034,0.112],[0.248,1.67],[-0.321,0.486],[1.331,3.842],[-2.368,0.19],[0.314,2.527],[0.493,-0.291],[2.456,0.85],[0.123,0.054],[1.885,-0.534],[0.057,-0.76],[0,0],[2.081,-3.217],[0,0],[1.063,-0.279],[0.408,-1.091],[-1.668,-0.984],[-2.968,-3.323],[-2.772,-2.806],[0.032,-0.039],[3.051,4.341],[2.424,0.062],[0.066,0.078],[1.276,1.041],[-0.368,1.915],[0.798,0.638],[0.046,0.251],[0.357,1.338],[0.139,0.031],[0.026,0.271],[0,0],[-0.497,3.113],[0,0],[-1.104,0.053],[0.084,1.498],[0.988,-0.014],[0.416,1.976],[4.432,5.832],[0.542,-0.729],[0.485,-0.148],[0.203,0.027],[1.449,-1.446],[-1.389,0.047],[-0.23,-0.122],[-0.345,-1.097],[0.115,-0.44],[0,-0.003],[0,0.003],[3.945,-0.73],[-2.902,4.527],[0.383,0.134],[-0.168,1.234],[0.026,0.097],[6.16,9.39],[1.782,0.611],[0.65,-0.42],[2.869,-2.015],[-2.336,1.185],[0.378,0.528],[-0.305,0.402],[-0.349,0.39],[0.02,0.645],[-0.364,0.196],[-0.571,0.665],[0.081,0.175],[-2.24,1.809],[0.003,0.053],[-0.613,0.055],[-4.027,0.405],[-6.048,2.836],[-2.042,-0.274],[-0.073,0.102],[-3.675,-1.638],[-2.72,-2.133],[-3.403,2.794],[-0.918,0.868],[0.02,-0.053],[-0.621,-2.811],[-2.199,-1.156],[-2.232,-4.026],[-2.065,-0.284],[-1.066,-0.812],[-0.037,0.195],[-0.929,-0.321],[-0.219,-0.509],[0.085,-0.126],[-0.144,-1.586],[1.259,-1.353],[-0.249,-2.031],[-1.116,-2.459],[-1.873,0.022],[-5.796,-0.195],[-4.63,-0.114],[-6.651,3.599],[0,0],[-3.783,-2.584]],"v":[[-201.566,62.709],[-194.681,61.622],[-194.655,61.608],[-183.507,45.949],[-180.181,40.758],[-170.687,29.554],[-167.799,27.419],[-152.89,22.353],[-148.702,21.522],[-148.572,21.84],[-145.009,26.319],[-144.486,27.273],[-134.181,36.711],[-131.879,38.065],[-130.483,37.875],[-130.585,38.214],[-128.112,40.538],[-128.689,42.202],[-132.312,50.08],[-136.83,55.238],[-132.614,59.013],[-131.128,58.178],[-124.193,57.479],[-123.824,57.651],[-119.271,54.426],[-119.103,52.147],[-119.337,51.87],[-117.907,41.525],[-117.911,41.525],[-114.869,40.42],[-116.404,38.211],[-121.52,35.461],[-130.877,25.963],[-136.711,16.196],[-136.612,16.074],[-125.442,26.945],[-118.188,27.941],[-117.982,28.172],[-113.845,30.7],[-111.917,35.777],[-109.302,36.953],[-109.169,37.714],[-106.71,40.417],[-106.296,40.482],[-106.216,41.3],[-106.216,41.3],[-103.035,48.467],[-103.035,48.467],[-106.357,48.631],[-106.11,53.128],[-103.145,53.081],[-99.585,55.694],[-90.636,55.43],[-88.891,53.342],[-87.434,52.895],[-86.822,52.931],[-86.808,48.574],[-90.976,48.715],[-91.689,48.411],[-92.718,45.108],[-92.371,43.79],[-92.371,43.785],[-92.368,43.79],[-81.592,38.933],[-80.377,54.881],[-79.229,55.302],[-76.788,56.965],[-76.71,57.257],[-52.36,64.331],[-46.798,63.699],[-46.333,63.351],[-39.024,64.139],[-39.642,69.508],[-38.749,71.019],[-39.653,72.228],[-40.336,73.588],[-40.267,75.519],[-41.517,76.057],[-42.337,78.395],[-42.119,78.927],[-45.435,86.313],[-45.422,86.477],[-47.266,86.651],[-58.981,85.35],[-76.231,84.787],[-82.382,84.095],[-82.566,84.399],[-93.591,79.497],[-101.744,79.508],[-105.271,90.199],[-108.457,91.09],[-108.39,90.932],[-113.533,86.784],[-120.418,84.2],[-130.54,78.38],[-136.647,77.044],[-140.045,76.711],[-140.12,77.255],[-142.905,76.291],[-143.561,74.77],[-143.301,74.392],[-141.42,70.987],[-139.529,66.158],[-139.967,60.053],[-145.607,56.263],[-150.687,57.382],[-168.093,58.274],[-181.952,61.6],[-202.708,66.412],[-202.708,66.412]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":6,"ty":"sh","ix":7,"ks":{"a":0,"k":{"i":[[-1.116,3.287],[-0.344,0.171],[-1.207,1.991],[0.318,2.654],[-0.707,2.084],[-0.673,0.718],[5.35,5.919],[0.21,1.62],[-2.657,4.037],[-1.909,2.382],[-0.008,0.005],[0,0],[-0.238,-0.085],[-0.011,0.762],[-3.676,3.086],[-0.295,-1.163],[-0.144,-0.482],[1.821,-1.878],[-2.039,-8.125],[-3.893,1.121],[-4.719,3.957],[0.33,-1.953],[5.02,-5.165],[0.073,-0.259],[-3.032,-5.406],[-2.358,-4.092],[-0.176,-0.314],[-0.062,-0.051],[2.156,0.831],[6.284,-4.668],[2.378,-0.054],[-0.382,0.781]],"o":[[0.302,-0.138],[2.953,-0.811],[1.253,-1.586],[-0.255,-2.098],[0.361,-0.94],[5.4,-5.754],[-1.156,-1.281],[-0.64,-4.967],[1.909,-2.383],[0.011,-0.006],[0,0],[0.177,0.107],[0.781,-0.149],[0.069,-5.266],[0.276,1.173],[0.039,0.486],[0.628,3.093],[-5.884,6.076],[1.032,4.123],[5.479,-1.58],[0.846,1.802],[-5.823,-1.471],[-0.099,0.259],[-3.071,2.233],[-4.573,5.976],[0.069,0.309],[0.066,0.051],[-1.594,1.491],[-8.455,-3.258],[-1.886,-1.498],[0.38,-0.781],[0.879,-3.651]],"v":[[-133.233,-45.102],[-132.261,-45.565],[-126.05,-49.778],[-124.521,-55.992],[-123.943,-62.386],[-122.303,-64.802],[-122.196,-77.796],[-123.883,-82.015],[-120.423,-95.355],[-114.695,-102.503],[-114.664,-102.52],[-114.664,-102.52],[-114.048,-102.227],[-112.273,-103.47],[-105.785,-115.441],[-104.018,-112.477],[-103.792,-111.005],[-106.7,-103.64],[-111.81,-82.533],[-100.901,-72.481],[-84.436,-77.663],[-83.989,-71.987],[-100.637,-69.66],[-100.888,-68.883],[-105.265,-59.672],[-108.594,-44.484],[-108.231,-43.553],[-108.041,-43.4],[-113.651,-42.339],[-134.728,-36.408],[-141.209,-38.32],[-140.065,-40.663]],"c":true},"ix":2},"nm":"Path 7","mn":"ADBE Vector Shape - Group","hd":false},{"ind":7,"ty":"sh","ix":8,"ks":{"a":0,"k":{"i":[[0.003,0],[0,0],[-0.003,-0.003]],"o":[[0,-0.003],[0.003,0.003],[-0.003,0]],"v":[[310.8,75.721],[310.8,75.715],[310.806,75.721]],"c":true},"ix":2},"nm":"Path 8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":8,"ty":"sh","ix":9,"ks":{"a":0,"k":{"i":[[0.01,0.008],[0,0],[-0.005,-0.005],[0.003,-0.003]],"o":[[0,0],[0.009,0.008],[0,0.003],[-0.008,-0.011]],"v":[[-185.481,178.021],[-185.478,178.021],[-185.455,178.05],[-185.458,178.055]],"c":true},"ix":2},"nm":"Path 9","mn":"ADBE Vector Shape - Group","hd":false},{"ind":9,"ty":"sh","ix":10,"ks":{"a":0,"k":{"i":[[-0.011,0.005],[0,-0.026],[0,0],[0,0],[0.011,0.018]],"o":[[0.003,0.023],[0,0],[0,0],[-0.012,-0.018],[0.008,-0.003]],"v":[[-99.502,344.448],[-99.498,344.516],[-99.498,344.516],[-99.498,344.516],[-99.533,344.462]],"c":true},"ix":2},"nm":"Path 10","mn":"ADBE Vector Shape - Group","hd":false},{"ind":10,"ty":"sh","ix":11,"ks":{"a":0,"k":{"i":[[-0.108,-0.217],[0.471,0.573],[0.233,0.213],[0.886,0.39],[1.429,-0.141],[-1.49,-0.653],[-0.849,-0.764],[-0.754,-0.144]],"o":[[-0.658,0.102],[-0.222,-0.274],[-0.911,-0.44],[-1.575,-0.307],[1.639,-1.078],[0.925,0.18],[0.707,0.344],[0.066,0.234]],"v":[[-49.604,-113.833],[-51.367,-114.558],[-52.056,-115.276],[-54.738,-116.618],[-59.361,-116.48],[-54.738,-116.618],[-52.056,-115.276],[-49.866,-114.513]],"c":true},"ix":2},"nm":"Path 11","mn":"ADBE Vector Shape - Group","hd":false},{"ind":11,"ty":"sh","ix":12,"ks":{"a":0,"k":{"i":[[0.139,-0.083],[-0.154,0.068]],"o":[[0.149,-0.083],[-0.154,0.074]],"v":[[-36.011,3.559],[-35.554,3.341]],"c":true},"ix":2},"nm":"Path 12","mn":"ADBE Vector Shape - Group","hd":false},{"ind":12,"ty":"sh","ix":13,"ks":{"a":0,"k":{"i":[[-0.061,0.01],[-0.003,-0.001],[0.066,-0.008]],"o":[[0.001,0],[-0.062,0.007],[0.06,-0.01]],"v":[[-32.657,-59.234],[-32.646,-59.228],[-32.83,-59.219]],"c":true},"ix":2},"nm":"Path 13","mn":"ADBE Vector Shape - Group","hd":false},{"ind":13,"ty":"sh","ix":14,"ks":{"a":0,"k":{"i":[[0.007,-0.003],[0.003,0.003],[0,0],[0,-0.005]],"o":[[-0.005,0],[0,0],[0.006,0.005],[-0.008,0.005]],"v":[[-27.527,88.936],[-27.538,88.93],[-27.511,88.902],[-27.503,88.918]],"c":true},"ix":2},"nm":"Path 14","mn":"ADBE Vector Shape - Group","hd":false},{"ind":14,"ty":"sh","ix":15,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.026,0],[0.032,-0.027],[-0.009,0.019]],"o":[[0,0],[0.011,0.016],[0.028,-0.003],[-0.032,0.019],[0.008,-0.019],[0,0]],"v":[[-28.811,89.04],[-28.811,89.037],[-28.785,89.077],[-28.707,89.071],[-28.813,89.129],[-28.785,89.077]],"c":true},"ix":2},"nm":"Path 15","mn":"ADBE Vector Shape - Group","hd":false},{"ind":15,"ty":"sh","ix":16,"ks":{"a":0,"k":{"i":[[-0.018,-0.001],[0,0],[0.008,-0.022],[0.008,0.026]],"o":[[0,0],[-0.01,0.023],[-0.008,-0.024],[0.013,0.003]],"v":[[-71.66,-97.691],[-71.66,-97.691],[-71.683,-97.626],[-71.704,-97.702]],"c":true},"ix":2},"nm":"Path 16","mn":"ADBE Vector Shape - Group","hd":false},{"ind":16,"ty":"sh","ix":17,"ks":{"a":0,"k":{"i":[[0.177,-0.039],[0.104,0.042],[-0.173,0.068],[0.008,0.013],[-0.158,-0.039],[-0.049,-0.084],[0.028,-0.003],[0.072,-0.023]],"o":[[-0.106,-0.045],[0.173,-0.042],[-0.005,-0.012],[-0.168,-0.31],[0.049,0.088],[-0.023,0.005],[-0.068,0.031],[0.043,0.123]],"v":[[-95.533,34.766],[-95.851,34.646],[-95.331,34.508],[-95.339,34.477],[-95.207,34.154],[-95.06,34.414],[-95.12,34.435],[-95.331,34.508]],"c":true},"ix":2},"nm":"Path 17","mn":"ADBE Vector Shape - Group","hd":false},{"ind":17,"ty":"sh","ix":18,"ks":{"a":0,"k":{"i":[[2.527,-1.28],[0.267,1.108],[-1.144,0.263],[-0.364,0.852],[-2.1,1.244],[0.589,-2.386]],"o":[[-0.267,-1.108],[1.143,-0.232],[0.871,-0.437],[2.811,1.19],[-2.084,1.297],[-2.77,-0.317]],"v":[[-47.475,12.071],[-48.274,8.747],[-44.841,7.984],[-42.88,6.145],[-36.207,3.677],[-39.671,9.604]],"c":true},"ix":2},"nm":"Path 18","mn":"ADBE Vector Shape - Group","hd":false},{"ind":18,"ty":"sh","ix":19,"ks":{"a":0,"k":{"i":[[2.326,-0.569],[2.464,5.289],[0.217,1.67],[2.272,3.953],[0.753,-0.057],[1.62,3.556],[-3.727,2.745],[-0.019,0.055],[-3.113,-1.19],[-7.056,-8.008],[-0.68,-1.657],[-1.373,-0.446],[-2.937,-5.949]],"o":[[-5.159,1.258],[0.677,-1.331],[1.93,-5.086],[-0.696,-0.516],[-0.023,-4.294],[-1.992,-4.385],[0.018,-0.055],[2.945,0.789],[-5.583,9.238],[1.164,1.323],[0.601,1.473],[1.77,6.553],[0.116,2.49]],"v":[[29.439,56.595],[15.329,48.478],[16.1,44.011],[12.809,31.195],[10.654,30.33],[5.95,19.415],[7.881,9.355],[7.94,9.19],[16.648,7.13],[18.286,26.251],[21.18,30.589],[24.056,33.625],[32.894,51.476]],"c":true},"ix":2},"nm":"Path 19","mn":"ADBE Vector Shape - Group","hd":false},{"ind":19,"ty":"sh","ix":20,"ks":{"a":0,"k":{"i":[[5.909,-2.578],[3.184,-1.656],[1.664,2.897],[-0.902,1.963],[-0.374,0.81],[1.932,1.4],[-0.264,0.271],[-0.182,0.508],[-0.199,0.865],[-0.735,1.217],[-3.293,-2.581],[-0.175,-0.065],[0.022,-0.177],[-0.563,-0.414],[0,0],[0,0],[0.13,-0.341],[-4.339,3.307],[-0.043,-0.065],[-0.673,0.646],[-2.567,-1.178],[-1.068,-0.649],[-4.329,-5.037],[0.253,-0.693],[1.165,-0.428],[4.804,2.149]],"o":[[-3.267,1.461],[-2.478,0.014],[-0.906,-1.966],[0.378,-0.81],[0.815,-1.729],[0.265,-0.276],[0.376,-0.456],[0.515,-0.565],[1.999,0.942],[2.131,-3.532],[0.183,0.054],[-0.024,0.175],[0.566,0.412],[0,0],[0,0],[-0.064,0.362],[3.166,6.834],[0.039,0.065],[0.826,0.393],[2.638,-1.45],[0.697,0.802],[5.652,3.444],[-0.038,0.57],[-1.22,0.085],[-5.069,0.609],[-5.562,-2.485]],"v":[[-56.802,30.617],[-66.388,35.498],[-72.809,31.836],[-72.809,25.944],[-71.683,23.515],[-71.995,18.663],[-71.198,17.84],[-70.361,16.393],[-69.309,14.232],[-66.234,11.502],[-58.273,9.815],[-57.734,9.993],[-57.803,10.521],[-56.109,11.761],[-56.107,11.761],[-56.107,11.761],[-56.396,12.813],[-48.462,16.592],[-48.356,16.782],[-46.108,16.444],[-38.561,16.483],[-35.892,18.647],[-20.681,31.097],[-21.129,32.987],[-24.742,33.5],[-39.374,31.275]],"c":true},"ix":2},"nm":"Path 20","mn":"ADBE Vector Shape - Group","hd":false},{"ind":20,"ty":"sh","ix":21,"ks":{"a":0,"k":{"i":[[0.099,-0.104],[-0.362,0.765],[-0.715,2.416],[-0.046,0.421],[0.588,1.469],[-0.808,-0.642],[-0.022,-0.167],[-0.02,-0.056],[0.441,-1.194],[0.066,-0.215],[1.086,-2.298],[0.608,-0.708]],"o":[[0.574,-0.674],[0.945,-2.377],[0.042,-0.429],[0.221,-2.034],[0.466,0.589],[0.02,0.169],[0.019,0.057],[-0.771,0.922],[-0.076,0.21],[-0.241,2.527],[-0.316,0.793],[-0.088,0.088]],"v":[[61.858,-136.661],[63.232,-138.833],[64.818,-146.287],[64.948,-147.562],[64.345,-152.843],[66.262,-151.002],[66.323,-150.499],[66.373,-150.333],[65.031,-146.926],[64.818,-146.287],[63.232,-138.833],[61.882,-136.571]],"c":true},"ix":2},"nm":"Path 21","mn":"ADBE Vector Shape - Group","hd":false},{"ind":21,"ty":"sh","ix":22,"ks":{"a":0,"k":{"i":[[-0.807,-3.649],[-1.399,-4.245],[-0.712,-1.1],[0.574,-4.915],[-1.324,-0.956],[-0.976,-0.487],[-1.391,-1.193],[-0.225,-0.16],[-1.304,-1.701],[0,0],[0.001,-0.076],[-0.242,-1.433],[-0.488,-0.288],[-0.344,-0.125],[-5.449,-1.576],[0.567,1.506],[-0.028,0.956],[0,0],[1.128,-0.037],[1.167,2.823],[1.564,1.207],[0,0],[2.28,1.802],[-0.023,0.184],[1.901,2.264],[-1.429,3.142],[0.034,0.295],[-0.226,0.122],[-0.261,0.559],[-0.265,1.487],[-0.138,0.074],[-0.321,-0.539],[-0.542,-0.24],[-1.567,-0.244],[-3.629,-3.523],[-0.072,-1.182],[-0.573,0.325],[-0.108,0.118],[-1.744,0.383],[-0.022,1.913],[0.944,10.711],[0.494,0.431],[-0.004,0.394],[0,0],[3.534,2.829],[0.348,3.396],[-1.645,2.172],[0.111,1.036],[-0.474,0.199],[-2.643,-3.472],[-1.381,1.467],[-1.609,0.758],[-0.494,0.226],[-1.618,1.036],[-1.691,0.232],[-4.585,5.144],[-2.095,3.047],[-1.703,3.467],[2.53,4.066],[0.073,1.768],[0.241,1.242],[-0.012,0.817],[0.119,-0.008],[0.012,0.325],[1.752,3.587],[2.276,-0.336],[0,0],[-1.448,1.813],[-3.936,0.745],[0.037,1.759],[1.407,0.049],[4.088,-3.545],[1.492,1.274],[-0.956,0.748],[-4.453,1.698],[-1.905,-1.334],[-1.262,0.226],[-2.595,2.039],[-0.089,-0.12],[-0.187,-2.248],[-4.186,1.261],[-0.481,0.454],[2.348,-3.207],[0.291,-2.826],[-2.102,-0.682],[-0.925,2.14],[0.034,0.301],[-0.157,0.107],[0.655,4.438],[0,0],[0,0],[-0.295,0.011],[0.206,0.516],[0.436,1.109],[0.381,0.562],[-0.079,0.077],[0.494,0.466],[0,0],[2.941,0.883],[0,0],[0.55,0.742],[0.449,0.945],[0.45,0.341],[0.123,0.107],[-0.752,2.795],[0.115,0.102],[-0.004,1.839],[-6.347,0.454],[-0.5,5.495],[-0.636,1.477],[1.678,14.476],[0.21,0.594],[1.433,4.343],[-0.033,-0.052],[-1.319,-0.896],[-0.318,-0.118],[-3.097,-3.1],[0.16,-0.314],[0.435,-3.068],[-0.234,-0.526],[-1.862,-1.808],[-0.256,-0.096],[-0.413,1.41],[-1.774,-1.653],[-0.273,0.028],[0.221,1.591],[1.523,0.626],[1.647,3.857],[0.068,0.357],[0,0],[-0.001,0],[-0.516,0.301],[0.98,2.026],[3.138,9.498],[1.829,1.555],[0.385,1.163],[-1.003,-2.729],[-0.802,-0.018],[0.309,-1.326],[2.995,1.481],[1.842,-0.764],[1.215,-0.798],[0.371,-0.257],[-0.156,2.279],[-0.455,1.075],[0.318,0.153],[0.737,-1.357],[0.173,-0.175],[0.064,0.054],[-0.409,2.177],[-1.16,7.173],[-10.416,2.261],[-0.157,0.225],[-0.409,0.379],[-0.754,0.276],[-0.772,1.35],[-0.404,0.459],[-3.725,-1.453],[-0.963,-0.196],[-2.554,0.386],[-2.512,-0.18],[0,0],[-0.103,-0.337],[0,0],[0,0],[5.675,0.762],[0.141,1.23],[-0.042,0.345],[-0.023,0.066],[-0.127,2.156],[0.139,1.649],[0.045,0.218],[-0.007,0.152],[-0.628,1.479],[-3.273,-1.667],[-0.608,-0.663],[-1.526,-0.271],[-0.238,1.242],[-0.576,0.645],[-0.571,1.301],[-0.937,0],[0.035,-0.394],[0.477,-1.395],[0.692,-7.284],[3.383,-3.274],[-0.008,-0.259],[1.077,-2.578],[-0.994,-3.453],[-2.554,-4.171],[-4.011,-6.665],[-2.329,0.473],[-0.402,2.133],[-1.285,3.606],[2.779,2.398],[0,0],[-3.205,1.714],[1.959,2.708],[-4.146,3.303],[-0.036,0.854],[1.383,0.15],[0.003,0],[0,0],[-0.8,3.858],[3.93,-1.915],[0,0],[0.099,2.058],[1.051,3.217],[-2.828,1.427],[-0.088,0.126],[-0.445,-0.233],[-0.501,1.487],[-0.647,-0.008],[-1.014,-0.041],[0,1.133],[0,0],[-5.72,-3.465],[-1.605,0.334],[-7.3,9.258],[-0.962,3.635],[2.918,1.709],[1.587,2.631],[0.198,0.533],[-1.481,3.857],[0.004,0],[6.409,5.404],[-1.336,1.748],[-0.94,-0.585],[-1.793,0.026],[-4.432,-1.916],[-3.111,1.82],[0,0],[-1.083,0.868],[0.111,1.519],[1.449,0.421],[0.177,0.118],[3.01,1.369],[0.003,0],[-0.234,1.397],[2.631,2.707],[0,0],[3.541,0.288],[0,0],[2.336,0.708],[0.968,-2.901],[1.135,0.421],[2.135,-2.58],[-0.004,-0.001],[0,0],[2.543,0.326],[4.76,1.236],[8.932,-4.175],[2.573,0.688],[-2.045,-2.011],[1.722,-3.863],[3.49,2.098],[0.367,0.509],[3.797,-1.129],[-0.148,-0.374],[0.056,-0.05],[4.058,-0.097],[1.693,-1.355],[-0.024,0.009],[0,0],[-0.007,0.004],[1.572,-1.174],[2.631,4.89],[1.209,0.712],[0.368,0.404],[5.423,-4.199],[4.473,5.058],[0.917,2.928],[4.796,-2.159],[0,0],[1.188,-0.149],[2.914,-1.374],[0,0],[0.232,-7.153],[-0.2,-2.077],[-1.086,0.643],[0,0],[8.845,-2.674],[1.904,-0.299],[0,0],[1.307,-0.301],[2.544,-0.594],[0.144,-0.096],[0.517,-0.431],[-0.536,-0.766],[0.05,-0.423],[-0.904,-2.237],[5.945,1.767],[0.061,0.605],[-0.043,1.693],[2.113,0.255],[0,0],[0.198,0.322],[0.746,1.479],[4.325,-4.347],[0,0],[1.836,-0.004],[-0.727,-3.593],[3.027,-1.448],[3.553,3.098],[0.493,-0.046],[0.849,0.142],[0.326,0.133],[0.053,1.991],[4.274,-0.78],[4.132,1.378],[-0.536,-4.567],[-0.29,-0.767],[-0.003,0],[0,0],[3.996,-0.186],[0.315,0.414],[0,0],[0,0],[-3.008,9.428],[1.148,1.272],[0.091,0.375],[0,0],[5.807,2.783],[0,0],[1.521,-0.827],[0.849,-0.585],[0,0.001],[1.58,0.315],[0,0],[0,0],[0.666,-0.16],[0.425,5.946],[2.108,0.173],[0.414,-1.815],[-3.724,-3.965],[-0.015,-1.228],[-0.003,0],[0,-0.001],[0.815,-0.054],[0.223,-0.704],[0.145,-0.395],[0,0],[0.473,-0.39],[0,-0.001],[3.005,5.111],[2.046,-2.306],[0.12,-1.464],[0,-0.001],[1.721,-1.511],[0.244,-7.916],[-1.098,-0.38],[0,0],[-0.819,-0.459],[0,0],[0.626,-1.522],[0.753,-0.077],[3.687,-1.093],[-1.315,-3.533],[-3.709,-3.07],[1.674,-0.108],[0.233,0.088],[4.429,-1.278],[1.303,0.096],[-1.693,-1.484],[0.779,-0.45],[0.008,-0.386],[0,0],[0.001,-0.001],[0.099,0.103],[1.11,0.394],[0.498,0.773],[0.854,-1.8],[0,0],[0.328,-0.019],[-3.225,-3.158],[-0.18,-0.222],[0.213,0.127],[0.777,5.163],[0.739,0.821],[2.91,-0.412],[-0.232,-1.848],[-0.031,-0.387],[-0.19,-0.971],[-0.047,-0.918],[0.479,-2.657],[0.026,-0.062],[-0.034,-0.596],[0.087,-1.224],[-0.161,-2.433],[-3.579,-1.731],[-0.008,-0.007],[4.74,2.206],[2.811,-1.406],[2.251,2.689],[-2.283,-1.541],[-1.921,-1.075],[-0.176,-0.329],[4.599,1.297],[0.514,-0.257],[0.374,-0.222],[0.594,0.005],[1.697,0.976],[3.425,-1.782],[0.552,-0.588],[0.598,-0.275],[0.344,-0.44],[0.176,-0.406],[0.603,-0.371],[0.753,-0.423],[0.711,-1.93],[1.805,1.021],[-0.329,1.628],[0.003,0],[0,0],[0,0],[4.402,-0.418],[-0.915,-3.134],[-0.222,-1.58],[-0.355,-0.456],[-0.031,-0.039],[0.032,-0.042],[-0.362,-0.325],[2.386,0.054],[0.202,4.087],[1.618,0.813],[0.038,-0.015],[0.088,0.073],[0.563,0.596],[3.483,3.1],[5.932,-0.571],[2.164,6.149],[0,0],[5.104,-1.989],[3.096,-3.499],[0,0],[0.003,-0.003],[0,0],[0.502,-0.301],[0.5,-0.32],[1.406,-0.279],[3.074,-1.634],[0.692,-0.741],[1.033,-1.301],[1.362,-0.229],[-1.106,-3.477],[-0.085,-0.638],[-0.171,-1.009],[1.637,-1.047],[-0.726,-1.198],[-0.114,-0.077],[0,0],[0.232,-0.121],[4.607,-3.434],[0.623,-1.28],[4.335,-3.542],[-2.306,-6.346],[0.118,-3.965],[-6.062,1.783],[-2.539,2.613],[-0.852,-2.71],[-1.636,-0.779],[-0.023,-0.077],[-0.211,-0.539],[-0.36,-0.589],[0.027,-0.6],[1.099,-1.086],[0.45,0.129],[0.214,-0.073],[-0.062,0.219],[0.978,3.047],[2.007,-0.479],[-2.674,-5.847],[-0.013,-0.024],[0.165,-0.015],[-0.932,-1.477],[0,0],[-0.053,-0.49],[0.861,-0.844],[0.232,-0.081],[2.007,-6.069],[4.382,-0.961],[-0.67,1.652],[2.31,1.293],[1.124,0.624],[0.034,0.416],[1.816,1.239],[0,0],[-0.018,5.31],[2.886,3.173],[3.522,-1.743],[-1.205,-4.66],[7.166,-1.587],[0.175,-0.352],[1.171,-1.189],[0.05,-2.841],[1.354,-2.295],[0,0],[-4.268,-0.781],[-1.533,0.062],[-2.05,0.853],[2.354,4.06],[-0.175,1.686],[-1.682,1.351],[-0.066,0.186],[-0.543,-0.26],[-0.003,0.004],[-0.795,-0.746],[0,0],[0.716,0.011],[-0.188,-0.41],[0.853,-0.891],[0.443,-0.542],[-1.067,-1.102],[0,0],[0,-0.001],[-0.095,-0.083],[0.035,-0.037],[0.103,-0.619],[0.003,-0.362],[-0.418,-1.909],[-0.666,0.028],[0.005,-2.014],[1.075,-0.754],[-1.324,-0.252],[-0.385,-0.406],[-1.119,0.164],[-1.04,0.295],[-1.209,0.497],[1.471,-0.416],[1.089,-0.164],[0.542,-1.487],[0.02,-0.387],[0,0],[-1.132,-2.378],[-0.822,0.273],[-0.769,-0.039],[2.497,-5.881],[0,0],[2.819,0.482],[6.447,0.176],[-1.251,-4.047],[1.102,-3.372],[-0.914,-1.467],[0.638,-0.039],[0.023,-0.367],[-0.749,-1.596],[-2.684,-1.477],[-1.556,-0.367],[-0.742,-3.18],[0,0],[0,0],[0.042,-1.171],[-0.035,-0.275],[0.26,-0.257],[1.905,-0.753],[0.585,-5.937],[6.563,-2.544],[-1.393,-2.279],[0.963,-4.657],[0,0],[0.13,-0.689],[3.496,-3.12],[-0.865,-1.743],[-0.36,-0.398],[-0.378,-0.042],[-0.02,-0.226],[1.328,-5.318],[-0.104,-0.467],[-2.127,-4.531],[-0.15,-0.902],[0.046,-0.305],[-0.813,-1.007],[0,0],[-0.012,-0.84],[-2.218,0.014],[-3.677,-2.576],[-0.043,-1.156],[-0.393,-0.383],[-0.032,-0.44],[0,0],[-3.647,-0.956],[-0.406,-0.191],[-1.564,-0.776],[0,0],[0,0],[-2.168,-1.323],[0,0],[0,0],[-2.112,1.077],[-6.09,-1.156],[0,0.003],[-3.942,2.565],[-5.958,-2.25],[0,0],[-0.417,-0.821],[-0.558,-1.074],[0,0],[-3.955,1.005],[0,0],[-1.081,-0.417],[0.527,-3.766],[-0.007,-0.037],[0.336,-0.533],[0.107,-0.81],[-0.481,-0.02],[-8.822,-5.763],[-0.367,-0.445],[0,-0.003],[-0.248,-0.293],[-0.005,0],[0,-0.003],[-0.146,-0.737],[-0.624,-0.409],[0,0.003],[0,0],[-2.14,-1.82],[0,0],[-2.1,-5.427],[2.349,-2.341],[0.248,-7.189],[-1.485,-2.547],[-0.937,-7.016],[-7.77,-8.623],[-0.072,0.2],[0,0],[-0.115,-0.034],[0.153,-0.184],[0.11,-6.744],[-5.36,1.089],[-4.519,-0.471],[-5.621,4.118],[-6.52,6.975],[0.519,2.934],[-1.044,2.412],[-1.958,3.579],[2.299,3.839],[0,0],[0.135,0.386],[-0.349,1.779],[0.003,-0.003],[0,0],[-2.563,2.07],[-0.802,1.649],[0,0],[-0.543,0.539],[0,0],[0,0],[-0.012,8.503],[-0.143,3.72],[2.318,1.334],[1.289,4.305],[-1.801,4.037],[-2.455,4.425],[0,0],[-0.08,0.375],[-7.348,2.897],[-0.799,0.691],[0.429,0.527],[-0.119,0.221],[-0.364,0.122],[-0.389,0.397],[-0.668,0.699],[-0.326,0.042],[-1.063,1.693],[-0.446,-0.028],[-1.578,3.54],[0.19,0.333],[-0.142,0.104],[-0.859,2.714],[2.191,3.19],[3.073,-0.214],[8.345,2.373],[-0.03,0.245],[0.284,0.313],[-1.569,0.706],[-1.811,0.465],[-3.954,1.993],[-0.031,2.841],[0.064,0.157],[0.06,0.078],[0,0],[0.018,0.007],[0.009,0.015],[0,0.034],[-0.064,-0.164],[-0.225,-0.16],[-3.523,1.915],[-2.237,2.331],[0,0],[-3.515,3.336],[-2.133,0.825],[-2.066,2.378],[6.161,6.603],[-0.004,0.003],[2.574,0.485],[1.231,1.969],[0,0],[0,0],[-0.061,0.428],[2.194,0.497],[0.241,-1.066],[0,0],[1.476,-1.308],[0.424,-1.139],[1.128,-0.46],[2.802,1.816],[0,0],[0.391,1.597],[0,0],[-0.362,0.364],[1.324,0.192],[0.238,-0.872],[0.929,0.548],[3.346,1.774],[0,0],[0.857,1.559],[1.077,0.922],[0,0],[0,0.003],[-0.309,1.06],[-0.789,-0.013],[-1.383,-2.205],[-3.67,-2.813],[-0.879,-0.224],[-1.113,-0.167],[-1.492,0.362],[-1.147,-0.37],[-1.885,-1.339],[-6.972,1.368],[-0.627,-0.474],[-1.556,0.046],[-4.902,-7.687],[-1.555,1.15],[-1.11,-2.922],[-7.365,2.975],[-0.408,-1.495],[-0.819,-2.513],[-6.512,-14.625],[-3.354,2.93],[-1.301,3.18],[-0.007,0.054],[-0.141,1.503],[-6.411,8.54],[-1.373,1.354],[-9.085,3.303],[-1.471,-0.046],[-2.227,0.055],[-1.647,-1.794],[0.52,-8.358],[-0.764,-0.62],[-2.417,0.857]],"o":[[0.984,4.44],[0.58,1.308],[-0.074,4.942],[0.037,1.676],[0.967,0.513],[0.808,1.69],[0.229,0.158],[0.378,2.02],[0,0],[-0.005,0.077],[-2.261,1.018],[0.019,0.576],[0.362,0.073],[3.352,4.434],[1.514,-1.515],[0.031,-0.956],[0,0],[-0.539,-0.895],[-0.289,-2.962],[-1.564,-1.208],[0,0],[-2.276,-1.806],[0.033,-0.169],[0.245,-3.384],[-2.322,-2.753],[-0.032,-0.297],[0.207,-0.096],[0.471,-0.383],[0.707,-1.378],[0.118,-0.099],[0.326,0.544],[0.419,0.42],[1.517,0.547],[3.625,3.522],[0.074,1.185],[0.475,0.46],[0.141,-0.115],[2.095,0.589],[0.578,-1.575],[9.253,-2.987],[-0.49,-0.425],[0.003,-0.393],[0,0],[-0.169,-4.948],[-5.716,-4.578],[1.175,-2.458],[0.678,-0.742],[0.422,0.37],[3.704,-1.555],[1.196,1.574],[1.173,-1.246],[0.517,-0.156],[1.625,-1.032],[1.393,-1.125],[7.145,-0.984],[2.593,-2.914],[1.104,-3.758],[1.94,-3.942],[-0.964,-1.549],[-0.603,-1.159],[0.011,-0.815],[-0.118,0.007],[-0.024,-0.328],[-1.942,-3.383],[-0.98,-2.011],[0,0],[-1.085,-1.504],[2.144,-2.693],[1.741,-0.326],[-0.03,-1.513],[-3.783,-0.127],[-1.72,1.49],[-1.089,-0.932],[3.352,-2.615],[1.07,1.919],[0.963,0.727],[2.681,-1.848],[0.091,0.12],[2.146,1.713],[0.338,4.076],[0.57,-0.345],[2.06,1.461],[-0.111,2.761],[-0.213,2.061],[2.127,0.695],[0.064,-0.329],[0.183,-0.019],[5.282,1.337],[0,0],[0,0],[0.288,0.064],[-0.207,-0.519],[-0.436,-1.114],[-0.379,-0.562],[0.079,-0.07],[0.363,-0.581],[0,0],[-0.138,-3.06],[0,0],[-0.139,-1.167],[-0.41,-0.971],[-0.325,-0.46],[-0.129,-0.096],[1.185,-2.555],[-0.118,-0.099],[1.205,-1.25],[0.008,-6.589],[4.872,-0.352],[1.53,-0.149],[5.575,-12.967],[-0.036,-0.63],[-3.716,-3.586],[0.034,0.05],[0.938,1.33],[0.303,0.158],[-0.696,4.539],[-0.2,0.234],[-0.546,3.089],[0.095,0.565],[1.018,2.29],[0.26,0.093],[0.758,0.237],[1.238,-4.213],[0.273,0.005],[2.053,-2.202],[-0.961,-1.255],[-4.443,-2.826],[0.073,-0.357],[0,0],[0,0],[0.515,-0.301],[1.232,-0.058],[-4.443,-8.767],[0.259,-2.876],[-0.383,-1.162],[-1.508,-0.024],[0.506,0.559],[-0.844,0.947],[-2.217,-2.528],[-1.935,-0.52],[-1.166,0.891],[-0.401,0.195],[-1.097,-1.567],[0.894,0.039],[0.15,-0.356],[-1.354,-0.666],[-0.171,0.175],[-0.062,-0.054],[-2.206,-2.153],[1.346,-7.131],[1.781,-11.005],[0.154,-0.229],[0.19,-0.831],[0.775,-0.227],[1.661,-0.062],[0.357,-0.626],[3.398,-2.008],[0.903,0.429],[-0.614,1.086],[2.301,-0.349],[0,0],[0.064,0.348],[0,0],[0,0],[-0.567,-1.456],[-1.441,-0.551],[0.024,-0.348],[0.018,-0.065],[0.764,-2.083],[0.28,-1.61],[-0.064,-0.229],[0.007,-0.154],[1.037,-1.208],[2.854,-2.267],[0.796,0.995],[0.755,1.617],[1.632,0.288],[0.47,-0.462],[0.049,-1.381],[0.538,-0.607],[0.018,0.38],[0.104,1.359],[-2.435,7.094],[-0.456,4.803],[0.133,0.219],[3.138,1.162],[-1.495,3.584],[1.379,4.784],[4.062,6.633],[0.967,1.609],[2.196,-0.447],[0.668,-3.554],[3.108,-0.845],[0,0],[-0.364,-3.098],[4.685,-2.508],[-2.072,-2.863],[0.773,0.414],[0.045,-1.12],[0,0],[0,0],[-0.129,-3.299],[1.016,-4.535],[0,0],[-2.5,-0.971],[-0.158,-3.334],[-1.095,-2.596],[0.092,-0.122],[0.44,0.234],[0.5,-1.486],[0.647,0.008],[0.031,0.961],[1.613,0.061],[0,0],[3.695,-5.842],[1.338,0.808],[-1.844,-12.259],[2.305,-0.913],[1.017,-3.831],[-2.762,-1.617],[-0.198,-0.532],[-0.947,-2.191],[0,0],[2.676,-8.425],[-1.534,-1.295],[1.98,-2.59],[1.483,0.93],[0.856,-3.014],[2.288,3.866],[0.003,0],[1.117,0.945],[1.281,0.026],[-0.137,-1.934],[-0.059,-0.209],[0.473,-3.013],[0,0],[-0.662,-1.07],[2.552,-1.621],[0,0],[0.687,-3.859],[0,0],[-2.339,-0.71],[-1.1,2.768],[-1.135,-0.422],[-1.926,-0.672],[0,0.001],[0,0],[-1.894,-2.589],[-4.916,-0.628],[-8.887,-2.306],[-2.232,1.045],[-4.148,3.717],[2.307,2.271],[-2.949,-2.994],[-0.395,-0.421],[-0.027,-2.061],[0.146,0.372],[-0.053,0.045],[-0.429,3.789],[-1.785,0.042],[0.024,-0.011],[0,0],[0.007,-0.005],[-1.748,0.757],[-4.593,3.442],[-0.678,-1.258],[-0.371,-0.404],[-6.569,-3.724],[-5.285,4.092],[-3.802,1.87],[-2.741,-8.755],[0,0],[-1.186,0.15],[-3.016,-0.561],[0,0],[-3.005,1.273],[-1.383,0.502],[0.118,1.179],[0,0.001],[1.054,3.257],[-1.892,0.303],[0.003,0.001],[-1.304,0.301],[-1.73,3.231],[-0.15,0.088],[-0.538,-0.515],[-1.005,0.837],[-0.148,0.347],[0.613,2.295],[-6.488,-0.5],[-0.058,-0.607],[1.068,0.295],[0.06,-2.257],[0,0],[-0.045,-0.379],[-0.746,-1.477],[-3.357,-1.633],[0,0.001],[-1.839,-0.552],[-2.287,0.007],[0.328,1.628],[-2.963,1.42],[-0.497,0.05],[-1.358,0.688],[-0.326,-0.142],[-0.869,-0.659],[-4.274,0.781],[-3.43,3.203],[-2.733,-0.911],[0.288,0.768],[0,0],[-0.003,0.001],[-1.655,3.039],[-0.315,-0.412],[0,0.001],[0,0],[3.709,-9.216],[-1.147,-1.273],[0.047,-0.383],[0,0],[-4.16,-5.358],[0,0],[-1.368,1.16],[-0.848,0.588],[0,0],[-2.903,1.427],[0,0],[0,0],[-0.738,-0.156],[-3.048,0.726],[-0.154,-2.167],[-2.164,-0.179],[-1.078,4.685],[0.018,1.231],[0,0],[0,0],[-0.812,0.055],[-0.221,0.703],[-0.144,0.394],[0,0],[-0.468,0.39],[0,0],[-1.885,1.469],[-0.594,-1.013],[-0.93,0.116],[0,0],[-1.052,2.325],[-5.204,4.562],[1.096,0.382],[0,0],[0.821,0.46],[0,0],[0.781,1.063],[-0.754,0.081],[-2.994,2.692],[-3.403,1.009],[1.988,5.331],[0.356,3.037],[-0.225,-0.095],[-3.375,-2.238],[-0.081,-1.461],[-0.917,1.473],[-0.779,0.451],[-0.008,0.383],[0,-0.001],[0,0.003],[-0.1,-0.104],[-1.109,-0.394],[-0.5,-0.773],[-0.248,2.095],[0,0],[-0.33,0.055],[-1.388,3.817],[0.207,0.207],[-0.157,-0.161],[-5.112,-3.063],[-0.482,-1.06],[-2.123,-2.367],[-1.517,0.214],[0.049,0.389],[-0.487,0.707],[0.188,0.945],[-0.299,2.683],[-0.024,0.062],[-0.222,0.562],[-0.19,1.212],[1.014,2.088],[0.261,4.064],[0.038,0.023],[-4.756,-2.149],[-3.035,-0.129],[-3.07,-0.611],[-2.849,1.458],[1.819,1.227],[-0.024,0.355],[2.321,4.378],[-0.532,-0.149],[-0.376,0.206],[-0.595,-0.004],[-2.572,0.621],[-4.622,-2.665],[-0.55,0.589],[-0.657,0.177],[-0.494,0.247],[-0.047,0.508],[-0.6,0.37],[-0.75,0.423],[-2.163,0.815],[-0.917,1.139],[-1.997,-1.125],[-0.003,0],[0,0],[0,0],[-0.163,-5.221],[-5.174,0.489],[0.437,1.504],[0.165,0.562],[0.03,0.039],[-0.031,0.036],[-0.176,0.236],[0.869,2.011],[-1.862,-0.042],[1.155,-2.049],[-0.035,0.016],[-0.085,-0.073],[0.294,-0.654],[-2.693,-4.264],[-4.302,-3.831],[-4.955,-1.649],[0,0],[-4.534,-1.468],[-3.613,-0.952],[0.003,0],[0,0],[0,0],[-0.479,0.34],[-0.509,0.305],[-1.292,0.623],[-2.137,3.555],[-0.787,0.612],[-1.36,0.989],[-0.994,0.733],[-3.112,1.839],[0.221,0.687],[-0.248,0.96],[-0.433,1.449],[-0.955,0.982],[0.116,0.104],[0,0],[-0.234,0.12],[-3.733,3.916],[-0.83,1.062],[-2.229,5.637],[-6.772,4.607],[1.393,3.833],[-0.19,6.431],[3.538,-1.04],[-0.251,2.845],[0.872,1.664],[0.026,0.076],[0.095,0.571],[0.44,0.737],[-0.027,0.6],[-1.606,0.055],[-0.424,0.031],[-0.242,0.024],[0.047,-0.222],[2.592,-3.151],[-0.58,-1.809],[-5.762,1.369],[0.015,0.024],[-0.152,0.004],[-1.101,1.637],[0,0],[0.394,0.665],[-0.592,1.035],[-0.218,0.088],[-4.525,2.114],[-1.553,4.714],[-1.025,-1.766],[0.917,-2.24],[-0.848,-1.362],[-0.035,-0.414],[1.786,-2.123],[0,0],[-2.966,-4.348],[0.018,-4.337],[-1.815,-1.996],[-3.553,1.755],[1.79,6.902],[-0.233,0.052],[-1.17,1.189],[-2.612,0.598],[-0.045,2.305],[0,0],[-2.177,4.494],[1.583,0.288],[1.819,-1.555],[3.328,-1.381],[2.387,0.108],[0.245,-2.391],[0.095,-0.177],[0.542,0.259],[0,0],[0.795,0.746],[0,0],[-0.711,-0.012],[0.187,0.409],[-1.169,0.38],[-0.441,0.54],[-1.46,1.144],[0,0],[0,0],[0.089,0.081],[-0.038,0.035],[-0.357,0.506],[-0.007,0.361],[-1.121,0.443],[0.668,-0.029],[0.84,2.148],[-1.078,0.753],[-1.036,2.6],[0.389,0.409],[1.311,0.597],[0.953,-0.516],[1.311,-0.687],[-0.876,1.154],[-0.967,0.508],[-1.066,0.573],[-0.034,0.38],[0,0],[-1.591,2.443],[0.819,0.635],[0.657,0.404],[6.836,5.625],[0,0],[-0.976,4.439],[-6.428,-1.097],[-2.947,2.716],[1.078,3.487],[-0.309,1.616],[-0.632,0.039],[-0.003,0.37],[0.749,1.597],[-2.152,2.546],[1.559,0.366],[3.106,0.139],[0,0],[0,0],[-0.042,1.169],[0.039,0.272],[-0.181,0.303],[-0.534,2.095],[-6.014,2.378],[-0.777,7.968],[-2.39,0.925],[-3.327,2.883],[-0.003,0],[-0.133,0.685],[-5.143,1.824],[-0.506,1.477],[0.357,0.398],[0.32,0.385],[0.02,0.21],[-0.909,5.349],[-0.008,0.498],[-1.266,3.893],[0.84,0.894],[0,0.311],[-0.894,1.571],[0,0],[0.01,0.834],[2.213,-0.019],[2.57,3.732],[0.045,1.159],[0.394,0.384],[0.035,0.437],[0,0],[0.959,4.183],[0.41,0.195],[0.34,2.096],[0,0],[0,0],[1.342,2.433],[0,0],[0,0],[2.065,1.831],[5.689,-2.906],[0,-0.003],[5.018,2.107],[5.7,-1.661],[0.003,0],[0.414,0.821],[0.556,1.075],[0.003,0],[3.458,4.672],[0,0],[0.247,1.304],[3.689,1.427],[0.011,0.037],[-0.49,0.156],[-0.103,0.803],[0.481,0.02],[-4.014,10.272],[0.364,0.445],[0,0.003],[0.081,0.385],[0,0],[-0.005,0],[0.145,0.742],[0.625,0.412],[0,0],[0,0.003],[-0.632,2.68],[0,0],[0.83,5.626],[1.156,2.993],[-5.352,5.334],[-0.845,2.898],[3.532,6.047],[1.476,11.017],[0.005,-0.221],[0,0],[0.116,0.039],[-0.154,0.18],[0.742,6.314],[-0.088,5.323],[4.299,-0.88],[7.104,0.739],[7.839,-5.74],[1.797,-1.927],[1.031,-2.408],[4.089,-0.666],[1.882,-4.188],[0,0.003],[-0.137,-0.387],[0.349,-1.778],[-0.003,0],[0,0],[2.559,-2.073],[1.877,-0.229],[0,0],[0.54,-0.539],[0,-0.003],[0,0],[8.484,-2.425],[0.009,-3.722],[0.102,-2.534],[-1.117,-4.601],[-1.48,-4.953],[2.18,-4.886],[0,0],[0.249,-0.283],[5.981,-4.604],[0.796,-0.691],[0.387,-0.584],[0.119,-0.229],[0.358,-0.045],[0.504,-0.219],[0.825,-0.576],[0.302,-0.15],[1.06,-1.69],[0.447,0.028],[1.58,-3.541],[0.311,-0.427],[0.126,-0.122],[1.096,-2.534],[1.07,-3.385],[-2.448,-3.556],[-8.042,0.554],[0.047,-0.078],[0.045,-0.352],[-0.349,-2.62],[1.16,-0.11],[4.107,-1.521],[1.825,-0.919],[-0.053,-0.186],[-0.057,-0.082],[0.012,-0.01],[-0.016,-0.011],[-0.008,-0.013],[-0.003,-0.031],[0.076,0.141],[0.175,0.228],[4.206,0.723],[1.966,-2.576],[0,0],[5.106,-0.628],[2.73,0.635],[0.998,-2.618],[5.693,-6.539],[0,0],[-2.578,-0.488],[-1.234,-1.974],[0,0],[0,0],[0.062,-0.435],[-0.413,-1.453],[-0.925,-0.209],[0,0],[-1.473,1.305],[-0.423,1.143],[-1.125,0.46],[-2.944,-1.278],[0,-0.003],[-0.389,-1.594],[0,0],[0.363,-0.367],[-0.364,-1.274],[-0.229,0.875],[-0.928,-0.552],[-0.387,-3.802],[0,0],[-0.861,-1.56],[-0.149,-1.332],[0,0],[0,0],[0.301,-1.059],[0.88,-0.181],[2.278,0.719],[2.566,4.087],[0.669,0.62],[1.067,0.42],[1.397,0.654],[1.182,0.138],[2.635,-0.482],[6.011,4.279],[0.019,0.727],[1.473,0.708],[6.676,-0.789],[0.956,1.5],[0.199,3.366],[2.906,7.61],[2.91,0.05],[0.096,2.531],[4.975,15.332],[1.85,4.153],[2.46,-2.148],[0.006,-0.05],[1.077,-0.443],[0.955,-10.279],[1.416,-1.312],[6.658,-6.57],[1.327,0.691],[2.164,-1.067],[-0.642,2.758],[5.074,5.534],[-0.061,0.951],[2.481,1.104],[3.277,-1.159]],"v":[[229.306,161.004],[234.246,173.453],[235.961,177.415],[234.814,192.198],[236.897,196.127],[239.817,197.622],[243.442,201.67],[244.115,202.155],[246.197,207.887],[246.197,207.889],[246.201,208.121],[245.658,212.21],[246.404,213.515],[247.459,213.814],[260.108,223.578],[260.093,219.049],[260.181,216.177],[260.18,216.158],[257.967,214.416],[256.639,205.605],[251.943,201.989],[251.943,201.989],[245.104,196.573],[245.197,196.065],[241.788,187.655],[240.412,179.201],[240.311,178.31],[240.953,178.001],[242.058,176.597],[242.916,172.143],[243.302,171.883],[244.287,173.5],[245.715,174.516],[250.314,175.833],[261.19,186.402],[261.405,189.95],[262.979,190.153],[263.347,189.806],[268.205,187.59],[270.661,183.298],[280.962,166.312],[279.487,165.027],[279.505,163.848],[279.504,163.848],[272.931,152.782],[264.467,142.605],[267.482,134.941],[268.654,132.397],[270.029,132.823],[279.395,135.116],[283.88,134.783],[287.586,131.269],[289.106,130.699],[294.373,128.732],[299.122,126.815],[315.602,116.052],[320.298,106.095],[325.157,95.591],[325.406,83.424],[323.973,78.487],[322.75,74.877],[322.787,72.429],[322.435,72.45],[322.381,71.467],[316.014,61.65],[311.116,58.208],[311.116,58.208],[310.772,53.47],[318.165,46.517],[320.65,43.027],[318.443,39.957],[307.017,39.517],[301.871,38.133],[300.761,34.567],[308.93,25.015],[311.689,30.736],[314.936,31.791],[323.889,28.322],[324.156,28.685],[325.824,35.125],[332.19,39.935],[333.735,38.693],[335.03,45.012],[335.643,53.239],[338.529,57.862],[343.217,55.574],[343.255,54.634],[343.769,54.458],[349.329,48.465],[349.328,48.465],[349.329,48.462],[350.208,48.541],[349.587,46.986],[348.275,43.652],[347.134,41.968],[347.375,41.762],[347.178,40.194],[346.949,40.389],[342.482,34.352],[342.498,34.346],[341.458,31.487],[339.948,28.702],[338.812,27.487],[338.441,27.174],[342.84,19.972],[342.491,19.67],[344.116,15.112],[352.351,6.114],[359.95,-2.139],[362.934,-4.934],[370.991,-45.634],[370.627,-47.465],[366.477,-60.555],[366.569,-60.402],[370.079,-57.202],[371.012,-56.793],[375.769,-41.198],[375.222,-40.394],[376.27,-31.452],[376.732,-29.809],[380.267,-23.23],[381.042,-22.944],[383.282,-22.616],[387.957,-23.223],[388.781,-23.261],[387.593,-27.889],[384.193,-31.076],[380.032,-42.932],[380.038,-44.006],[380.038,-44.006],[380.04,-44.006],[381.587,-44.904],[383.261,-46.878],[369.356,-72.851],[365.804,-78.741],[364.646,-82.228],[362.265,-79.944],[363.909,-78.492],[361.632,-75.474],[353.644,-81.256],[347.985,-80.82],[344.445,-78.25],[343.279,-77.575],[340.469,-82.546],[342.855,-83.299],[342.407,-84.706],[339.211,-83.555],[338.697,-83.031],[338.515,-83.198],[338.452,-89.724],[344.35,-110.563],[357.196,-124.625],[357.661,-125.307],[358.581,-127.074],[360.872,-127.835],[365.109,-128.854],[366.256,-130.47],[376.783,-131.583],[379.559,-130.562],[381.738,-129.195],[387.688,-132.106],[387.688,-132.105],[387.937,-131.078],[388.317,-131.149],[388.704,-131.149],[388.118,-135.669],[385.589,-138.629],[385.685,-139.672],[385.73,-139.869],[386.897,-146.246],[387.213,-151.122],[387.087,-151.778],[387.107,-152.237],[389.011,-156.663],[398.192,-157.695],[400.275,-155.221],[404.252,-152.499],[406.248,-154.838],[407.797,-156.487],[408.996,-160.477],[411.145,-161.476],[411.128,-160.315],[411.484,-156.237],[409.06,-134.339],[404.417,-122.337],[404.631,-121.616],[406.91,-115.381],[407.304,-105.091],[413.484,-91.825],[425.747,-71.974],[429.176,-67.962],[432.108,-73.257],[431.253,-83.674],[432.43,-88.357],[432.43,-88.358],[434.166,-96.96],[434.601,-103.975],[434.246,-113.435],[435.861,-114.05],[434.066,-116.398],[434.063,-116.397],[434.063,-116.398],[429.751,-123.942],[425.186,-127.617],[425.184,-127.617],[422.637,-133.011],[421.498,-142.903],[423.277,-149.179],[423.544,-149.557],[424.868,-148.855],[426.374,-153.315],[428.315,-153.289],[429.273,-150.842],[430.573,-153.482],[430.573,-153.482],[441.355,-156.249],[445.536,-155.018],[455.446,-186.725],[462.425,-188.449],[457.481,-196.742],[451.249,-203.129],[450.655,-204.728],[446.812,-210.617],[446.808,-210.617],[442.402,-227.075],[441.362,-231.552],[444.438,-230.343],[449.199,-228.638],[455.082,-233.115],[463.442,-231.85],[463.445,-231.85],[466.738,-231.919],[468.821,-233.842],[465.737,-236.583],[465.379,-237.073],[462.278,-243.978],[462.275,-243.979],[461.063,-247.47],[462.303,-253.675],[462.303,-253.673],[457.588,-259.526],[457.588,-259.525],[450.577,-261.648],[444.912,-255.709],[441.512,-256.973],[435.635,-257.37],[435.639,-257.366],[435.642,-257.347],[428.34,-259.575],[413.603,-261.441],[387.1,-261.674],[379.747,-260.731],[381.621,-253.373],[386.007,-245.645],[375.632,-252.09],[374.508,-253.546],[369.421,-255.492],[369.861,-254.372],[369.706,-254.243],[363.487,-248.448],[357.794,-247.266],[357.864,-247.297],[357.774,-247.253],[357.794,-247.266],[352.712,-244.641],[341.745,-246.839],[339.079,-249.86],[337.967,-251.072],[319.297,-249.47],[305.507,-249.887],[295.404,-251.458],[283.349,-254.705],[283.349,-254.705],[279.788,-254.257],[270.86,-253.741],[270.86,-253.741],[262.093,-249.402],[259.219,-246.563],[261.175,-245.634],[261.175,-245.633],[260.643,-236.082],[254.956,-235.177],[254.961,-235.175],[251.046,-234.273],[243.604,-231.854],[243.164,-231.577],[241.479,-232.011],[241.446,-229.621],[241.137,-228.476],[242.342,-221.45],[225.726,-229.562],[225.545,-231.378],[228.216,-232.148],[224.44,-235.715],[224.44,-235.716],[224.072,-236.77],[221.834,-241.203],[211.261,-243.003],[211.261,-243.001],[205.747,-244.548],[201.668,-240.416],[201.684,-235.494],[192.228,-234.317],[190.748,-234.174],[187.458,-233.38],[186.48,-233.791],[185.118,-237.806],[172.301,-235.462],[160.733,-233.414],[156.168,-230.706],[157.032,-228.405],[157.034,-228.407],[157.032,-228.405],[149.738,-222.128],[148.792,-223.365],[148.792,-223.364],[148.792,-223.364],[156.8,-251.936],[153.355,-255.755],[153.286,-256.892],[153.285,-256.892],[137.36,-267.571],[137.268,-267.602],[132.592,-265.373],[130.051,-263.614],[130.049,-263.615],[126.665,-266.33],[126.665,-266.33],[126.665,-266.33],[124.464,-266.754],[117.786,-269.924],[112.382,-272.381],[108.81,-269.223],[110.783,-255.889],[110.831,-252.199],[110.834,-252.199],[110.831,-252.197],[108.389,-252.035],[107.725,-249.921],[107.293,-248.738],[107.293,-248.738],[105.882,-247.566],[105.882,-247.564],[99.679,-246.809],[93.531,-243.207],[92.055,-240.668],[92.055,-240.666],[86.882,-236.139],[76.03,-219.176],[79.321,-218.034],[79.318,-218.034],[81.777,-216.655],[81.777,-216.655],[82.897,-213.064],[80.638,-212.823],[70.221,-208.031],[67.729,-201.89],[78.204,-191.867],[74.787,-189.219],[74.098,-189.492],[62.972,-192.863],[60.706,-194.984],[60.689,-190.552],[58.355,-189.2],[58.33,-188.047],[58.63,-187.741],[58.628,-187.735],[58.33,-188.047],[55.001,-189.227],[53.504,-191.55],[52.636,-185.739],[52.636,-185.739],[51.649,-185.626],[53.094,-174.968],[53.672,-174.323],[53.124,-174.76],[46.482,-188.022],[44.998,-191.168],[37.092,-193.456],[33.955,-190.622],[34.068,-189.46],[33.569,-186.926],[33.917,-184.132],[32.569,-176.14],[32.5,-175.956],[32.239,-174.208],[31.808,-170.557],[34.087,-164.011],[40.089,-155.455],[40.307,-155.271],[25.444,-159.575],[16.379,-159.609],[8.445,-164.618],[8.255,-159.886],[13.935,-156.547],[14.122,-155.512],[10.626,-151.038],[8.998,-150.648],[7.877,-150.001],[6.095,-150.02],[-1.48,-148.415],[-12.447,-146.437],[-14.097,-144.671],[-16.06,-144.066],[-17.317,-143.038],[-17.668,-141.68],[-19.471,-140.568],[-21.73,-139.303],[-25.206,-134.545],[-28.606,-132.3],[-28.887,-137.031],[-28.892,-137.031],[-28.889,-137.031],[-28.781,-137.05],[-35.399,-144.02],[-38.164,-137.169],[-37.847,-132.437],[-37.155,-130.862],[-37.059,-130.745],[-37.155,-130.648],[-36.875,-129.809],[-38.757,-126.366],[-43.736,-128.607],[-45.384,-132.472],[-45.495,-132.424],[-45.758,-132.642],[-46.133,-134.518],[-57.564,-142.032],[-72.804,-147.631],[-85.581,-155.946],[-85.581,-155.946],[-99.515,-158.357],[-109.876,-157.097],[-109.873,-157.097],[-109.876,-157.094],[-109.979,-157.19],[-111.451,-156.23],[-112.958,-155.289],[-116.875,-153.557],[-126.166,-148.801],[-128.356,-146.732],[-131.925,-143.255],[-135.399,-141.734],[-138.432,-133.716],[-137.996,-131.739],[-138.165,-128.775],[-141.219,-125.017],[-141.624,-121.754],[-141.28,-121.51],[-141.28,-121.51],[-141.984,-121.148],[-149.28,-107.248],[-152.103,-104.406],[-163.566,-92.227],[-169.594,-78.191],[-167.983,-66.632],[-157.406,-58.486],[-148.16,-63.69],[-145.802,-55.535],[-141.904,-52.028],[-141.831,-51.805],[-141.377,-50.127],[-140.191,-48.159],[-140.276,-46.358],[-144.278,-44.542],[-145.578,-44.655],[-146.257,-44.492],[-146.111,-45.163],[-146.311,-54.508],[-150.379,-56.804],[-156.271,-43.003],[-156.229,-42.927],[-156.691,-42.905],[-156.348,-38.28],[-156.342,-38.266],[-155.693,-36.544],[-157.983,-33.804],[-158.656,-33.551],[-171.347,-25.769],[-180.502,-17.958],[-180.127,-22.97],[-181.727,-28.478],[-185.275,-29.856],[-185.373,-31.1],[-186.485,-35.88],[-186.485,-35.882],[-193.945,-49.588],[-197.441,-59.927],[-203.31,-63.523],[-211.093,-55.338],[-217.257,-42.82],[-217.783,-41.803],[-221.294,-38.236],[-224.919,-33.252],[-224.781,-26.377],[-224.793,-26.367],[-221.569,-18.268],[-217,-18.756],[-210.737,-21.084],[-207.177,-28.439],[-204.179,-32.129],[-201.108,-37.409],[-200.887,-37.962],[-199.258,-37.183],[-199.255,-37.187],[-196.869,-34.95],[-196.991,-34.464],[-199.131,-34.495],[-198.569,-33.265],[-201.499,-31.195],[-202.821,-29.57],[-202.765,-26.21],[-202.765,-26.21],[-202.765,-26.208],[-202.49,-25.961],[-202.607,-25.865],[-203.297,-24.183],[-203.307,-23.102],[-205.069,-20.253],[-203.069,-20.339],[-204.159,-14.44],[-207.388,-12.177],[-205.093,-9.758],[-203.934,-8.533],[-200.309,-7.989],[-197.24,-9.086],[-193.495,-11.096],[-197.24,-9.086],[-200.309,-7.989],[-202.832,-5.069],[-202.913,-3.919],[-202.913,-3.919],[-202.753,3.291],[-200.293,3.931],[-198.14,4.554],[-192.333,19.947],[-192.348,19.967],[-199.678,23.306],[-218.997,22.262],[-221.867,32.216],[-222.602,42.521],[-222.922,47.285],[-224.824,47.403],[-224.865,48.507],[-222.618,53.296],[-221.363,59.23],[-216.69,60.326],[-210.793,65.144],[-210.793,65.144],[-210.795,65.144],[-210.919,68.651],[-210.806,69.47],[-211.448,70.324],[-215.283,74.431],[-225.352,87.832],[-236.938,102.194],[-239.044,106.997],[-246.47,117.555],[-246.473,117.555],[-246.867,119.612],[-255.189,130.685],[-256.031,135.251],[-254.956,136.444],[-253.912,137.064],[-253.854,137.699],[-255.384,153.885],[-255.253,155.337],[-257.304,167.34],[-257.277,170.05],[-257.348,170.973],[-256.266,174.442],[-255.985,174.437],[-255.952,176.949],[-249.307,176.899],[-239.894,186.314],[-239.758,189.786],[-238.579,190.934],[-238.468,192.249],[-238.466,192.249],[-230.757,198.987],[-229.531,199.566],[-225.944,203.084],[-225.944,203.081],[-225.944,203.084],[-219.967,207.759],[-219.967,207.759],[-219.967,207.759],[-213.612,207.969],[-195.889,206.084],[-195.889,206.079],[-183.009,202.967],[-165.662,201.766],[-165.659,201.766],[-164.414,204.225],[-162.74,207.449],[-162.737,207.449],[-151.256,208.812],[-151.256,208.812],[-149.051,211.387],[-144.752,219.359],[-144.73,219.469],[-145.847,220.815],[-146.163,223.234],[-144.723,223.294],[-136.766,247.084],[-135.669,248.42],[-135.669,248.425],[-135.172,249.441],[-135.164,249.441],[-135.17,249.444],[-134.734,251.665],[-132.857,252.891],[-132.857,252.889],[-132.857,252.891],[-130.835,259.717],[-130.835,259.717],[-127.991,276.545],[-129.764,284.671],[-136.436,304.101],[-134.719,311.762],[-126.449,331.05],[-115.826,361.523],[-115.711,360.896],[-115.711,360.896],[-115.364,360.981],[-115.826,361.523],[-112.052,380.234],[-102.549,386.039],[-89.537,383.822],[-70.739,377.834],[-51.905,356.273],[-49.853,348.473],[-46.746,341.242],[-37.947,334.497],[-38.929,322.495],[-38.929,322.498],[-39.338,321.336],[-38.295,316.005],[-38.301,316.007],[-38.298,316.005],[-30.616,309.791],[-26.789,306.728],[-26.792,306.728],[-25.168,305.111],[-25.168,305.108],[-25.168,305.108],[-13.582,290.175],[-13.416,279.009],[-16.118,273.003],[-18.142,259.085],[-16.131,247.055],[-7.073,235.017],[-7.073,235.017],[-6.577,234.03],[10.73,219.432],[13.124,217.359],[13.051,215.692],[13.407,215.018],[14.486,214.778],[15.828,213.85],[18.041,211.915],[18.977,211.608],[22.164,206.53],[23.505,206.612],[28.233,195.992],[28.395,194.861],[28.793,194.52],[32.973,187.457],[33.688,177.245],[24.58,176.839],[0.556,179.555],[0.671,179.076],[0.311,178.078],[2.83,173.776],[7.221,172.882],[19.646,168.663],[23.842,164.567],[23.67,164.048],[23.502,163.803],[23.528,163.785],[23.478,163.765],[23.451,163.723],[23.451,163.624],[23.67,164.048],[24.255,164.648],[35.516,161.56],[41.691,154.079],[41.691,154.076],[53.575,146.331],[59.876,143.617],[63.458,136.022],[62.723,122.35],[62.604,122.475],[54.875,121.016],[51.176,115.099],[51.175,115.099],[51.175,115.099],[51.358,113.807],[50.113,109.596],[48.923,112.416],[48.922,112.416],[44.497,116.337],[43.225,119.761],[39.841,121.141],[30.675,118.557],[30.675,118.555],[29.502,113.768],[29.502,113.768],[30.594,112.672],[28.143,110.38],[27.448,113],[24.667,111.347],[19.169,102.91],[19.169,102.913],[16.592,98.237],[15.113,94.696],[15.113,94.696],[15.113,94.693],[16.021,91.519],[18.516,91.296],[24.21,95.425],[34.068,105.108],[36.403,106.363],[39.687,107.184],[44.017,107.661],[47.52,108.354],[53.511,111.138],[73.223,114.523],[74.338,116.263],[78.931,116.777],[97.487,121.138],[101.749,121.855],[106.573,129.266],[119.325,134.8],[121.549,138.723],[122.279,146.299],[141.346,190.398],[149.744,192.139],[155.912,184.509],[155.929,184.35],[157.461,180.969],[166.207,152.023],[170.444,148.083],[191.156,129.373],[195.474,129.904],[202.147,129.432],[204.662,136.001],[214.007,155.495],[215.594,157.842],[222.809,157.422]],"c":true},"ix":2},"nm":"Path 22","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"null","np":23,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"outline fill","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.58],"y":[0]},"n":["0p833_0p833_0p58_0"],"t":30,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":114,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.72],"y":[0]},"n":["0p833_0p833_0p72_0"],"t":180,"s":[100],"e":[0]},{"t":262}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[-18.5,-5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-81.462,0],[0,-81.462],[81.462,0],[0,81.462]],"o":[[81.462,0],[0,81.462],[-81.462,0],[0,-81.462]],"v":[[-18.5,-153],[129,-5.5],[-18.5,142],[-166,-5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":7,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"outline","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.37],"y":[1]},"o":{"x":[0.58],"y":[0]},"n":["0p37_1_0p58_0"],"t":0,"s":[180],"e":[785]},{"i":{"x":[0.564],"y":[1]},"o":{"x":[0.182],"y":[0]},"n":["0p564_1_0p182_0"],"t":120,"s":[785],"e":[809]},{"i":{"x":[0.41],"y":[1]},"o":{"x":[0.339],"y":[0]},"n":["0p41_1_0p339_0"],"t":180,"s":[809],"e":[1260]},{"t":300}],"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[-18.5,-5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-81.462,0],[0,-81.462],[81.462,0],[0,81.462]],"o":[[81.462,0],[0,81.462],[-81.462,0],[0,-81.462]],"v":[[-18.5,-153],[129,-5.5],[-18.5,142],[-166,-5.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.37],"y":[1]},"o":{"x":[0.58],"y":[0]},"n":["0p37_1_0p58_0"],"t":0,"s":[99.9],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":120,"s":[0],"e":[0]},{"i":{"x":[0.41],"y":[1]},"o":{"x":[0.58],"y":[0]},"n":["0p41_1_0p58_0"],"t":180,"s":[0],"e":[99.9]},{"t":300}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.5],"y":[0]},"n":["0p833_0p833_0p5_0"],"t":0,"s":[23],"e":[4]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":60,"s":[4],"e":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.5],"y":[0]},"n":["0p833_0p833_0p5_0"],"t":248,"s":[4],"e":[23]},{"t":300}],"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":301,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/worm.json b/external/rlottie/example/resource/worm.json new file mode 100644 index 000000000..37e108ea9 --- /dev/null +++ b/external/rlottie/example/resource/worm.json @@ -0,0 +1 @@ +{"v":"4.12.3","fr":60,"ip":0,"op":241,"w":800,"h":600,"nm":"worm_lottie","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.75,-5.5]],"o":[[0,0],[-4.75,5.5]],"v":[[67.125,146.75],[59.375,147.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.286274509804,0.301960784314,0.419607873056,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[406.875,329,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.071,0],[0,-2.071],[-2.071,0],[0,2.071]],"o":[[-2.071,0],[0,2.071],[2.071,0],[0,-2.071]],"v":[[0,-3.75],[-3.75,0],[0,3.75],[3.75,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.286274509804,0.301960784314,0.419607873056,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.125,110.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[44.414,44.414],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-167,157],[141,157]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":4,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":10,"ix":1}},{"n":"o","nm":"offset","v":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1_0p167_0p167"],"t":0,"s":[0],"e":[60]},{"t":60,"s":[60],"h":1},{"t":120,"s":[60],"h":1}],"ix":7,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 5","parent":8,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.77],"y":[0]},"n":["0p833_0p833_0p77_0"],"t":120,"s":[21],"e":[11]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":171,"s":[11],"e":[21]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":175,"s":[21],"e":[21]},{"t":240}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[0.08,-1.677,0],"ix":2},"a":{"a":0,"k":[245.226,98.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":60,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.579,0],[0,-2.579],[-2.579,0],[0,2.579]],"o":[[-2.579,0],[0,2.579],[2.579,0],[0,-2.579]],"v":[[-18.5,3.33],[-23.17,8],[-18.5,12.67],[-13.83,8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280,66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-18,3]],"o":[[0,0],[18,-3]],"v":[[245.5,98.5],[260,75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":120,"op":241,"st":120,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 4","parent":8,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.859],"y":[1]},"o":{"x":[0.709],"y":[0]},"n":["0p859_1_0p709_0"],"t":120,"s":[0],"e":[-10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.325],"y":[0]},"n":["0p833_0p833_0p325_0"],"t":172,"s":[-10],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":177,"s":[0],"e":[0]},{"t":240}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[1.226,-4,0],"ix":2},"a":{"a":0,"k":[245.226,98.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":60,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.485,0],[0,-2.485],[-2.485,0],[0,2.485]],"o":[[-2.485,0],[0,2.485],[2.485,0],[0,-2.485]],"v":[[-18.5,3.5],[-23,8],[-18.5,12.5],[-14,8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280,66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-18,3]],"o":[[0,0],[18,-3]],"v":[[245.5,98.5],[260,75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":120,"op":241,"st":120,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 3","parent":8,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.77],"y":[0]},"n":["0p833_0p833_0p77_0"],"t":0,"s":[21],"e":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":51,"s":[4],"e":[21]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":55,"s":[21],"e":[21]},{"t":120}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[0.08,-1.677,0],"ix":2},"a":{"a":0,"k":[245.226,98.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":60,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.579,0],[0,-2.579],[-2.579,0],[0,2.579]],"o":[[-2.579,0],[0,2.579],[2.579,0],[0,-2.579]],"v":[[-18.5,3.33],[-23.17,8],[-18.5,12.67],[-13.83,8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280,66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-18,3]],"o":[[0,0],[18,-3]],"v":[[245.5,98.5],[260,75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":121,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 2","parent":8,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.709],"y":[0]},"n":["0p833_0p833_0p709_0"],"t":0,"s":[0],"e":[-22]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":53,"s":[-22],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":57,"s":[0],"e":[0]},{"t":120}],"ix":10,"x":"var $bm_rt;\nvar amp, freq, decay, n, t;\ntry {\n amp = div(effect('Rotation - Overshoot')('ADBE Slider Control-0001'), 2.5), freq = div(effect('Rotation - Bounce')('ADBE Slider Control-0001'), 20), decay = div(effect('Rotation - Friction')('ADBE Slider Control-0001'), 20), n = 0, 0 < numKeys && (n = nearestKey(time).index, key(n).time > time && n--), t = 0 === n ? 0 : time - key(n).time, $bm_rt = 0 < n ? (v = velocityAtTime(sub(key(n).time, div(thisComp.frameDuration, 10))), sum(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))))) : value;\n} catch (e$$4) {\n $bm_rt = value = value;\n}"},"p":{"a":0,"k":[1.226,-4,0],"ix":2},"a":{"a":0,"k":[245.226,98.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Rotation - Overshoot","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Bounce","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":30,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]},{"ty":5,"nm":"Rotation - Friction","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":60,"ix":1,"x":"var $bm_rt;\n$bm_rt = clamp(value, 0, 100);"}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.485,0],[0,-2.485],[-2.485,0],[0,2.485]],"o":[[-2.485,0],[0,2.485],[2.485,0],[0,-2.485]],"v":[[-18.5,3.5],[-23,8],[-18.5,12.5],[-14,8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[280,66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-18,3]],"o":[[0,0],[18,-3]],"v":[[245.5,98.5],[260,75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":121,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":3,"nm":"front head","parent":13,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[121,202,0],"e":[181,202,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[181,202,0],"e":[181,202,0],"to":[0,0,0],"ti":[0,0,0]},{"t":120}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":3,"nm":"front","parent":13,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[68,202,0],"e":[128,202,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[128,202,0],"e":[128,202,0],"to":[0,0,0],"ti":[0,0,0]},{"t":120}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":3,"nm":"hump","parent":13,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[47,155,0],"e":[67,202,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[67,202,0],"e":[107,155,0],"to":[0,0,0],"ti":[0,0,0]},{"t":120}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":3,"nm":"back","parent":13,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[17,202,0],"e":[-3,202,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[-3,202,0],"e":[77,202,0],"to":[0,0,0],"ti":[0,0,0]},{"t":120}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":3,"nm":"back","parent":13,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[-25,202,0],"e":[-45,202,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[-45,202,0],"e":[35,202,0],"to":[0,0,0],"ti":[0,0,0]},{"t":120}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":3,"nm":"NULL CONTROL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[400,300,0],"e":[340,300,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60,"s":[340,300,0],"e":[340,300,0],"to":[0,0,0],"ti":[0,0,0]},{"t":120}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"a":{"a":0,"k":[60,60,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Shape Layer 1: 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":12,"ix":1}}]},{"ty":5,"nm":"Shape Layer 1: 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":11,"ix":1}}]},{"ty":5,"nm":"Shape Layer 1: 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,"ix":1}}]},{"ty":5,"nm":"Shape Layer 1: 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":9,"ix":1}}]},{"ty":5,"nm":"Shape Layer 1: 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":8,"ix":1}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-28,0],[-26,0],[-17,0],[0,0]],"o":[[0,0],[28,0],[29,0],[17,0],[0,0]],"v":[[-105,142],[-63,142],[-23,95],[8,142],[61,142]],"c":false},"ix":2,"x":"var $bm_rt;\nvar nullLayerNames = [\n 'Shape Layer 1: Path 1 [1.1.0]',\n 'Shape Layer 1: Path 1 [1.1.1]',\n 'Shape Layer 1: Path 1 [1.1.2]',\n 'Shape Layer 1: Path 1 [1.1.3]',\n 'Shape Layer 1: Path 1 [1.1.4]'\n ];\nvar origPath = thisProperty;\nvar origPoints = origPath.points();\nvar origInTang = origPath.inTangents();\nvar origOutTang = origPath.outTangents();\nvar getNullLayers = [];\nfor (var i = 0; i < nullLayerNames.length; i++) {\n try {\n getNullLayers.push(effect(nullLayerNames[i])('ADBE Layer Control-0001'));\n } catch (err) {\n getNullLayers.push(null);\n }\n}\nfor (var i = 0; i < getNullLayers.length; i++) {\n if (getNullLayers[i] != null && getNullLayers[i].index != thisLayer.index) {\n origPoints[i] = fromCompToSurface(getNullLayers[i].toComp(getNullLayers[i].anchorPoint));\n }\n}\n$bm_rt = createPath(origPoints, origInTang, origOutTang, origPath.isClosed());"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":17,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"worm","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[434,115,0],"ix":2},"a":{"a":0,"k":[400,300,0],"ix":1},"s":{"a":0,"k":[211,211,100],"ix":6}},"ao":0,"tm":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[4.017]},{"t":241}],"ix":2},"w":800,"h":600,"ip":0,"op":241,"st":0,"bm":0}]} \ No newline at end of file diff --git a/external/rlottie/example/resource/you're_in!.json b/external/rlottie/example/resource/you're_in!.json new file mode 100644 index 000000000..d261bea86 --- /dev/null +++ b/external/rlottie/example/resource/you're_in!.json @@ -0,0 +1 @@ +{"v":"5.2.1","fr":30,"ip":0,"op":231,"w":800,"h":800,"nm":"Code","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Rope Movement","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":136.136136136136,"op":528.528528528529,"st":136.136136136136,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Rope Movement","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":136.136136136136,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"people line","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-60,691.205,0],"ix":2},"a":{"a":0,"k":[600,183,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0.792156875134,0.800000011921,0.807843148708,1],"ix":3}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]}],"w":1200,"h":366,"ip":0,"op":528.528528528529,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Blue Member 2","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,532,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1558.356,382.617],[1110,382.617],[1110,982],[1558.356,982]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1920,"h":1080,"ip":136.136136136136,"op":528.528528528529,"st":136.136136136136,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"Blue Member","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,532,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1558.356,382.617],[1110,382.617],[1110,982],[1558.356,982]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1920,"h":1080,"ip":0,"op":528.528528528529,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"people line","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-4,693.205,0],"ix":2},"a":{"a":0,"k":[600,183,0],"ix":1},"s":{"a":0,"k":[95,95,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0.701960802078,0.709803938866,0.717647075653,1],"ix":3}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]}],"w":1200,"h":366,"ip":-23.023023023023,"op":528.528528528529,"st":-23.023023023023,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"pole","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1217,728.37,0],"ix":2},"a":{"a":0,"k":[121,123,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"w":242,"h":246,"ip":0,"op":528.528528528529,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"pole","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[701,727.37,0],"ix":2},"a":{"a":0,"k":[121,123,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"sy":[{"ty":0,"nm":"Stroke","c":{"a":0,"k":[0.615686297417,0.623529434204,0.631372570992,1],"ix":2},"s":{"a":0,"k":4,"ix":3}}],"w":242,"h":246,"ip":0,"op":528.528528528529,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"Party","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,542,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[-84.071,0],[0,-84.071],[0,0]],"o":[[0,0],[0,-84.071],[84.071,0],[0,0],[0,0]],"v":[[807,820.5],[807,498.467],[959.467,346],[1111.934,498.467],[1111.934,820.5]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1920,"h":1080,"ip":0,"op":528.528528528529,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"Party","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,544,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[109,109,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[-84.071,0],[0,-84.071],[0,0]],"o":[[0,0],[0,-84.071],[84.071,0],[0,0],[0,0]],"v":[[807,795.729],[807,498.467],[959.467,346],[1111.934,498.467],[1111.934,795.729]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0.792156875134,0.800000011921,0.807843148708,1],"ix":3}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]}],"w":1920,"h":1080,"ip":0,"op":528.528528528529,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[945.75,491,0],"ix":2},"a":{"a":0,"k":[201.25,-332,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74.074,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[196.5,-329],[206,-335]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[74.637,-258.274],[93.137,-269.274]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75.075,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[74.637,-258.274],[93.137,-269.274]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-12.5,-142.5],[-11.5,-148.5]],"c":false}]},{"t":76.0760760760761}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.952941176471,0.541176470588,0.470588235294,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.541176470588,0.470588235294,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":74.0740740740741,"op":77.0770770770771,"st":23.023023023023,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[950.75,472,0],"ix":2},"a":{"a":0,"k":[202.75,-324.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74.074,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[198,-321.5],[207.5,-327.5]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63,-248],[79.5,-258]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75.075,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63,-248],[79.5,-258]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26.5,-117.5],[-25.5,-125]],"c":false}]},{"t":76.0760760760761}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745098,0.874509803922,0.549019607843,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.541176470588,0.470588235294,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":74.0740740740741,"op":77.0770770770771,"st":23.023023023023,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[959.75,451.75,0],"ix":2},"a":{"a":0,"k":[197.25,-334.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74.074,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[206,-340.5],[188.5,-329]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[71,-270.5],[39,-250.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75.075,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[71,-270.5],[39,-250.5]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-51.5,-122.5],[-54.5,-111.5]],"c":false}]},{"t":76.0760760760761}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745098,0.874509803922,0.549019607843,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.541176470588,0.470588235294,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":74.0740740740741,"op":77.0770770770771,"st":23.023023023023,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[966.5,573,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51.051,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[196.5,-329],[206,-335]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[260,-323.5],[220,-322.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52.052,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[260,-323.5],[220,-322.5]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[289,-314.5],[277,-322.5]],"c":false}]},{"t":53.053053053053}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.952941176471,0.541176470588,0.470588235294,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.541176470588,0.470588235294,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":51.0510510510511,"op":54.0540540540541,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,548,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51.051,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[198,-321.5],[207.5,-327.5]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[260,-323.5],[220,-322.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52.052,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[260,-323.5],[220,-322.5]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[308,-304.5],[296,-312.5]],"c":false}]},{"t":53.053053053053}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745098,0.874509803922,0.549019607843,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.541176470588,0.470588235294,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":51.0510510510511,"op":54.0540540540541,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51.051,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[206,-340.5],[188.5,-329]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[263.5,-337.5],[196.5,-337.5]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52.052,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[263.5,-337.5],[196.5,-337.5]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[327,-304],[304,-322.5]],"c":false}]},{"t":53.053053053053}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745098,0.874509803922,0.549019607843,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952941176471,0.541176470588,0.470588235294,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":51.0510510510511,"op":54.0540540540541,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"Rope","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":509.509509509509,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"ROPE","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37.037,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41.041,"s":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}],"e":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44.044,"s":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}],"e":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":46.046,"s":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":48.048,"s":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":49.049,"s":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.05,"s":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51.051,"s":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52.052,"s":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":53.053,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":54.054,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55.055,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69.069,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}],"e":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":71.071,"s":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}],"e":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":73.073,"s":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}],"e":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74.95,"s":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75.888,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":78.704,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81.519,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":84.334,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}]},{"t":88.0880880880881}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":99,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745098,0.874509803922,0.549019607843,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":30,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 5","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37.037,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41.041,"s":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}],"e":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44.044,"s":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}],"e":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":46.046,"s":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":48.048,"s":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":49.049,"s":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.05,"s":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51.051,"s":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52.052,"s":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":53.053,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":54.054,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55.055,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69.069,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}],"e":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":71.071,"s":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}],"e":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":73.073,"s":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}],"e":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74.95,"s":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75.888,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":78.704,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81.519,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":84.334,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}]},{"t":88.0880880880881}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":96,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745098,0.874509803922,0.549019607843,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":30,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37.037,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41.041,"s":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}],"e":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44.044,"s":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}],"e":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":46.046,"s":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":48.048,"s":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":49.049,"s":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.05,"s":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51.051,"s":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52.052,"s":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":53.053,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":54.054,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55.055,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69.069,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}],"e":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":71.071,"s":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}],"e":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":73.073,"s":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}],"e":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74.95,"s":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75.888,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":78.704,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81.519,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":84.334,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}]},{"t":88.0880880880881}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":5,"ix":1},"e":{"a":0,"k":1,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745098,0.874509803922,0.549019607843,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":30,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37.037,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41.041,"s":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}],"e":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44.044,"s":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}],"e":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":46.046,"s":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":48.048,"s":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":49.049,"s":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.05,"s":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51.051,"s":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52.052,"s":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":53.053,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":54.054,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55.055,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69.069,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}],"e":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":71.071,"s":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}],"e":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":73.073,"s":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}],"e":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74.95,"s":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75.888,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":78.704,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81.519,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":84.334,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}]},{"t":88.0880880880881}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":2,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.96862745098,0.874509803922,0.549019607843,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":30,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37.037,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":41.041,"s":[{"i":[[0,0],[-157.997,69.524],[0,0]],"o":[[0,0],[89.76,-39.498],[0,0]],"v":[[-256,145],[53.997,60.476],[261,144]],"c":false}],"e":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":44.044,"s":[{"i":[[-131,67],[-167.543,-41.544],[0,0]],"o":[[131,-67],[111.003,27.524],[0,0]],"v":[[-85,118],[177.997,-67.524],[261,144]],"c":false}],"e":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":46.046,"s":[{"i":[[-58.242,135.122],[-109.997,-11.476],[0,0]],"o":[[25,-58],[113.747,11.867],[0,0]],"v":[[95,56],[209.997,-128.524],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":48.048,"s":[{"i":[[-19.414,45.041],[-62.35,-12.578],[-16.222,-23.945]],"o":[[11.785,-72.253],[87.466,32.993],[30.606,47.27]],"v":[[156.215,-94.747],[225.35,-195.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":49.049,"s":[{"i":[[0,0],[-63.35,-42.078],[-16.222,-23.945]],"o":[[0,0],[68.058,37.708],[30.606,47.27]],"v":[[161.715,-174.747],[260.35,-234.922],[261,144]],"c":false}],"e":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":50.05,"s":[{"i":[[-19.414,45.041],[-15.35,-48.578],[-16.222,-23.945]],"o":[[47.785,-55.253],[19.448,61.549],[30.606,47.27]],"v":[[163.215,-255.747],[295.35,-226.422],[261,144]],"c":false}],"e":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":51.051,"s":[{"i":[[0,0],[48.063,-75.399],[-16.181,-61.782]],"o":[[0,0],[-55.924,87.73],[0,0]],"v":[[201.995,-337.25],[261.924,-145.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":52.052,"s":[{"i":[[0,0],[25.07,-76.834],[-16.181,-61.782]],"o":[[0,0],[-29.695,91.056],[0,0]],"v":[[262.495,-339.75],[237.924,-129.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":53.053,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[331.995,-309.25],[213.924,-128.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":54.054,"s":[{"i":[[0,0],[2.076,-78.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.383],[0,0]],"v":[[371.495,-284.75],[217.924,-132.23],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":55.055,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[395.995,-254.25],[228.924,-130.73],[261,144]],"c":false}],"e":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69.069,"s":[{"i":[[0,0],[0,-112.27],[-16.181,-61.782]],"o":[[0,0],[-3.467,94.382],[0,0]],"v":[[407.502,-239.456],[219.061,-134.017],[261,144]],"c":false}],"e":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":71.071,"s":[{"i":[[0,0],[30.019,-141.415],[-16.181,-61.782]],"o":[[0,0],[-30.019,141.415],[0,0]],"v":[[422.296,-193.428],[222.348,-132.373],[261,144]],"c":false}],"e":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":73.073,"s":[{"i":[[0,0],[-32.611,-39.166],[-42.089,-15.667]],"o":[[-66,58],[41.234,49.522],[0,0]],"v":[[114,-144],[87.497,51.476],[261,144]],"c":false}],"e":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":74.95,"s":[{"i":[[-13,-44],[-165.271,-51.701],[-66,8]],"o":[[13,44],[72.003,22.524],[167.916,-20.353]],"v":[[-150,-19],[16.997,141.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":75.888,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[-7.003,178.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":78.704,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[1.997,220.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":81.519,"s":[{"i":[[0,0],[-124.003,0.476],[-66,8]],"o":[[0,0],[124.003,-0.476],[167.916,-20.353]],"v":[[-254,144],[6.997,159.476],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":84.334,"s":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,209.051],[261,144]],"c":false}],"e":[{"i":[[0,0],[-98.003,-3.524],[0,0]],"o":[[0,0],[98.003,3.524],[0,0]],"v":[[-256,145],[12.997,202.476],[261,144]],"c":false}]},{"t":88.0880880880881}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":2,"ix":1},"e":{"a":0,"k":95,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.952941176471,0.541176470588,0.470588235294,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":25,"ix":5},"lc":3,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":-26.026026026026,"op":637.637637637638,"st":37.037037037037,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Person","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1052,212,0],"ix":2},"a":{"a":0,"k":[62,101,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0.027450980619,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":2,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":3,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":3,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"w":124,"h":202,"ip":-7.00700700700701,"op":593.593593593594,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Person","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[850,212,0],"ix":2},"a":{"a":0,"k":[62,101,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0.027450980619,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":2,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":3,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":3,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"w":124,"h":202,"ip":-7.00700700700701,"op":593.593593593594,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Person","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[958,212,0],"ix":2},"a":{"a":0,"k":[62,101,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0.027450980619,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":2,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":3,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":3,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":" ","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"w":124,"h":202,"ip":-7.00700700700701,"op":593.593593593594,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Person","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[756,212,0],"ix":2},"a":{"a":0,"k":[62,101,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0.027450980619,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":2,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":3,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":3,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"w":124,"h":202,"ip":-7.00700700700701,"op":593.593593593594,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Person","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[668,212,0],"ix":2},"a":{"a":0,"k":[62,101,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0.027450980619,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":2,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":3,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":3,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"w":124,"h":202,"ip":-7.00700700700701,"op":593.593593593594,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Person","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[466,212,0],"ix":2},"a":{"a":0,"k":[62,101,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0.027450980619,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":2,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":3,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":3,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"w":124,"h":202,"ip":-7.00700700700701,"op":593.593593593594,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Person","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[574,212,0],"ix":2},"a":{"a":0,"k":[62,101,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0.027450980619,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":2,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":3,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":3,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"w":124,"h":202,"ip":-7.00700700700701,"op":593.593593593594,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Person","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[372,212,0],"ix":2},"a":{"a":0,"k":[62,101,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0.027450980619,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":2,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":3,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":3,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"w":124,"h":202,"ip":-7.00700700700701,"op":593.593593593594,"st":-7.00700700700701,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"body 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60.83,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0.023529412225,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0.023529412225,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-8.00800800800801,"op":592.592592592593,"st":-8.00800800800801,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Head 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,45.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0.023529412225,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0.023529412225,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-3.003003003003,"op":597.597597597598,"st":-3.003003003003,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":3,"ty":0,"nm":"Person","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-15],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":4.505,"s":[0],"e":[8]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":9.009,"s":[8],"e":[-11]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":13.514,"s":[-11],"e":[13]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":18.018,"s":[13],"e":[13]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":24.024,"s":[13],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":30.03,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":42.042,"s":[0],"e":[-6]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":55.055,"s":[-6],"e":[-17.016]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":60.06,"s":[-17.016],"e":[17]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":64.064,"s":[17],"e":[-13]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":69.069,"s":[-13],"e":[23]},{"t":75.0750750750751}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[-52.424,794.634,0],"e":[94.576,820.634,0],"to":[62.4243774414062,-102.634155273438,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":4.505,"s":[94.576,820.634,0],"e":[271.576,820.634,0],"to":[0,0,0],"ti":[-93.5756225585938,-156.634155273438,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":9.009,"s":[271.576,820.634,0],"e":[448.576,806.634,0],"to":[2.57562255859375,-2.3658447265625,0],"ti":[-99.5756225585938,-121.634155273438,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":13.514,"s":[448.576,806.634,0],"e":[530.576,821.634,0],"to":[45.5756225585938,-49.3658447265625,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18.018,"s":[530.576,821.634,0],"e":[603.576,821.634,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.578,"y":0.578},"o":{"x":0.167,"y":0.167},"n":"0p578_0p578_0p167_0p167","t":27.027,"s":[603.576,821.634,0],"e":[603.576,821.634,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.578,"y":1},"o":{"x":0.344,"y":0},"n":"0p578_1_0p344_0","t":42.042,"s":[603.576,821.634,0],"e":[603.576,812.634,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.344,"y":0},"n":"0p833_0p833_0p344_0","t":55.055,"s":[603.576,812.634,0],"e":[797.576,798.634,0],"to":[0,0,0],"ti":[-84,-62.1666679382324,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":60.06,"s":[797.576,798.634,0],"e":[951.576,823.634,0],"to":[23,-36.8333320617676,0],"ti":[-27.4243774414062,-58.3658447265625,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":64.064,"s":[951.576,823.634,0],"e":[1157.576,803.634,0],"to":[61.6717796325684,-103.519493103027,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":69.069,"s":[1157.576,803.634,0],"e":[1378.576,825.634,0],"to":[0,0,0],"ti":[-82.5756225585938,-100.634155273438,0]},{"t":75.0750750750751}],"ix":2},"a":{"a":0,"k":[94.308,184.077,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"n","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-17.31,-0.493],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[17.31,0.493],[0,0],[0,0]],"v":[[128.48,-7.642],[-6.054,-7.642],[-6.054,79.804],[41.173,86.727],[62.708,80.403],[81.173,87.112],[128.48,79.804]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0.203921571374,0.701960802078,0.89411765337,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]}],"w":124,"h":202,"ip":-7.00700700700701,"op":593.593593593594,"st":-7.00700700700701,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":2,"ty":0,"nm":"ball top","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[123,36,0],"ix":2},"a":{"a":0,"k":[55.5,55.5,0],"ix":1},"s":{"a":0,"k":[53,53,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Change to Color 3","np":13,"mn":"ADBE Change To Color","ix":1,"en":1,"ef":[{"ty":2,"nm":"From","mn":"ADBE Change To Color-0001","ix":1,"v":{"a":0,"k":[0.917647063732,0.921568632126,0.937254905701,1],"ix":1}},{"ty":2,"nm":"To","mn":"ADBE Change To Color-0002","ix":2,"v":{"a":0,"k":[0.792156875134,0.800000011921,0.807843148708,1],"ix":2}},{"ty":7,"nm":"Change","mn":"ADBE Change To Color-0003","ix":3,"v":{"a":0,"k":4,"ix":3}},{"ty":7,"nm":"Change By","mn":"ADBE Change To Color-0004","ix":4,"v":{"a":0,"k":1,"ix":4}},{"ty":6,"nm":"Tolerance","mn":"ADBE Change To Color-0010","ix":5,"v":0},{"ty":0,"nm":"Hue","mn":"ADBE Change To Color-0005","ix":6,"v":{"a":0,"k":0.03,"ix":6}},{"ty":0,"nm":"Lightness","mn":"ADBE Change To Color-0006","ix":7,"v":{"a":0,"k":1,"ix":7}},{"ty":0,"nm":"Saturation","mn":"ADBE Change To Color-0007","ix":8,"v":{"a":0,"k":1,"ix":8}},{"ty":6,"nm":"Saturation","mn":"ADBE Change To Color-0011","ix":9,"v":0},{"ty":0,"nm":"Softness","mn":"ADBE Change To Color-0008","ix":10,"v":{"a":0,"k":0.5,"ix":10}},{"ty":7,"nm":"View Correction Matte","mn":"ADBE Change To Color-0009","ix":11,"v":{"a":0,"k":0,"ix":11}}]},{"ty":5,"nm":"Change to Color 2","np":13,"mn":"ADBE Change To Color","ix":2,"en":1,"ef":[{"ty":2,"nm":"From","mn":"ADBE Change To Color-0001","ix":1,"v":{"a":0,"k":[0.819607853889,0.831372559071,0.858823537827,1],"ix":1}},{"ty":2,"nm":"To","mn":"ADBE Change To Color-0002","ix":2,"v":{"a":0,"k":[0.615686297417,0.623529434204,0.631372570992,1],"ix":2}},{"ty":7,"nm":"Change","mn":"ADBE Change To Color-0003","ix":3,"v":{"a":0,"k":4,"ix":3}},{"ty":7,"nm":"Change By","mn":"ADBE Change To Color-0004","ix":4,"v":{"a":0,"k":1,"ix":4}},{"ty":6,"nm":"Tolerance","mn":"ADBE Change To Color-0010","ix":5,"v":0},{"ty":0,"nm":"Hue","mn":"ADBE Change To Color-0005","ix":6,"v":{"a":0,"k":0.03,"ix":6}},{"ty":0,"nm":"Lightness","mn":"ADBE Change To Color-0006","ix":7,"v":{"a":0,"k":1,"ix":7}},{"ty":0,"nm":"Saturation","mn":"ADBE Change To Color-0007","ix":8,"v":{"a":0,"k":1,"ix":8}},{"ty":6,"nm":"Saturation","mn":"ADBE Change To Color-0011","ix":9,"v":0},{"ty":0,"nm":"Softness","mn":"ADBE Change To Color-0008","ix":10,"v":{"a":0,"k":0.5,"ix":10}},{"ty":7,"nm":"View Correction Matte","mn":"ADBE Change To Color-0009","ix":11,"v":{"a":0,"k":0,"ix":11}}]}],"sy":[{"ty":0,"nm":"Stroke","c":{"a":0,"k":[0.615686297417,0.623529434204,0.631372570992,1],"ix":2},"s":{"a":0,"k":1,"ix":3}}],"w":111,"h":111,"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[123.676,138.221,0],"ix":2},"a":{"a":0,"k":[-349.324,174.221,0],"ix":1},"s":{"a":0,"k":[157.387,91,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[9.352,225.559],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0.027450980619,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.792156862745,0.8,0.807843137255,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-349.324,174.221],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[476,-48,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[54.023,17.809],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.61568627451,0.623529411765,0.63137254902,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.792156862745,0.8,0.807843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-352.988,139.096],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[122.001,225.774,0],"ix":2},"a":{"a":0,"k":[0.001,0.957,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.597,0],[0,0],[2.123,1.482],[0,0],[10.938,-7.532],[0,0]],"o":[[0,0],[2.589,0],[0,0],[-10.891,-7.6],[0,0],[-2.139,1.473]],"v":[[-42.541,15.183],[42.544,15.183],[44.058,10.367],[18.4,-7.538],[-17.892,-7.651],[-44.042,10.358]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.61568627451,0.623529411765,0.63137254902,1],"ix":3,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.792156862745,0.8,0.807843137255,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 5","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.697,55.697,0],"ix":2},"a":{"a":0,"k":[-325.303,-176.303,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[107.395,107.395],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0.027450980619,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0.027450980619,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-325.303,-176.303],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 3","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,232,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[171.367,158.457],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0.023529412225,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.917647058824,0.921568627451,0.937254901961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-349.512,-215.295],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55.697,55.697,0],"ix":2},"a":{"a":0,"k":[-325.303,-176.303,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[107.395,107.395],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0.027450980619,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.819607843137,0.83137254902,0.858823529412,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-325.303,-176.303],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0}]},{"id":"comp_8","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"party thing","refId":"comp_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,465,0],"ix":2},"a":{"a":0,"k":[942,467,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Spotlight 2","sr":1,"ks":{"o":{"a":0,"k":50,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":-17.017,"s":[0],"e":[-39]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":17.017,"s":[-39],"e":[-11]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":53.053,"s":[-11],"e":[-39]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":87.087,"s":[-39],"e":[-11]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":123.123,"s":[-11],"e":[-39]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":152.152,"s":[-39],"e":[-11]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":188.188,"s":[-11],"e":[-39]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":222.222,"s":[-39],"e":[-11]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":258.258,"s":[-11],"e":[-39]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":292.292,"s":[-39],"e":[-11]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":328.328,"s":[-11],"e":[-39]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":357.357,"s":[-39],"e":[-11]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":393.393,"s":[-11],"e":[-39]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":427.427,"s":[-39],"e":[-11]},{"t":463.463463463463}],"ix":10},"p":{"a":0,"k":[1108,378,0],"ix":2},"a":{"a":0,"k":[-158,-162,0],"ix":1},"s":{"a":0,"k":[-100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-166,-182],[-140,416],[296,268]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.639215686275,0.862745098039,0.952941176471,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-17.017017017017,"op":583.583583583584,"st":-17.017017017017,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,508,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[575.859,143.445],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.93,266.277],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"body 13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813.83,684,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"body 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1066.83,674,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"body 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[942.83,670,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"body 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[910.83,698,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"body 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1002.83,730,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"body 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1066.83,690,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"body 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[947.17,716,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"body 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1092,724,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"body 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[875.17,690,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"body 11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[985.17,664,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"body","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[908,686,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"party thing","refId":"comp_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[994.5,416.5,0],"ix":2},"a":{"a":0,"k":[942,467,0],"ix":1},"s":{"a":0,"k":[103,103,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"party thing","refId":"comp_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1053,525.5,0],"ix":2},"a":{"a":0,"k":[942,467,0],"ix":1},"s":{"a":0,"k":[47,47,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Head 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1100,657.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Head 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[815.305,609.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Head 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[874.305,608.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Head 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1013.305,659.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Head 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[961.305,661.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Head 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[885.305,661.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Spotlight","sr":1,"ks":{"o":{"a":0,"k":55,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":0,"s":[0],"e":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":34.034,"s":[41],"e":[0]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":70.07,"s":[0],"e":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":104.104,"s":[41],"e":[0]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":140.14,"s":[0],"e":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":174.174,"s":[41],"e":[0]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":210.21,"s":[0],"e":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":244.244,"s":[41],"e":[0]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":280.28,"s":[0],"e":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":314.314,"s":[41],"e":[0]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":350.35,"s":[0],"e":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":384.384,"s":[41],"e":[0]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":420.42,"s":[0],"e":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":454.454,"s":[41],"e":[0]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":490.49,"s":[0],"e":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"n":["0p4_1_0p4_0"],"t":524.525,"s":[41],"e":[0]},{"t":560.560560560561}],"ix":10},"p":{"a":0,"k":[802,378,0],"ix":2},"a":{"a":0,"k":[-158,-162,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-166,-182],[-140,416],[296,268]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.811764705882,0.929411764706,0.98431372549,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Head 11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[804.305,610.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"body 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[804.17,686,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"body 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[861.17,686,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[31,31,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-59,0],[0,-59],[0,0]],"o":[[0,0],[0,-59],[59,0],[0,0],[0,0]],"v":[[-107,166.5],[-107,-59.5],[0,-166.5],[107,-59.5],[107,166.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"Head 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1061.305,609.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Head 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[991.305,609.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Head 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[919.305,609.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Head","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[853.305,609.305,0],"ix":2},"a":{"a":0,"k":[-156.695,39.305,0],"ix":1},"s":{"a":0,"k":[68,68,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - position","np":4,"mn":"ADBE CM WigglePosition","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WigglePosition-0001","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Wiggle Amount (pixels)","mn":"ADBE CM WigglePosition-0002","ix":2,"v":{"a":0,"k":15,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":15,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - position')('Wiggle Speed (wigs/sec)'), effect('Wiggle - position')('Wiggle Amount (pixels)'));"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":13,"v":{"a":0,"k":1,"ix":13}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[105.391,105.391],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203921568627,0.701960784314,0.894117647059,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-156.695,39.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"background","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Gradient Ramp","np":11,"mn":"ADBE Ramp","ix":1,"en":1,"ef":[{"ty":3,"nm":"Start of Ramp","mn":"ADBE Ramp-0001","ix":1,"v":{"a":0,"k":[952,297],"ix":1}},{"ty":2,"nm":"Start Color","mn":"ADBE Ramp-0002","ix":2,"v":{"a":0,"k":[0.811764717102,0.929411768913,0.984313726425,1],"ix":2}},{"ty":3,"nm":"End of Ramp","mn":"ADBE Ramp-0003","ix":3,"v":{"a":0,"k":[953,632],"ix":3}},{"ty":2,"nm":"End Color","mn":"ADBE Ramp-0004","ix":4,"v":{"a":0,"k":[0.423529416323,0.780392169952,0.917647063732,1],"ix":4}},{"ty":7,"nm":"Ramp Shape","mn":"ADBE Ramp-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":0,"nm":"Ramp Scatter","mn":"ADBE Ramp-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Blend With Original","mn":"ADBE Ramp-0007","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":6,"nm":"","mn":"ADBE Ramp-0008","ix":8,"v":0},{"ty":7,"nm":"GPU Rendering","mn":"ADBE Force CPU GPU","ix":9,"v":{"a":0,"k":1,"ix":9}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[1920,1080],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.407843137255,0.780392156863,0.925490196078,1],"ix":4,"x":"var $bm_rt;\nvar rayColorPalette, rayColorSwatch;\ntry {\n rayColorPalette = 'Ray - palette 01';\n rayColorSwatch = Math.floor(mul(value[2], 255));\n $bm_rt = comp(rayColorPalette).layer(1)(4)(rayColorSwatch)(1);\n} catch (e) {\n $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-2.002002002002,"op":598.598598598599,"st":-2.002002002002,"bm":0}]},{"id":"comp_9","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":61,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[16],"e":[1816]},{"t":463.463463463463}],"ix":10},"p":{"a":0,"k":[944,466,0],"ix":2},"a":{"a":0,"k":[-16,-74,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":0,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":6.006,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":15.015,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":21.021,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":30.03,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":36.036,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":45.045,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":51.051,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":60.06,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":66.066,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":75.075,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":81.081,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":90.09,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":96.096,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":105.105,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":111.111,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":120.12,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":126.126,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":135.135,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":141.141,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":150.15,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":156.156,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":165.165,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":171.171,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":180.18,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":186.186,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":195.195,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":201.201,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":210.21,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":216.216,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":225.225,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":231.231,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":240.24,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":246.246,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":255.255,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":261.261,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":270.27,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":276.276,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":285.285,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":291.291,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":300.3,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":306.306,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":315.315,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":321.321,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":330.33,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":336.336,"s":[131,131,100],"e":[47,47,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":345.345,"s":[47,47,100],"e":[131,131,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"n":["0p4_1_0p6_0","0p4_1_0p6_0","0p4_1_0p6_0"],"t":351.351,"s":[131,131,100],"e":[47,47,100]},{"t":360.36036036036}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-28.016,-70.555],[-4.603,-77.788]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.901960784314,0.952941176471,0.98431372549,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-20,-86],[-13.032,-63.785]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.901960784314,0.952941176471,0.98431372549,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600.600600600601,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Members First","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[531,420,0],"ix":2},"a":{"a":0,"k":[960,540,0],"ix":1},"s":{"a":0,"k":[64,64,100],"ix":6}},"ao":0,"w":1920,"h":1080,"ip":0,"op":600.600600600601,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/external/rlottie/example/uxsampletest.cpp b/external/rlottie/example/uxsampletest.cpp new file mode 100644 index 000000000..519e60038 --- /dev/null +++ b/external/rlottie/example/uxsampletest.cpp @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include"evasapp.h" +#include "lottieview.h" +#include +#include +#include + +class UxSampleTest +{ +public: + UxSampleTest(EvasApp *app, bool renderMode) { + mApp = app; + mRenderMode = renderMode; + mResourceList = EvasApp::jsonFiles(std::string(DEMO_DIR) + "UXSample_1920x1080/"); + mRepeatMode = LottieView::RepeatMode::Restart; + } + + void showPrev() { + if (mResourceList.empty()) return; + mCurIndex--; + if (mCurIndex < 0) + mCurIndex = mResourceList.size() - 1; + show(); + } + + void showNext() { + if (mResourceList.empty()) return; + + mCurIndex++; + if (mCurIndex >= int(mResourceList.size())) + mCurIndex = 0; + show(); + } + + void resize() { + if (mView) { + mView->setSize(mApp->width(), mApp->height()); + } + } + +private: + void show() { + mView = std::make_unique(mApp->evas(), Strategy::renderCAsync); + mView->setFilePath(mResourceList[mCurIndex].c_str()); + mView->setPos(0, 0); + mView->setSize(mApp->width(), mApp->height()); + mView->show(); + mView->play(); + mView->loop(true); + mView->setRepeatMode(mRepeatMode); + } + +public: + EvasApp *mApp; + bool mRenderMode = false; + int mCurIndex = -1; + std::vector mResourceList; + std::unique_ptr mView; + LottieView::RepeatMode mRepeatMode; +}; + +static void +onExitCb(void *data, void */*extra*/) +{ + UxSampleTest *view = (UxSampleTest *)data; + delete view; +} + +static void +onKeyCb(void *data, void *extra) +{ + UxSampleTest *view = (UxSampleTest *)data; + char *keyname = (char *)extra; + + if (!strcmp(keyname, "Right") || !strcmp(keyname, "n")) { + view->showNext(); + } else if (!strcmp(keyname, "Left") || !strcmp(keyname, "p")) { + view->showPrev(); + } else if (!strcmp(keyname,"r")) { + if (view->mRepeatMode == LottieView::RepeatMode::Restart) { + view->mRepeatMode = LottieView::RepeatMode::Reverse; + } else + view->mRepeatMode = LottieView::RepeatMode::Restart; + if (view->mView) + view->mView->setRepeatMode(view->mRepeatMode); + } +} + +static void +onResizeCb(void *data, void */*extra*/) +{ + UxSampleTest *view = (UxSampleTest *)data; + view->resize(); +} + +int +main(int argc, char **argv) +{ + EvasApp *app = new EvasApp(800, 800); + app->setup(); + + bool renderMode = true; + if (argc > 1) { + if (!strcmp(argv[1],"--disable-render")) + renderMode = false; + } + UxSampleTest *view = new UxSampleTest(app, renderMode); + view->showNext(); + + app->addExitCb(onExitCb, view); + app->addKeyCb(onKeyCb, view); + app->addResizeCb(onResizeCb, view); + + app->run(); + delete app; + return 0; +} diff --git a/external/rlottie/inc/CMakeLists.txt b/external/rlottie/inc/CMakeLists.txt new file mode 100644 index 000000000..961144305 --- /dev/null +++ b/external/rlottie/inc/CMakeLists.txt @@ -0,0 +1,4 @@ +target_include_directories(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}" + ) diff --git a/external/rlottie/inc/meson.build b/external/rlottie/inc/meson.build new file mode 100644 index 000000000..0349fac2f --- /dev/null +++ b/external/rlottie/inc/meson.build @@ -0,0 +1,5 @@ +install_headers([ + 'rlottie.h', + 'rlottie_capi.h', + 'rlottiecommon.h', + ]) diff --git a/external/rlottie/inc/rlottie.h b/external/rlottie/inc/rlottie.h new file mode 100644 index 000000000..12c413bf6 --- /dev/null +++ b/external/rlottie/inc/rlottie.h @@ -0,0 +1,525 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef _RLOTTIE_H_ +#define _RLOTTIE_H_ + +#include +#include +#include + +#if defined _WIN32 || defined __CYGWIN__ + #ifdef RLOTTIE_BUILD + #define RLOTTIE_API __declspec(dllexport) + #else + #define RLOTTIE_API __declspec(dllimport) + #endif +#else + #ifdef RLOTTIE_BUILD + #define RLOTTIE_API __attribute__ ((visibility ("default"))) + #else + #define RLOTTIE_API + #endif +#endif + +class AnimationImpl; +struct LOTNode; +struct LOTLayerNode; + +namespace rlottie { + +/** + * @brief Configures rlottie model cache policy. + * + * Provides Library level control to configure model cache + * policy. Setting it to 0 will disable + * the cache as well as flush all the previously cached content. + * + * @param[in] cacheSize Maximum Model Cache size. + * + * @note to disable Caching configure with 0 size. + * @note to flush the current Cache content configure it with 0 and + * then reconfigure with the new size. + * + * @internal + */ +RLOTTIE_API void configureModelCacheSize(size_t cacheSize); + +struct Color { + Color() = default; + Color(float r, float g , float b):_r(r), _g(g), _b(b){} + float r() const {return _r;} + float g() const {return _g;} + float b() const {return _b;} +private: + float _r{0}; + float _g{0}; + float _b{0}; +}; + +struct Size { + Size() = default; + Size(float w, float h):_w(w), _h(h){} + float w() const {return _w;} + float h() const {return _h;} +private: + float _w{0}; + float _h{0}; +}; + +struct Point { + Point() = default; + Point(float x, float y):_x(x), _y(y){} + float x() const {return _x;} + float y() const {return _y;} +private: + float _x{0}; + float _y{0}; +}; + +struct FrameInfo { + explicit FrameInfo(uint32_t frame): _frameNo(frame){} + uint32_t curFrame() const {return _frameNo;} +private: + uint32_t _frameNo; +}; + +enum class Property { + FillColor, /*!< Color property of Fill object , value type is rlottie::Color */ + FillOpacity, /*!< Opacity property of Fill object , value type is float [ 0 .. 100] */ + StrokeColor, /*!< Color property of Stroke object , value type is rlottie::Color */ + StrokeOpacity, /*!< Opacity property of Stroke object , value type is float [ 0 .. 100] */ + StrokeWidth, /*!< stroke with property of Stroke object , value type is float */ + TrAnchor, /*!< Transform Anchor property of Layer and Group object , value type is rlottie::Point */ + TrPosition, /*!< Transform Position property of Layer and Group object , value type is rlottie::Point */ + TrScale, /*!< Transform Scale property of Layer and Group object , value type is rlottie::Size. range[0 ..100] */ + TrRotation, /*!< Transform Scale property of Layer and Group object , value type is float. range[0 .. 360] in degrees*/ + TrOpacity /*!< Transform Opacity property of Layer and Group object , value type is float [ 0 .. 100] */ +}; + +struct Color_Type{}; +struct Point_Type{}; +struct Size_Type{}; +struct Float_Type{}; +template struct MapType; + +class RLOTTIE_API Surface { +public: + /** + * @brief Surface object constructor. + * + * @param[in] buffer surface buffer. + * @param[in] width surface width. + * @param[in] height surface height. + * @param[in] bytesPerLine number of bytes in a surface scanline. + * + * @note Default surface format is ARGB32_Premultiplied. + * + * @internal + */ + Surface(uint32_t *buffer, size_t width, size_t height, size_t bytesPerLine); + + /** + * @brief Sets the Draw Area available on the Surface. + * + * Lottie will use the draw region size to generate frame image + * and will update only the draw rgion of the surface. + * + * @param[in] x region area x position. + * @param[in] y region area y position. + * @param[in] width region area width. + * @param[in] height region area height. + * + * @note Default surface format is ARGB32_Premultiplied. + * @note Default draw region area is [ 0 , 0, surface width , surface height] + * + * @internal + */ + void setDrawRegion(size_t x, size_t y, size_t width, size_t height); + + /** + * @brief Returns width of the surface. + * + * @return surface width + * + * @internal + * + */ + size_t width() const {return mWidth;} + + /** + * @brief Returns height of the surface. + * + * @return surface height + * + * @internal + */ + size_t height() const {return mHeight;} + + /** + * @brief Returns number of bytes in the surface scanline. + * + * @return number of bytes in scanline. + * + * @internal + */ + size_t bytesPerLine() const {return mBytesPerLine;} + + /** + * @brief Returns buffer attached tp the surface. + * + * @return buffer attaced to the Surface. + * + * @internal + */ + uint32_t *buffer() const {return mBuffer;} + + /** + * @brief Returns drawable area width of the surface. + * + * @return drawable area width + * + * @note Default value is width() of the surface + * + * @internal + * + */ + size_t drawRegionWidth() const {return mDrawArea.w;} + + /** + * @brief Returns drawable area height of the surface. + * + * @return drawable area height + * + * @note Default value is height() of the surface + * + * @internal + */ + size_t drawRegionHeight() const {return mDrawArea.h;} + + /** + * @brief Returns drawable area's x position of the surface. + * + * @return drawable area's x potition. + * + * @note Default value is 0 + * + * @internal + */ + size_t drawRegionPosX() const {return mDrawArea.x;} + + /** + * @brief Returns drawable area's y position of the surface. + * + * @return drawable area's y potition. + * + * @note Default value is 0 + * + * @internal + */ + size_t drawRegionPosY() const {return mDrawArea.y;} + + /** + * @brief Default constructor. + */ + Surface() = default; +private: + uint32_t *mBuffer{nullptr}; + size_t mWidth{0}; + size_t mHeight{0}; + size_t mBytesPerLine{0}; + struct { + size_t x{0}; + size_t y{0}; + size_t w{0}; + size_t h{0}; + }mDrawArea; +}; + +using MarkerList = std::vector>; +/** + * @brief https://helpx.adobe.com/after-effects/using/layer-markers-composition-markers.html + * Markers exported form AE are used to describe a segmnet of an animation {comment/tag , startFrame, endFrame} + * Marker can be use to devide a resource in to separate animations by tagging the segment with comment string , + * start frame and duration of that segment. + */ + +using LayerInfoList = std::vector>; + + +using ColorFilter = std::function; + +class RLOTTIE_API Animation { +public: + + /** + * @brief Constructs an animation object from file path. + * + * @param[in] path Lottie resource file path + * @param[in] cachePolicy whether to cache or not the model data. + * use only when need to explicit disabl caching for a + * particular resource. To disable caching at library level + * use @see configureModelCacheSize() instead. + * + * @return Animation object that can render the contents of the + * Lottie resource represented by file path. + * + * @internal + */ + static std::unique_ptr + loadFromFile(const std::string &path, bool cachePolicy=true); + + /** + * @brief Constructs an animation object from JSON string data. + * + * @param[in] jsonData The JSON string data. + * @param[in] key the string that will be used to cache the JSON string data. + * @param[in] resourcePath the path will be used to search for external resource. + * @param[in] cachePolicy whether to cache or not the model data. + * use only when need to explicit disabl caching for a + * particular resource. To disable caching at library level + * use @see configureModelCacheSize() instead. + * + * @return Animation object that can render the contents of the + * Lottie resource represented by JSON string data. + * + * @internal + */ + static std::unique_ptr + loadFromData(std::string jsonData, const std::string &key, + const std::string &resourcePath="", bool cachePolicy=true); + + /** + * @brief Constructs an animation object from JSON string data and update. + * the color properties using ColorFilter. + + * @param[in] jsonData The JSON string data. + * @param[in] resourcePath the path will be used to search for external resource. + * @param[in] filter The color filter that will be applied for each color property + * found during parsing. + + * @return Animation object that can render the contents of the + * Lottie resource represented by JSON string data. + * + * @internal + */ + static std::unique_ptr + loadFromData(std::string jsonData, std::string resourcePath, ColorFilter filter); + + /** + * @brief Returns default framerate of the Lottie resource. + * + * @return framerate of the Lottie resource + * + * @internal + * + */ + double frameRate() const; + + /** + * @brief Returns total number of frames present in the Lottie resource. + * + * @return frame count of the Lottie resource. + * + * @note frame number starts with 0. + * + * @internal + */ + size_t totalFrame() const; + + /** + * @brief Returns default viewport size of the Lottie resource. + * + * @param[out] width default width of the viewport. + * @param[out] height default height of the viewport. + * + * @internal + * + */ + void size(size_t &width, size_t &height) const; + + /** + * @brief Returns total animation duration of Lottie resource in second. + * it uses totalFrame() and frameRate() to calculate the duration. + * duration = totalFrame() / frameRate(). + * + * @return total animation duration in second. + * @retval 0 if the Lottie resource has no animation. + * + * @see totalFrame() + * @see frameRate() + * + * @internal + */ + double duration() const; + + /** + * @brief Returns frame number for a given position. + * this function helps to map the position value retuned + * by the animator to a frame number in side the Lottie resource. + * frame_number = lerp(start_frame, endframe, pos); + * + * @param[in] pos normalized position value [0 ... 1] + * + * @return frame numer maps to the position value [startFrame .... endFrame] + * + * @internal + */ + size_t frameAtPos(double pos); + + /** + * @brief Renders the content to surface Asynchronously. + * it gives a future in return to get the result of the + * rendering at a future point. + * To get best performance user has to start rendering as soon as + * it finds that content at {frameNo} has to be rendered and get the + * result from the future at the last moment when the surface is needed + * to draw into the screen. + * + * + * @param[in] frameNo Content corresponds to the @p frameNo needs to be drawn + * @param[in] surface Surface in which content will be drawn + * @param[in] keepAspectRatio whether to keep the aspect ratio while scaling the content. + * + * @return future that will hold the result when rendering finished. + * + * for Synchronus rendering @see renderSync + * + * @see Surface + * @internal + */ + std::future render(size_t frameNo, Surface surface, bool keepAspectRatio=true); + + /** + * @brief Renders the content to surface synchronously. + * for performance use the async rendering @see render + * + * @param[in] frameNo Content corresponds to the @p frameNo needs to be drawn + * @param[in] surface Surface in which content will be drawn + * @param[in] keepAspectRatio whether to keep the aspect ratio while scaling the content. + * + * @internal + */ + void renderSync(size_t frameNo, Surface surface, bool keepAspectRatio=true); + + /** + * @brief Returns root layer of the composition updated with + * content of the Lottie resource at frame number @p frameNo. + * + * @param[in] frameNo Content corresponds to the @p frameNo needs to be extracted. + * @param[in] width content viewbox width + * @param[in] height content viewbox height + * + * @return Root layer node. + * + * @internal + */ + const LOTLayerNode * renderTree(size_t frameNo, size_t width, size_t height) const; + + /** + * @brief Returns Composition Markers. + * + * + * @return returns MarkerList of the Composition. + * + * @see MarkerList + * @internal + */ + const MarkerList& markers() const; + + /** + * @brief Returns Layer information{name, inFrame, outFrame} of all the child layers of the composition. + * + * + * @return List of Layer Information of the Composition. + * + * @see LayerInfoList + * @internal + */ + const LayerInfoList& layers() const; + + /** + * @brief Sets property value for the specified {@link KeyPath}. This {@link KeyPath} can resolve + * to multiple contents. In that case, the callback's value will apply to all of them. + * + * Keypath should conatin object names separated by (.) and can handle globe(**) or wildchar(*). + * + * @usage + * To change fillcolor property of fill1 object in the layer1->group1->fill1 hirarchy to RED color + * + * player->setValue("layer1.group1.fill1", rlottie::Color(1, 0, 0); + * + * if all the color property inside group1 needs to be changed to GREEN color + * + * player->setValue("**.group1.**", rlottie::Color(0, 1, 0); + * + * @internal + */ + template + void setValue(const std::string &keypath, AnyValue value) + { + setValue(MapType>{}, prop, keypath, value); + } + + /** + * @brief default destructor + * + * @internal + */ + ~Animation(); + +private: + void setValue(Color_Type, Property, const std::string &, Color); + void setValue(Float_Type, Property, const std::string &, float); + void setValue(Size_Type, Property, const std::string &, Size); + void setValue(Point_Type, Property, const std::string &, Point); + + void setValue(Color_Type, Property, const std::string &, std::function &&); + void setValue(Float_Type, Property, const std::string &, std::function &&); + void setValue(Size_Type, Property, const std::string &, std::function &&); + void setValue(Point_Type, Property, const std::string &, std::function &&); + /** + * @brief default constructor + * + * @internal + */ + Animation(); + + std::unique_ptr d; +}; + +//Map Property to Value type +template<> struct MapType>: Color_Type{}; +template<> struct MapType>: Color_Type{}; +template<> struct MapType>: Float_Type{}; +template<> struct MapType>: Float_Type{}; +template<> struct MapType>: Float_Type{}; +template<> struct MapType>: Float_Type{}; +template<> struct MapType>: Float_Type{}; +template<> struct MapType>: Point_Type{}; +template<> struct MapType>: Point_Type{}; +template<> struct MapType>: Size_Type{}; + + +} // namespace lotplayer + +#endif // _RLOTTIE_H_ diff --git a/external/rlottie/inc/rlottie_capi.h b/external/rlottie/inc/rlottie_capi.h new file mode 100644 index 000000000..9bdf336f8 --- /dev/null +++ b/external/rlottie/inc/rlottie_capi.h @@ -0,0 +1,282 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef _RLOTTIE_CAPI_H_ +#define _RLOTTIE_CAPI_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + LOTTIE_ANIMATION_PROPERTY_FILLCOLOR, /*!< Color property of Fill object , value type is float [0 ... 1] */ + LOTTIE_ANIMATION_PROPERTY_FILLOPACITY, /*!< Opacity property of Fill object , value type is float [ 0 .. 100] */ + LOTTIE_ANIMATION_PROPERTY_STROKECOLOR, /*!< Color property of Stroke object , value type is float [0 ... 1] */ + LOTTIE_ANIMATION_PROPERTY_STROKEOPACITY, /*!< Opacity property of Stroke object , value type is float [ 0 .. 100] */ + LOTTIE_ANIMATION_PROPERTY_STROKEWIDTH, /*!< stroke with property of Stroke object , value type is float */ + LOTTIE_ANIMATION_PROPERTY_TR_ANCHOR, /*!< Transform Anchor property of Layer and Group object , value type is int */ + LOTTIE_ANIMATION_PROPERTY_TR_POSITION, /*!< Transform Position property of Layer and Group object , value type is int */ + LOTTIE_ANIMATION_PROPERTY_TR_SCALE, /*!< Transform Scale property of Layer and Group object , value type is float range[0 ..100] */ + LOTTIE_ANIMATION_PROPERTY_TR_ROTATION, /*!< Transform Scale property of Layer and Group object , value type is float. range[0 .. 360] in degrees*/ + LOTTIE_ANIMATION_PROPERTY_TR_OPACITY /*!< Transform Opacity property of Layer and Group object , value type is float [ 0 .. 100] */ +}Lottie_Animation_Property; + +typedef struct Lottie_Animation_S Lottie_Animation; + +/** + * @brief Constructs an animation object from file path. + * + * @param[in] path Lottie resource file path + * + * @return Animation object that can build the contents of the + * Lottie resource represented by file path. + * + * @see lottie_animation_destroy() + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API Lottie_Animation *lottie_animation_from_file(const char *path); + +/** + * @brief Constructs an animation object from JSON string data. + * + * @param[in] data The JSON string data. + * @param[in] key the string that will be used to cache the JSON string data. + * @param[in] resource_path the path that will be used to load external resource needed by the JSON data. + * + * @return Animation object that can build the contents of the + * Lottie resource represented by JSON string data. + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API Lottie_Animation *lottie_animation_from_data(const char *data, const char *key, const char *resource_path); + +/** + * @brief Free given Animation object resource. + * + * @param[in] animation Animation object to free. + * + * @see lottie_animation_from_file() + * @see lottie_animation_from_data() + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API void lottie_animation_destroy(Lottie_Animation *animation); + +/** + * @brief Returns default viewport size of the Lottie resource. + * + * @param[in] animation Animation object. + * @param[out] w default width of the viewport. + * @param[out] h default height of the viewport. + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API void lottie_animation_get_size(const Lottie_Animation *animation, size_t *width, size_t *height); + +/** + * @brief Returns total animation duration of Lottie resource in second. + * it uses totalFrame() and frameRate() to calculate the duration. + * duration = totalFrame() / frameRate(). + * + * @param[in] animation Animation object. + * + * @return total animation duration in second. + * @c 0 if the Lottie resource has no animation. + * + * @see lottie_animation_get_totalframe() + * @see lottie_animation_get_framerate() + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API double lottie_animation_get_duration(const Lottie_Animation *animation); + +/** + * @brief Returns total number of frames present in the Lottie resource. + * + * @param[in] animation Animation object. + * + * @return frame count of the Lottie resource.* + * + * @note frame number starts with 0. + * + * @see lottie_animation_get_duration() + * @see lottie_animation_get_framerate() + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API size_t lottie_animation_get_totalframe(const Lottie_Animation *animation); + +/** + * @brief Returns default framerate of the Lottie resource. + * + * @param[in] animation Animation object. + * + * @return framerate of the Lottie resource + * + * @ingroup Lottie_Animation + * @internal + * + */ +RLOTTIE_API double lottie_animation_get_framerate(const Lottie_Animation *animation); + +/** + * @brief Get the render tree which contains the snapshot of the animation object + * at frame = @c frame_num, the content of the animation in that frame number. + * + * @param[in] animation Animation object. + * @param[in] frame_num Content corresponds to the @p frame_num needs to be drawn + * @param[in] width requested snapshot viewport width. + * @param[in] height requested snapshot viewport height. + * + * @return Animation snapshot tree. + * + * @note: User has to traverse the tree for rendering. + * + * @see LOTLayerNode + * @see LOTNode + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API const LOTLayerNode *lottie_animation_render_tree(Lottie_Animation *animation, size_t frame_num, size_t width, size_t height); + +/** + * @brief Maps position to frame number and returns it. + * + * @param[in] animation Animation object. + * @param[in] pos position in the range [ 0.0 .. 1.0 ]. + * + * @return mapped frame numbe in the range [ start_frame .. end_frame ]. + * @c 0 if the Lottie resource has no animation. + * + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API size_t lottie_animation_get_frame_at_pos(const Lottie_Animation *animation, float pos); + +/** + * @brief Request to render the content of the frame @p frame_num to buffer @p buffer. + * + * @param[in] animation Animation object. + * @param[in] frame_num the frame number needs to be rendered. + * @param[in] buffer surface buffer use for rendering. + * @param[in] width width of the surface + * @param[in] height height of the surface + * @param[in] bytes_per_line stride of the surface in bytes. + * + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API void lottie_animation_render(Lottie_Animation *animation, size_t frame_num, uint32_t *buffer, size_t width, size_t height, size_t bytes_per_line); + +/** + * @brief Request to render the content of the frame @p frame_num to buffer @p buffer asynchronously. + * + * @param[in] animation Animation object. + * @param[in] frame_num the frame number needs to be rendered. + * @param[in] buffer surface buffer use for rendering. + * @param[in] width width of the surface + * @param[in] height height of the surface + * @param[in] bytes_per_line stride of the surface in bytes. + * + * @note user must call lottie_animation_render_flush() to make sure render is finished. + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API void lottie_animation_render_async(Lottie_Animation *animation, size_t frame_num, uint32_t *buffer, size_t width, size_t height, size_t bytes_per_line); + +/** + * @brief Request to finish the current async renderer job for this animation object. + * If render is finished then this call returns immidiately. + * If not, it waits till render job finish and then return. + * + * @param[in] animation Animation object. + * + * @warning User must call lottie_animation_render_async() and lottie_animation_render_flush() + * in pair to get the benefit of async rendering. + * + * @return the pixel buffer it finished rendering. + * + * @ingroup Lottie_Animation + * @internal + */ +RLOTTIE_API uint32_t *lottie_animation_render_flush(Lottie_Animation *animation); + + +/** + * @brief Request to change the properties of this animation object. + * Keypath should conatin object names separated by (.) and can handle globe(**) or wildchar(*) + * + * @usage + * To change fillcolor property of fill1 object in the layer1->group1->fill1 hirarchy to RED color + * + * lottie_animation_property_override(animation, LOTTIE_ANIMATION_PROPERTY_FILLCOLOR, "layer1.group1.fill1", 1.0, 0.0, 0.0); + * + * if all the color property inside group1 needs to be changed to GREEN color + * + * lottie_animation_property_override(animation, LOTTIE_ANIMATION_PROPERTY_FILLCOLOR, "**.group1.**", 1.0, 0.0, 0.0); + * + * @param[in] animation Animation object. + * @param[in] type Property type. (@p Lottie_Animation_Property) + * @param[in] keypath Specific content of target. + * @param[in] ... Property values. + * + * @ingroup Lottie_Animation + * @internal + * */ +RLOTTIE_API void lottie_animation_property_override(Lottie_Animation *animation, const Lottie_Animation_Property type, const char *keypath, ...); + + +/** + * @brief Returns list of markers in the Lottie resource + * @p LOTMarkerList has a @p LOTMarker list and size of list + * @p LOTMarker has the marker's name, start frame, and end frame. + * + * @param[in] animation Animation object. + * + * @return The list of marker. If there is no marker, return null. + * + * @ingroup Lottie_Animation + * @internal + * */ +RLOTTIE_API const LOTMarkerList* lottie_animation_get_markerlist(Lottie_Animation *animation); + +#ifdef __cplusplus +} +#endif + +#endif //_RLOTTIE_CAPI_H_ + diff --git a/external/rlottie/inc/rlottiecommon.h b/external/rlottie/inc/rlottiecommon.h new file mode 100644 index 000000000..784fbe280 --- /dev/null +++ b/external/rlottie/inc/rlottiecommon.h @@ -0,0 +1,231 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef _RLOTTIE_COMMON_H_ +#define _RLOTTIE_COMMON_H_ + +#if defined _WIN32 || defined __CYGWIN__ + #ifdef RLOTTIE_BUILD + #define RLOTTIE_API __declspec(dllexport) + #else + #define RLOTTIE_API __declspec(dllimport) + #endif +#else + #ifdef RLOTTIE_BUILD + #define RLOTTIE_API __attribute__ ((visibility ("default"))) + #else + #define RLOTTIE_API + #endif +#endif + + +/** + * @defgroup Lottie_Animation Lottie_Animation + * + * Lottie Animation is a modern style vector based animation design. Its animation + * resource(within json format) could be generated by Adobe After Effect using + * bodymovin plugin. You can find a good examples in Lottie Community which + * shares many free resources(see: www.lottiefiles.com). + * + * This Lottie_Animation is a common engine to manipulate, control Lottie + * Animation from the Lottie resource - json file. It provides a scene-graph + * node tree per frames by user demand as well as rasterized frame images. + * + */ + +/** + * @ingroup Lottie_Animation + */ + +typedef enum +{ + BrushSolid = 0, + BrushGradient +} LOTBrushType; + +typedef enum +{ + FillEvenOdd = 0, + FillWinding +} LOTFillRule; + +typedef enum +{ + JoinMiter = 0, + JoinBevel, + JoinRound +} LOTJoinStyle; + +typedef enum +{ + CapFlat = 0, + CapSquare, + CapRound +} LOTCapStyle; + +typedef enum +{ + GradientLinear = 0, + GradientRadial +} LOTGradientType; + +typedef struct LOTGradientStop +{ + float pos; + unsigned char r, g, b, a; +} LOTGradientStop; + +typedef enum +{ + MaskAdd = 0, + MaskSubstract, + MaskIntersect, + MaskDifference +} LOTMaskType; + +typedef struct LOTMask { + struct { + const float *ptPtr; + size_t ptCount; + const char* elmPtr; + size_t elmCount; + } mPath; + LOTMaskType mMode; + unsigned char mAlpha; +}LOTMask; + +typedef enum +{ + MatteNone = 0, + MatteAlpha, + MatteAlphaInv, + MatteLuma, + MatteLumaInv +} LOTMatteType; + +typedef struct LOTMarker { + char *name; + size_t startframe; + size_t endframe; +} LOTMarker; + +typedef struct LOTMarkerList { + LOTMarker *ptr; + size_t size; +} LOTMarkerList; + +typedef struct LOTNode { + +#define ChangeFlagNone 0x0000 +#define ChangeFlagPath 0x0001 +#define ChangeFlagPaint 0x0010 +#define ChangeFlagAll (ChangeFlagPath & ChangeFlagPaint) + + struct { + const float *ptPtr; + size_t ptCount; + const char *elmPtr; + size_t elmCount; + } mPath; + + struct { + unsigned char r, g, b, a; + } mColor; + + struct { + unsigned char enable; + float width; + LOTCapStyle cap; + LOTJoinStyle join; + float miterLimit; + float *dashArray; + int dashArraySize; + } mStroke; + + struct { + LOTGradientType type; + LOTGradientStop *stopPtr; + size_t stopCount; + struct { + float x, y; + } start, end, center, focal; + float cradius; + float fradius; + } mGradient; + + struct { + unsigned char *data; + size_t width; + size_t height; + unsigned char mAlpha; + struct { + float m11; float m12; float m13; + float m21; float m22; float m23; + float m31; float m32; float m33; + } mMatrix; + } mImageInfo; + + int mFlag; + LOTBrushType mBrushType; + LOTFillRule mFillRule; + + const char *keypath; +} LOTNode; + + + +typedef struct LOTLayerNode { + + struct { + LOTMask *ptr; + size_t size; + } mMaskList; + + struct { + const float *ptPtr; + size_t ptCount; + const char *elmPtr; + size_t elmCount; + } mClipPath; + + struct { + struct LOTLayerNode **ptr; + size_t size; + } mLayerList; + + struct { + LOTNode **ptr; + size_t size; + } mNodeList; + + LOTMatteType mMatte; + int mVisible; + unsigned char mAlpha; + const char *keypath; + +} LOTLayerNode; + +/** + * @} + */ + +#endif // _RLOTTIE_COMMON_H_ diff --git a/external/rlottie/licenses/COPYING.FTL b/external/rlottie/licenses/COPYING.FTL new file mode 100644 index 000000000..5f673ffad --- /dev/null +++ b/external/rlottie/licenses/COPYING.FTL @@ -0,0 +1,166 @@ + The FreeType Project LICENSE + ---------------------------- + + 2006-Jan-27 + + Copyright 1996-2002, 2006 by + David Turner, Robert Wilhelm, and Werner Lemberg + + + +Introduction +============ + + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + + + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + + """ + Portions of this software are copyright � The FreeType + Project (www.freetype.org). All rights reserved. + """ + + Please replace with the value from the FreeType version you + actually use. + + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + +1. No Warranty +-------------- + + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising +-------------- + + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + +4. Contacts +----------- + + There are two mailing lists related to FreeType: + + o freetype@nongnu.org + + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + + o freetype-devel@nongnu.org + + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + + Our home page can be found at + + http://www.freetype.org diff --git a/external/rlottie/licenses/COPYING.MIT b/external/rlottie/licenses/COPYING.MIT new file mode 100644 index 000000000..8becbac1d --- /dev/null +++ b/external/rlottie/licenses/COPYING.MIT @@ -0,0 +1,7 @@ +Copyright 2020 (see AUTHORS) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/external/rlottie/licenses/COPYING.MPL b/external/rlottie/licenses/COPYING.MPL new file mode 100644 index 000000000..14e2f777f --- /dev/null +++ b/external/rlottie/licenses/COPYING.MPL @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/external/rlottie/licenses/COPYING.PIX b/external/rlottie/licenses/COPYING.PIX new file mode 100644 index 000000000..5826f3c73 --- /dev/null +++ b/external/rlottie/licenses/COPYING.PIX @@ -0,0 +1,42 @@ +The following is the MIT license, agreed upon by most contributors. +Copyright holders of new code should use this license statement where +possible. They may also add themselves to the list below. + +/* + * Copyright 1987, 1988, 1989, 1998 The Open Group + * Copyright 1987, 1988, 1989 Digital Equipment Corporation + * Copyright 1999, 2004, 2008 Keith Packard + * Copyright 2000 SuSE, Inc. + * Copyright 2000 Keith Packard, member of The XFree86 Project, Inc. + * Copyright 2004, 2005, 2007, 2008, 2009, 2010 Red Hat, Inc. + * Copyright 2004 Nicholas Miell + * Copyright 2005 Lars Knoll & Zack Rusin, Trolltech + * Copyright 2005 Trolltech AS + * Copyright 2007 Luca Barbato + * Copyright 2008 Aaron Plattner, NVIDIA Corporation + * Copyright 2008 Rodrigo Kumpera + * Copyright 2008 André Tupinambá + * Copyright 2008 Mozilla Corporation + * Copyright 2008 Frederic Plourde + * Copyright 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright 2009, 2010 Nokia Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ diff --git a/external/rlottie/licenses/COPYING.RPD b/external/rlottie/licenses/COPYING.RPD new file mode 100644 index 000000000..7ccc161c8 --- /dev/null +++ b/external/rlottie/licenses/COPYING.RPD @@ -0,0 +1,57 @@ +Tencent is pleased to support the open source community by making RapidJSON available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + +If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. +If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license. +A copy of the MIT License is included in this file. + +Other dependencies and licenses: + +Open Source Software Licensed Under the BSD License: +-------------------------------------------------------------------- + +The msinttypes r29 +Copyright (c) 2006-2013 Alexander Chemeris +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Open Source Software Licensed Under the JSON License: +-------------------------------------------------------------------- + +json.org +Copyright (c) 2002 JSON.org +All Rights Reserved. + +JSON_checker +Copyright (c) 2002 JSON.org +All Rights Reserved. + + +Terms of the JSON License: +--------------------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +The Software shall be used for Good, not Evil. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Terms of the MIT License: +-------------------------------------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/external/rlottie/licenses/COPYING.SKIA b/external/rlottie/licenses/COPYING.SKIA new file mode 100644 index 000000000..e32636d56 --- /dev/null +++ b/external/rlottie/licenses/COPYING.SKIA @@ -0,0 +1,29 @@ +Copyright (c) 2011 Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/external/rlottie/licenses/COPYING.STB b/external/rlottie/licenses/COPYING.STB new file mode 100644 index 000000000..1da71ca8d --- /dev/null +++ b/external/rlottie/licenses/COPYING.STB @@ -0,0 +1,17 @@ + MIT License +Copyright (c) 2017 Sean Barrett +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/external/rlottie/meson.build b/external/rlottie/meson.build new file mode 100644 index 000000000..50404c586 --- /dev/null +++ b/external/rlottie/meson.build @@ -0,0 +1,121 @@ +project('rlottie', + 'cpp', + default_options : ['cpp_std=c++14', 'optimization=s'], + version : '0.2', + license : 'MIT', + meson_version : '>=0.49', + ) + +add_project_arguments('-DDEMO_DIR="@0@/example/resource/"'.format(meson.current_source_dir()), language : 'cpp') + +inc = [include_directories('inc')] +config_dir = include_directories('.') +inc += config_dir + +config_h = configuration_data() + +if get_option('thread') == true + config_h.set10('LOTTIE_THREAD_SUPPORT', true) +endif + +if get_option('module') == true + config_h.set10('LOTTIE_IMAGE_MODULE_SUPPORT', true) + + if meson.get_compiler('cpp').get_id() != 'msvc' + lib_prefix = 'lib' + else + lib_prefix = '' + endif + if host_machine.system() == 'darwin' + lib_suffix = '.dylib' + elif host_machine.system() == 'windows' + lib_suffix = '.dll' + else + lib_suffix = '.so' + endif + if get_option('moduledir') != '' + config_h.set_quoted('LOTTIE_IMAGE_MODULE_PLUGIN', + get_option('prefix') / get_option('moduledir') / lib_prefix + 'rlottie-image-loader' + lib_suffix) + else + config_h.set_quoted('LOTTIE_IMAGE_MODULE_PLUGIN', lib_prefix + 'rlottie-image-loader' + lib_suffix) + endif +endif + +if get_option('cache') == true + config_h.set10('LOTTIE_CACHE_SUPPORT', true) +endif + +if get_option('log') == true + config_h.set10('LOTTIE_LOGGING_SUPPORT', true) +endif + +if get_option('dumptree') == true + config_h.set10('LOTTIE_LOGGING_SUPPORT', true) + config_h.set10('LOTTIE_DUMP_TREE_SUPPORT', true) +endif + + +configure_file( + output: 'config.h', + configuration: config_h +) + + +subdir('inc') +subdir('src') + +if get_option('example') == true + subdir('example') +endif + +if get_option('test') == true + subdir('test') +endif + + +if get_option('cmake') == true and host_machine.system() != 'windows' + cmake_bin = find_program('cmake', required: false) + if cmake_bin.found() + cmake = import('cmake') + cmake.write_basic_package_version_file( + version: meson.project_version(), + name: 'rlottie', + ) + + cmakeconf = configuration_data() + cmakeconf.set('VERSION', meson.project_version()) + + cmake.configure_package_config_file( + input: meson.current_source_dir() + '/cmake/rlottieConfig.cmake.in', + name: 'rlottie', + configuration: cmakeconf, + ) + endif +endif + +summary = ''' + +Summary: + rlottie version : @0@ + Build type : @1@ + Thread Support : @2@ + Module Support : @3@ + Cache Support : @4@ + Example : @5@ + Test : @6@ + Prefix : @7@ +'''.format( + meson.project_version(), + get_option('buildtype'), + get_option('thread'), + get_option('module'), + get_option('cache'), + get_option('example'), + get_option('test'), + get_option('prefix'), + ) + +message(summary) + + + diff --git a/external/rlottie/meson_options.txt b/external/rlottie/meson_options.txt new file mode 100644 index 000000000..25d8ec38c --- /dev/null +++ b/external/rlottie/meson_options.txt @@ -0,0 +1,46 @@ +option('thread', + type: 'boolean', + value: true, + description: 'Enable threading in rlottie') + +option('cache', + type: 'boolean', + value: true, + description: 'Enable cache support in rlottie') + +option('module', + type: 'boolean', + value: true, + description: 'Enable module support in rlottie') + +option('moduledir', + type: 'string', + description: 'Dynamic plugins directory') + +option('log', + type: 'boolean', + value: false, + description: 'Enable logging in rlottie') + +option('dumptree', + type: 'boolean', + value: false, + description: 'Enable logging the rlottie tree in rlottie') + +option('test', + type: 'boolean', + value: false, + description: 'Enable building unit tests') + +option('example', + type: 'boolean', + value: true, + description: 'Enable building examples') + +option('cmake', + type: 'boolean', + value: false, + description: 'Enable Generating CMake config files') + + + diff --git a/external/rlottie/packaging/rlottie.manifest b/external/rlottie/packaging/rlottie.manifest new file mode 100644 index 000000000..017d22d3a --- /dev/null +++ b/external/rlottie/packaging/rlottie.manifest @@ -0,0 +1,5 @@ + + + + + diff --git a/external/rlottie/packaging/rlottie.spec b/external/rlottie/packaging/rlottie.spec new file mode 100644 index 000000000..c757a1fee --- /dev/null +++ b/external/rlottie/packaging/rlottie.spec @@ -0,0 +1,85 @@ +%define major 0 +%define libname %mklibname rlottie %{major} +%define devel %mklibname rlottie -d + +%define git 20200408 +%define rel 2 + +Name: rlottie +Version: 0.2 +Release: %mkrel %{?git:-c git%{git}} %{rel} +Summary: Platform independent standalone library that plays Lottie Animation +Group: System/Libraries +License: MIT and BSD +URL: http://www.tizen.org/ +Source0: https://github.com/Samsung/rlottie/archive/master/%{name}-%{version}%{?git:-git%{git}}.tar.gz + +BuildRequires: meson + +%description +rlottie is a platform independent standalone c++ library for rendering vector +based animations and art in realtime. + +Lottie loads and renders animations and vectors exported in the bodymovin JSON +format. Bodymovin JSON can be created and exported from After Effects with +bodymovin, Sketch with Lottie Sketch Export, and from Haiku. + +For the first time, designers can create and ship beautiful animations without +an engineer painstakingly recreating it by hand. Since the animation is backed +by JSON they are extremely small in size but can be large in complexity! + +%package -n %{devel} +Summary: Development libraries for rlottie +Group: System/Libraries + +%description -n %{devel} +rlottie is a platform independent standalone c++ library for rendering vector +based animations and art in realtime. + +Lottie loads and renders animations and vectors exported in the bodymovin JSON +format. Bodymovin JSON can be created and exported from After Effects with +bodymovin, Sketch with Lottie Sketch Export, and from Haiku. + +For the first time, designers can create and ship beautiful animations without +an engineer painstakingly recreating it by hand. Since the animation is backed +by JSON they are extremely small in size but can be large in complexity! + +This is the development libraries for rlottie. + +%package -n %{libname} +Summary: Platform independent standalone library that plays Lottie Animation +Group: System/Libraries + +%description -n %{libname} +rlottie is a platform independent standalone c++ library for rendering vector +based animations and art in realtime. + +Lottie loads and renders animations and vectors exported in the bodymovin JSON +format. Bodymovin JSON can be created and exported from After Effects with +bodymovin, Sketch with Lottie Sketch Export, and from Haiku. + +For the first time, designers can create and ship beautiful animations without +an engineer painstakingly recreating it by hand. Since the animation is backed +by JSON they are extremely small in size but can be large in complexity! + +%prep +%autosetup -n %{name}-master + +%build +%meson + +%install +%meson_install + +%files -n %{devel} +%{_includedir}/rlottie.h +%{_includedir}/rlottie_capi.h +%{_includedir}/rlottiecommon.h +%{_libdir}/pkgconfig/rlottie.pc +%{_libdir}/librlottie.so + +%files -n %{libname} +%license COPYING +%doc README.md AUTHORS +%{_libdir}/librlottie-image-loader.so +%{_libdir}/librlottie.so.%{major}{,.*} diff --git a/external/rlottie/rlottie.expmap b/external/rlottie/rlottie.expmap new file mode 100644 index 000000000..cfc382871 --- /dev/null +++ b/external/rlottie/rlottie.expmap @@ -0,0 +1,8 @@ +/* This version script for ld exposes only (r)lottie namespace. */ +{ +global: + lottie_*; + extern "C++" { rlottie::* }; +local: + *; +}; diff --git a/external/rlottie/rlottie.pc.in b/external/rlottie/rlottie.pc.in new file mode 100644 index 000000000..3cee683ac --- /dev/null +++ b/external/rlottie/rlottie.pc.in @@ -0,0 +1,6 @@ +Name: rlottie +Description: A rlottie library +Version: @player_version@ +Requires: +Libs: -L@LIBDIR@ -lrlottie +Cflags: -I@INCDIR@ diff --git a/external/rlottie/src/CMakeLists.txt b/external/rlottie/src/CMakeLists.txt new file mode 100644 index 000000000..8bdefec0f --- /dev/null +++ b/external/rlottie/src/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(vector) + +add_subdirectory(lottie) + +add_subdirectory(binding) diff --git a/external/rlottie/src/binding/.lottieplayer.cpp.swp b/external/rlottie/src/binding/.lottieplayer.cpp.swp new file mode 100644 index 000000000..e312a378e Binary files /dev/null and b/external/rlottie/src/binding/.lottieplayer.cpp.swp differ diff --git a/external/rlottie/src/binding/CMakeLists.txt b/external/rlottie/src/binding/CMakeLists.txt new file mode 100644 index 000000000..20bc4cc4b --- /dev/null +++ b/external/rlottie/src/binding/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(c) diff --git a/external/rlottie/src/binding/c/CMakeLists.txt b/external/rlottie/src/binding/c/CMakeLists.txt new file mode 100644 index 000000000..30a049ad2 --- /dev/null +++ b/external/rlottie/src/binding/c/CMakeLists.txt @@ -0,0 +1,9 @@ +target_sources(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/lottieanimation_capi.cpp" + ) + +target_include_directories(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}" + ) diff --git a/external/rlottie/src/binding/c/lottieanimation_capi.cpp b/external/rlottie/src/binding/c/lottieanimation_capi.cpp new file mode 100644 index 000000000..2434b5faa --- /dev/null +++ b/external/rlottie/src/binding/c/lottieanimation_capi.cpp @@ -0,0 +1,278 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "rlottie.h" +#include "rlottie_capi.h" +#include "vdebug.h" + +using namespace rlottie; + +extern "C" { +#include +#include + +struct Lottie_Animation_S +{ + std::unique_ptr mAnimation; + std::future mRenderTask; + uint32_t *mBufferRef; + LOTMarkerList *mMarkerList; +}; + +RLOTTIE_API Lottie_Animation_S *lottie_animation_from_file(const char *path) +{ + if (auto animation = Animation::loadFromFile(path) ) { + Lottie_Animation_S *handle = new Lottie_Animation_S(); + handle->mAnimation = std::move(animation); + return handle; + } else { + return nullptr; + } +} + +RLOTTIE_API Lottie_Animation_S *lottie_animation_from_data(const char *data, const char *key, const char *resourcePath) +{ + if (auto animation = Animation::loadFromData(data, key, resourcePath) ) { + Lottie_Animation_S *handle = new Lottie_Animation_S(); + handle->mAnimation = std::move(animation); + return handle; + } else { + return nullptr; + } +} + +RLOTTIE_API void lottie_animation_destroy(Lottie_Animation_S *animation) +{ + if (animation) { + if (animation->mMarkerList) { + for(size_t i = 0; i < animation->mMarkerList->size; i++) { + if (animation->mMarkerList->ptr[i].name) free(animation->mMarkerList->ptr[i].name); + } + delete[] animation->mMarkerList->ptr; + delete animation->mMarkerList; + } + + if (animation->mRenderTask.valid()) { + animation->mRenderTask.get(); + } + animation->mAnimation = nullptr; + delete animation; + } +} + +RLOTTIE_API void lottie_animation_get_size(const Lottie_Animation_S *animation, size_t *width, size_t *height) +{ + if (!animation) return; + + animation->mAnimation->size(*width, *height); +} + +RLOTTIE_API double lottie_animation_get_duration(const Lottie_Animation_S *animation) +{ + if (!animation) return 0; + + return animation->mAnimation->duration(); +} + +RLOTTIE_API size_t lottie_animation_get_totalframe(const Lottie_Animation_S *animation) +{ + if (!animation) return 0; + + return animation->mAnimation->totalFrame(); +} + + +RLOTTIE_API double lottie_animation_get_framerate(const Lottie_Animation_S *animation) +{ + if (!animation) return 0; + + return animation->mAnimation->frameRate(); +} + +RLOTTIE_API const LOTLayerNode * lottie_animation_render_tree(Lottie_Animation_S *animation, size_t frame_num, size_t width, size_t height) +{ + if (!animation) return nullptr; + + return animation->mAnimation->renderTree(frame_num, width, height); +} + +RLOTTIE_API size_t +lottie_animation_get_frame_at_pos(const Lottie_Animation_S *animation, float pos) +{ + if (!animation) return 0; + + return animation->mAnimation->frameAtPos(pos); +} + +RLOTTIE_API void +lottie_animation_render(Lottie_Animation_S *animation, + size_t frame_number, + uint32_t *buffer, + size_t width, + size_t height, + size_t bytes_per_line) +{ + if (!animation) return; + + rlottie::Surface surface(buffer, width, height, bytes_per_line); + animation->mAnimation->renderSync(frame_number, surface); +} + +RLOTTIE_API void +lottie_animation_render_async(Lottie_Animation_S *animation, + size_t frame_number, + uint32_t *buffer, + size_t width, + size_t height, + size_t bytes_per_line) +{ + if (!animation) return; + + rlottie::Surface surface(buffer, width, height, bytes_per_line); + animation->mRenderTask = animation->mAnimation->render(frame_number, surface); + animation->mBufferRef = buffer; +} + +RLOTTIE_API uint32_t * +lottie_animation_render_flush(Lottie_Animation_S *animation) +{ + if (!animation) return nullptr; + + if (animation->mRenderTask.valid()) { + animation->mRenderTask.get(); + } + + return animation->mBufferRef; +} + +RLOTTIE_API void +lottie_animation_property_override(Lottie_Animation_S *animation, + const Lottie_Animation_Property type, + const char *keypath, + ...) +{ + va_list prop; + va_start(prop, keypath); + const int arg_count = [type](){ + switch (type) { + case LOTTIE_ANIMATION_PROPERTY_FILLCOLOR: + case LOTTIE_ANIMATION_PROPERTY_STROKECOLOR: + return 3; + case LOTTIE_ANIMATION_PROPERTY_FILLOPACITY: + case LOTTIE_ANIMATION_PROPERTY_STROKEOPACITY: + case LOTTIE_ANIMATION_PROPERTY_STROKEWIDTH: + case LOTTIE_ANIMATION_PROPERTY_TR_ROTATION: + return 1; + case LOTTIE_ANIMATION_PROPERTY_TR_POSITION: + case LOTTIE_ANIMATION_PROPERTY_TR_SCALE: + return 2; + default: + return 0; + } + }(); + double v[3] = {0}; + for (int i = 0; i < arg_count ; i++) { + v[i] = va_arg(prop, double); + } + va_end(prop); + + switch(type) { + case LOTTIE_ANIMATION_PROPERTY_FILLCOLOR: { + double r = v[0]; + double g = v[1]; + double b = v[2]; + if (r > 1 || r < 0 || g > 1 || g < 0 || b > 1 || b < 0) break; + animation->mAnimation->setValue(keypath, rlottie::Color(r, g, b)); + break; + } + case LOTTIE_ANIMATION_PROPERTY_FILLOPACITY: { + double opacity = v[0]; + if (opacity > 100 || opacity < 0) break; + animation->mAnimation->setValue(keypath, (float)opacity); + break; + } + case LOTTIE_ANIMATION_PROPERTY_STROKECOLOR: { + double r = v[0]; + double g = v[1]; + double b = v[2]; + if (r > 1 || r < 0 || g > 1 || g < 0 || b > 1 || b < 0) break; + animation->mAnimation->setValue(keypath, rlottie::Color(r, g, b)); + break; + } + case LOTTIE_ANIMATION_PROPERTY_STROKEOPACITY: { + double opacity = v[0]; + if (opacity > 100 || opacity < 0) break; + animation->mAnimation->setValue(keypath, (float)opacity); + break; + } + case LOTTIE_ANIMATION_PROPERTY_STROKEWIDTH: { + double width = v[0]; + if (width < 0) break; + animation->mAnimation->setValue(keypath, (float)width); + break; + } + case LOTTIE_ANIMATION_PROPERTY_TR_POSITION: { + double x = v[0]; + double y = v[1]; + animation->mAnimation->setValue(keypath, rlottie::Point((float)x, (float)y)); + break; + } + case LOTTIE_ANIMATION_PROPERTY_TR_SCALE: { + double w = v[0]; + double h = v[1]; + animation->mAnimation->setValue(keypath, rlottie::Size((float)w, (float)h)); + break; + } + case LOTTIE_ANIMATION_PROPERTY_TR_ROTATION: { + double r = v[0]; + animation->mAnimation->setValue(keypath, (float)r); + break; + } + case LOTTIE_ANIMATION_PROPERTY_TR_ANCHOR: + case LOTTIE_ANIMATION_PROPERTY_TR_OPACITY: + //@TODO handle propery update. + break; + } +} + +RLOTTIE_API const LOTMarkerList* +lottie_animation_get_markerlist(Lottie_Animation_S *animation) +{ + if (!animation) return nullptr; + + auto markers = animation->mAnimation->markers(); + if (markers.size() == 0) return nullptr; + if (animation->mMarkerList) return (const LOTMarkerList*)animation->mMarkerList; + + animation->mMarkerList = new LOTMarkerList(); + animation->mMarkerList->size = markers.size(); + animation->mMarkerList->ptr = new LOTMarker[markers.size()](); + + for(size_t i = 0; i < markers.size(); i++) { + animation->mMarkerList->ptr[i].name = strdup(std::get<0>(markers[i]).c_str()); + animation->mMarkerList->ptr[i].startframe= std::get<1>(markers[i]); + animation->mMarkerList->ptr[i].endframe= std::get<2>(markers[i]); + } + return (const LOTMarkerList*)animation->mMarkerList; +} + +} diff --git a/external/rlottie/src/binding/c/meson.build b/external/rlottie/src/binding/c/meson.build new file mode 100644 index 000000000..182aba59c --- /dev/null +++ b/external/rlottie/src/binding/c/meson.build @@ -0,0 +1,6 @@ +source_file = files('lottieanimation_capi.cpp') + +binding_c_dep = declare_dependency( + include_directories : include_directories('.'), + sources : source_file + ) diff --git a/external/rlottie/src/binding/meson.build b/external/rlottie/src/binding/meson.build new file mode 100644 index 000000000..4be25091f --- /dev/null +++ b/external/rlottie/src/binding/meson.build @@ -0,0 +1,2 @@ +subdir('c') +binding_dep = binding_c_dep diff --git a/external/rlottie/src/lottie/CMakeLists.txt b/external/rlottie/src/lottie/CMakeLists.txt new file mode 100644 index 000000000..09840b9b3 --- /dev/null +++ b/external/rlottie/src/lottie/CMakeLists.txt @@ -0,0 +1,17 @@ + +target_sources(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/lottieitem.cpp" + "${CMAKE_CURRENT_LIST_DIR}/lottieitem_capi.cpp" + "${CMAKE_CURRENT_LIST_DIR}/lottieloader.cpp" + "${CMAKE_CURRENT_LIST_DIR}/lottiemodel.cpp" + "${CMAKE_CURRENT_LIST_DIR}/lottieproxymodel.cpp" + "${CMAKE_CURRENT_LIST_DIR}/lottieparser.cpp" + "${CMAKE_CURRENT_LIST_DIR}/lottieanimation.cpp" + "${CMAKE_CURRENT_LIST_DIR}/lottiekeypath.cpp" + ) + +target_include_directories(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}" + ) diff --git a/external/rlottie/src/lottie/lottieanimation.cpp b/external/rlottie/src/lottie/lottieanimation.cpp new file mode 100644 index 000000000..601c065c3 --- /dev/null +++ b/external/rlottie/src/lottie/lottieanimation.cpp @@ -0,0 +1,456 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "config.h" +#include "lottieitem.h" +#include "lottiemodel.h" +#include "rlottie.h" + +#include + +using namespace rlottie; +using namespace rlottie::internal; + +RLOTTIE_API void rlottie::configureModelCacheSize(size_t cacheSize) +{ + internal::model::configureModelCacheSize(cacheSize); +} + +struct RenderTask { + RenderTask() { receiver = sender.get_future(); } + std::promise sender; + std::future receiver; + AnimationImpl * playerImpl{nullptr}; + size_t frameNo{0}; + Surface surface; + bool keepAspectRatio{true}; +}; +using SharedRenderTask = std::shared_ptr; + +class AnimationImpl { +public: + void init(std::shared_ptr composition); + bool update(size_t frameNo, const VSize &size, bool keepAspectRatio); + VSize size() const { return mModel->size(); } + double duration() const { return mModel->duration(); } + double frameRate() const { return mModel->frameRate(); } + size_t totalFrame() const { return mModel->totalFrame(); } + size_t frameAtPos(double pos) const { return mModel->frameAtPos(pos); } + Surface render(size_t frameNo, const Surface &surface, + bool keepAspectRatio); + std::future renderAsync(size_t frameNo, Surface &&surface, + bool keepAspectRatio); + const LOTLayerNode * renderTree(size_t frameNo, const VSize &size); + + const LayerInfoList &layerInfoList() const + { + if (mLayerList.empty()) { + mLayerList = mModel->layerInfoList(); + } + return mLayerList; + } + const MarkerList &markers() const { return mModel->markers(); } + void setValue(const std::string &keypath, LOTVariant &&value); + void removeFilter(const std::string &keypath, Property prop); + +private: + mutable LayerInfoList mLayerList; + model::Composition * mModel; + SharedRenderTask mTask; + std::atomic mRenderInProgress; + std::unique_ptr mRenderer{nullptr}; +}; + +void AnimationImpl::setValue(const std::string &keypath, LOTVariant &&value) +{ + if (keypath.empty()) return; + mRenderer->setValue(keypath, value); +} + +const LOTLayerNode *AnimationImpl::renderTree(size_t frameNo, const VSize &size) +{ + if (update(frameNo, size, true)) { + mRenderer->buildRenderTree(); + } + return mRenderer->renderTree(); +} + +bool AnimationImpl::update(size_t frameNo, const VSize &size, + bool keepAspectRatio) +{ + frameNo += mModel->startFrame(); + + if (frameNo > mModel->endFrame()) frameNo = mModel->endFrame(); + + if (frameNo < mModel->startFrame()) frameNo = mModel->startFrame(); + + return mRenderer->update(int(frameNo), size, keepAspectRatio); +} + +Surface AnimationImpl::render(size_t frameNo, const Surface &surface, + bool keepAspectRatio) +{ + bool renderInProgress = mRenderInProgress.load(); + if (renderInProgress) { + vCritical << "Already Rendering Scheduled for this Animation"; + return surface; + } + + mRenderInProgress.store(true); + update( + frameNo, + VSize(int(surface.drawRegionWidth()), int(surface.drawRegionHeight())), + keepAspectRatio); + mRenderer->render(surface); + mRenderInProgress.store(false); + + return surface; +} + +void AnimationImpl::init(std::shared_ptr composition) +{ + mModel = composition.get(); + mRenderer = std::make_unique(composition); + mRenderInProgress = false; +} + +#ifdef LOTTIE_THREAD_SUPPORT + +#include +#include "vtaskqueue.h" + +/* + * Implement a task stealing schduler to perform render task + * As each player draws into its own buffer we can delegate this + * task to a slave thread. The scheduler creates a threadpool depending + * on the number of cores available in the system and does a simple fair + * scheduling by assigning the task in a round-robin fashion. Each thread + * in the threadpool has its own queue. once it finishes all the task on its + * own queue it goes through rest of the queue and looks for task if it founds + * one it steals the task from it and executes. if it couldn't find one then it + * just waits for new task on its own queue. + */ +class RenderTaskScheduler { + const unsigned _count{std::thread::hardware_concurrency()}; + std::vector _threads; + std::vector> _q{_count}; + std::atomic _index{0}; + + void run(unsigned i) + { + while (true) { + bool success = false; + SharedRenderTask task; + for (unsigned n = 0; n != _count * 2; ++n) { + if (_q[(i + n) % _count].try_pop(task)) { + success = true; + break; + } + } + if (!success && !_q[i].pop(task)) break; + + auto result = task->playerImpl->render(task->frameNo, task->surface, + task->keepAspectRatio); + task->sender.set_value(result); + } + } + + RenderTaskScheduler() + { + for (unsigned n = 0; n != _count; ++n) { + _threads.emplace_back([&, n] { run(n); }); + } + } + +public: + static RenderTaskScheduler &instance() + { + static RenderTaskScheduler singleton; + return singleton; + } + + ~RenderTaskScheduler() + { + for (auto &e : _q) e.done(); + + for (auto &e : _threads) e.join(); + } + + std::future process(SharedRenderTask task) + { + auto receiver = std::move(task->receiver); + auto i = _index++; + + for (unsigned n = 0; n != _count; ++n) { + if (_q[(i + n) % _count].try_push(std::move(task))) return receiver; + } + + if (_count > 0) { + _q[i % _count].push(std::move(task)); + } + + return receiver; + } +}; + +#else +class RenderTaskScheduler { +public: + static RenderTaskScheduler &instance() + { + static RenderTaskScheduler singleton; + return singleton; + } + + std::future process(SharedRenderTask task) + { + auto result = task->playerImpl->render(task->frameNo, task->surface, + task->keepAspectRatio); + task->sender.set_value(result); + return std::move(task->receiver); + } +}; +#endif + +std::future AnimationImpl::renderAsync(size_t frameNo, + Surface &&surface, + bool keepAspectRatio) +{ + if (!mTask) { + mTask = std::make_shared(); + } else { + mTask->sender = std::promise(); + mTask->receiver = mTask->sender.get_future(); + } + mTask->playerImpl = this; + mTask->frameNo = frameNo; + mTask->surface = std::move(surface); + mTask->keepAspectRatio = keepAspectRatio; + + return RenderTaskScheduler::instance().process(mTask); +} + +/** + * \breif Brief abput the Api. + * Description about the setFilePath Api + * @param path add the details + */ +std::unique_ptr Animation::loadFromData( + std::string jsonData, const std::string &key, + const std::string &resourcePath, bool cachePolicy) +{ + if (jsonData.empty()) { + vWarning << "jason data is empty"; + return nullptr; + } + + auto composition = model::loadFromData(std::move(jsonData), key, + resourcePath, cachePolicy); + if (composition) { + auto animation = std::unique_ptr(new Animation); + animation->d->init(std::move(composition)); + return animation; + } + + return nullptr; +} + +std::unique_ptr Animation::loadFromData(std::string jsonData, + std::string resourcePath, + ColorFilter filter) +{ + if (jsonData.empty()) { + vWarning << "jason data is empty"; + return nullptr; + } + + auto composition = model::loadFromData( + std::move(jsonData), std::move(resourcePath), std::move(filter)); + if (composition) { + auto animation = std::unique_ptr(new Animation); + animation->d->init(std::move(composition)); + return animation; + } + return nullptr; +} + +std::unique_ptr Animation::loadFromFile(const std::string &path, + bool cachePolicy) +{ + if (path.empty()) { + vWarning << "File path is empty"; + return nullptr; + } + + auto composition = model::loadFromFile(path, cachePolicy); + if (composition) { + auto animation = std::unique_ptr(new Animation); + animation->d->init(std::move(composition)); + return animation; + } + return nullptr; +} + +void Animation::size(size_t &width, size_t &height) const +{ + VSize sz = d->size(); + + width = sz.width(); + height = sz.height(); +} + +double Animation::duration() const +{ + return d->duration(); +} + +double Animation::frameRate() const +{ + return d->frameRate(); +} + +size_t Animation::totalFrame() const +{ + return d->totalFrame(); +} + +size_t Animation::frameAtPos(double pos) +{ + return d->frameAtPos(pos); +} + +const LOTLayerNode *Animation::renderTree(size_t frameNo, size_t width, + size_t height) const +{ + return d->renderTree(frameNo, VSize(int(width), int(height))); +} + +std::future Animation::render(size_t frameNo, Surface surface, + bool keepAspectRatio) +{ + return d->renderAsync(frameNo, std::move(surface), keepAspectRatio); +} + +void Animation::renderSync(size_t frameNo, Surface surface, + bool keepAspectRatio) +{ + d->render(frameNo, surface, keepAspectRatio); +} + +const LayerInfoList &Animation::layers() const +{ + return d->layerInfoList(); +} + +const MarkerList &Animation::markers() const +{ + return d->markers(); +} + +void Animation::setValue(Color_Type, Property prop, const std::string &keypath, + Color value) +{ + d->setValue(keypath, + LOTVariant(prop, [value](const FrameInfo &) { return value; })); +} + +void Animation::setValue(Float_Type, Property prop, const std::string &keypath, + float value) +{ + d->setValue(keypath, + LOTVariant(prop, [value](const FrameInfo &) { return value; })); +} + +void Animation::setValue(Size_Type, Property prop, const std::string &keypath, + Size value) +{ + d->setValue(keypath, + LOTVariant(prop, [value](const FrameInfo &) { return value; })); +} + +void Animation::setValue(Point_Type, Property prop, const std::string &keypath, + Point value) +{ + d->setValue(keypath, + LOTVariant(prop, [value](const FrameInfo &) { return value; })); +} + +void Animation::setValue(Color_Type, Property prop, const std::string &keypath, + std::function &&value) +{ + d->setValue(keypath, LOTVariant(prop, value)); +} + +void Animation::setValue(Float_Type, Property prop, const std::string &keypath, + std::function &&value) +{ + d->setValue(keypath, LOTVariant(prop, value)); +} + +void Animation::setValue(Size_Type, Property prop, const std::string &keypath, + std::function &&value) +{ + d->setValue(keypath, LOTVariant(prop, value)); +} + +void Animation::setValue(Point_Type, Property prop, const std::string &keypath, + std::function &&value) +{ + d->setValue(keypath, LOTVariant(prop, value)); +} + +Animation::~Animation() = default; +Animation::Animation() : d(std::make_unique()) {} + +Surface::Surface(uint32_t *buffer, size_t width, size_t height, + size_t bytesPerLine) + : mBuffer(buffer), + mWidth(width), + mHeight(height), + mBytesPerLine(bytesPerLine) +{ + mDrawArea.w = mWidth; + mDrawArea.h = mHeight; +} + +void Surface::setDrawRegion(size_t x, size_t y, size_t width, size_t height) +{ + if ((x + width > mWidth) || (y + height > mHeight)) return; + + mDrawArea.x = x; + mDrawArea.y = y; + mDrawArea.w = width; + mDrawArea.h = height; +} + +#ifdef LOTTIE_LOGGING_SUPPORT +void initLogging() +{ +#if defined(__ARM_NEON__) + set_log_level(LogLevel::OFF); +#else + initialize(GuaranteedLogger(), "/tmp/", "rlottie", 1); + set_log_level(LogLevel::INFO); +#endif +} + +V_CONSTRUCTOR_FUNCTION(initLogging) +#endif diff --git a/external/rlottie/src/lottie/lottiefiltermodel.h b/external/rlottie/src/lottie/lottiefiltermodel.h new file mode 100644 index 000000000..b2b98b190 --- /dev/null +++ b/external/rlottie/src/lottie/lottiefiltermodel.h @@ -0,0 +1,435 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef LOTTIEFILTERMODEL_H +#define LOTTIEFILTERMODEL_H + +#include +#include +#include +#include "lottiemodel.h" +#include "rlottie.h" + +using namespace rlottie::internal; +// Naive way to implement std::variant +// refactor it when we move to c++17 +// users should make sure proper combination +// of id and value are passed while creating the object. +class LOTVariant { +public: + using ValueFunc = std::function; + using ColorFunc = std::function; + using PointFunc = std::function; + using SizeFunc = std::function; + + LOTVariant(rlottie::Property prop, const ValueFunc& v) + : mPropery(prop), mTag(Value) + { + construct(impl.valueFunc, v); + } + + LOTVariant(rlottie::Property prop, ValueFunc&& v) + : mPropery(prop), mTag(Value) + { + moveConstruct(impl.valueFunc, std::move(v)); + } + + LOTVariant(rlottie::Property prop, const ColorFunc& v) + : mPropery(prop), mTag(Color) + { + construct(impl.colorFunc, v); + } + + LOTVariant(rlottie::Property prop, ColorFunc&& v) + : mPropery(prop), mTag(Color) + { + moveConstruct(impl.colorFunc, std::move(v)); + } + + LOTVariant(rlottie::Property prop, const PointFunc& v) + : mPropery(prop), mTag(Point) + { + construct(impl.pointFunc, v); + } + + LOTVariant(rlottie::Property prop, PointFunc&& v) + : mPropery(prop), mTag(Point) + { + moveConstruct(impl.pointFunc, std::move(v)); + } + + LOTVariant(rlottie::Property prop, const SizeFunc& v) + : mPropery(prop), mTag(Size) + { + construct(impl.sizeFunc, v); + } + + LOTVariant(rlottie::Property prop, SizeFunc&& v) + : mPropery(prop), mTag(Size) + { + moveConstruct(impl.sizeFunc, std::move(v)); + } + + rlottie::Property property() const { return mPropery; } + + const ColorFunc& color() const + { + assert(mTag == Color); + return impl.colorFunc; + } + + const ValueFunc& value() const + { + assert(mTag == Value); + return impl.valueFunc; + } + + const PointFunc& point() const + { + assert(mTag == Point); + return impl.pointFunc; + } + + const SizeFunc& size() const + { + assert(mTag == Size); + return impl.sizeFunc; + } + + LOTVariant() = default; + ~LOTVariant() noexcept { Destroy(); } + LOTVariant(const LOTVariant& other) { Copy(other); } + LOTVariant(LOTVariant&& other) noexcept { Move(std::move(other)); } + LOTVariant& operator=(LOTVariant&& other) + { + Destroy(); + Move(std::move(other)); + return *this; + } + LOTVariant& operator=(const LOTVariant& other) + { + Destroy(); + Copy(other); + return *this; + } + +private: + template + void construct(T& member, const T& val) + { + new (&member) T(val); + } + + template + void moveConstruct(T& member, T&& val) + { + new (&member) T(std::move(val)); + } + + void Move(LOTVariant&& other) + { + switch (other.mTag) { + case Type::Value: + moveConstruct(impl.valueFunc, std::move(other.impl.valueFunc)); + break; + case Type::Color: + moveConstruct(impl.colorFunc, std::move(other.impl.colorFunc)); + break; + case Type::Point: + moveConstruct(impl.pointFunc, std::move(other.impl.pointFunc)); + break; + case Type::Size: + moveConstruct(impl.sizeFunc, std::move(other.impl.sizeFunc)); + break; + default: + break; + } + mTag = other.mTag; + mPropery = other.mPropery; + other.mTag = MonoState; + } + + void Copy(const LOTVariant& other) + { + switch (other.mTag) { + case Type::Value: + construct(impl.valueFunc, other.impl.valueFunc); + break; + case Type::Color: + construct(impl.colorFunc, other.impl.colorFunc); + break; + case Type::Point: + construct(impl.pointFunc, other.impl.pointFunc); + break; + case Type::Size: + construct(impl.sizeFunc, other.impl.sizeFunc); + break; + default: + break; + } + mTag = other.mTag; + mPropery = other.mPropery; + } + + void Destroy() + { + switch (mTag) { + case MonoState: { + break; + } + case Value: { + impl.valueFunc.~ValueFunc(); + break; + } + case Color: { + impl.colorFunc.~ColorFunc(); + break; + } + case Point: { + impl.pointFunc.~PointFunc(); + break; + } + case Size: { + impl.sizeFunc.~SizeFunc(); + break; + } + } + } + + enum Type { MonoState, Value, Color, Point, Size }; + rlottie::Property mPropery; + Type mTag{MonoState}; + union details { + ColorFunc colorFunc; + ValueFunc valueFunc; + PointFunc pointFunc; + SizeFunc sizeFunc; + details() {} + ~details() noexcept {} + } impl; +}; + +namespace rlottie { + +namespace internal { + +namespace model { + +class FilterData { +public: + void addValue(LOTVariant& value) + { + uint index = static_cast(value.property()); + if (mBitset.test(index)) { + std::replace_if(mFilters.begin(), mFilters.end(), + [&value](const LOTVariant& e) { + return e.property() == value.property(); + }, + value); + } else { + mBitset.set(index); + mFilters.push_back(value); + } + } + + void removeValue(LOTVariant& value) + { + uint index = static_cast(value.property()); + if (mBitset.test(index)) { + mBitset.reset(index); + mFilters.erase(std::remove_if(mFilters.begin(), mFilters.end(), + [&value](const LOTVariant& e) { + return e.property() == + value.property(); + }), + mFilters.end()); + } + } + bool hasFilter(rlottie::Property prop) const + { + return mBitset.test(static_cast(prop)); + } + model::Color color(rlottie::Property prop, int frame) const + { + rlottie::FrameInfo info(frame); + rlottie::Color col = data(prop).color()(info); + return model::Color(col.r(), col.g(), col.b()); + } + VPointF point(rlottie::Property prop, int frame) const + { + rlottie::FrameInfo info(frame); + rlottie::Point pt = data(prop).point()(info); + return VPointF(pt.x(), pt.y()); + } + VSize scale(rlottie::Property prop, int frame) const + { + rlottie::FrameInfo info(frame); + rlottie::Size sz = data(prop).size()(info); + return VSize(sz.w(), sz.h()); + } + float opacity(rlottie::Property prop, int frame) const + { + rlottie::FrameInfo info(frame); + float val = data(prop).value()(info); + return val / 100; + } + float value(rlottie::Property prop, int frame) const + { + rlottie::FrameInfo info(frame); + return data(prop).value()(info); + } + +private: + const LOTVariant& data(rlottie::Property prop) const + { + auto result = std::find_if( + mFilters.begin(), mFilters.end(), + [prop](const LOTVariant& e) { return e.property() == prop; }); + return *result; + } + std::bitset<32> mBitset{0}; + std::vector mFilters; +}; + +template +struct FilterBase +{ + FilterBase(T *model): model_(model){} + + const char* name() const { return model_->name(); } + + FilterData* filter() { + if (!filterData_) filterData_ = std::make_unique(); + return filterData_.get(); + } + + const FilterData * filter() const { return filterData_.get(); } + const T* model() const { return model_;} + + bool hasFilter(rlottie::Property prop) const { + return filterData_ ? filterData_->hasFilter(prop) + : false; + } + + T* model_{nullptr}; + std::unique_ptr filterData_{nullptr}; +}; + + +template +class Filter : public FilterBase { +public: + Filter(T* model): FilterBase(model){} + model::Color color(int frame) const + { + if (this->hasFilter(rlottie::Property::StrokeColor)) { + return this->filter()->color(rlottie::Property::StrokeColor, frame); + } + return this->model()->color(frame); + } + float opacity(int frame) const + { + if (this->hasFilter(rlottie::Property::StrokeOpacity)) { + return this->filter()->opacity(rlottie::Property::StrokeOpacity, frame); + } + return this->model()->opacity(frame); + } + + float strokeWidth(int frame) const + { + if (this->hasFilter(rlottie::Property::StrokeWidth)) { + return this->filter()->value(rlottie::Property::StrokeWidth, frame); + } + return this->model()->strokeWidth(frame); + } + + float miterLimit() const { return this->model()->miterLimit(); } + CapStyle capStyle() const { return this->model()->capStyle(); } + JoinStyle joinStyle() const { return this->model()->joinStyle(); } + bool hasDashInfo() const { return this->model()->hasDashInfo(); } + void getDashInfo(int frameNo, std::vector& result) const + { + return this->model()->getDashInfo(frameNo, result); + } +}; + + +template <> +class Filter: public FilterBase +{ +public: + Filter(model::Fill* model) : FilterBase(model) {} + + model::Color color(int frame) const + { + if (this->hasFilter(rlottie::Property::FillColor)) { + return this->filter()->color(rlottie::Property::FillColor, frame); + } + return this->model()->color(frame); + } + + float opacity(int frame) const + { + if (this->hasFilter(rlottie::Property::FillOpacity)) { + return this->filter()->opacity(rlottie::Property::FillOpacity, frame); + } + return this->model()->opacity(frame); + } + + FillRule fillRule() const { return this->model()->fillRule(); } +}; + +template <> +class Filter : public FilterBase +{ +public: + Filter(model::Group* model = nullptr) : FilterBase(model) {} + + bool hasModel() const { return this->model() ? true : false; } + + model::Transform* transform() const { return this->model() ? this->model()->mTransform : nullptr; } + VMatrix matrix(int frame) const + { + VMatrix mS, mR, mT; + if (this->hasFilter(rlottie::Property::TrScale)) { + VSize s = this->filter()->scale(rlottie::Property::TrScale, frame); + mS.scale(s.width() / 100.0, s.height() / 100.0); + } + if (this->hasFilter(rlottie::Property::TrRotation)) { + mR.rotate(this->filter()->value(rlottie::Property::TrRotation, frame)); + } + if (this->hasFilter(rlottie::Property::TrPosition)) { + mT.translate(this->filter()->point(rlottie::Property::TrPosition, frame)); + } + + return this->model()->mTransform->matrix(frame) * mS * mR * mT; + } +}; + + +} // namespace model + +} // namespace internal + +} // namespace rlottie + +#endif // LOTTIEFILTERMODEL_H diff --git a/external/rlottie/src/lottie/lottieitem.cpp b/external/rlottie/src/lottie/lottieitem.cpp new file mode 100644 index 000000000..7cd25ccd7 --- /dev/null +++ b/external/rlottie/src/lottie/lottieitem.cpp @@ -0,0 +1,1481 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "lottieitem.h" +#include +#include +#include +#include "lottiekeypath.h" +#include "vbitmap.h" +#include "vpainter.h" +#include "vraster.h" + +/* Lottie Layer Rules + * 1. time stretch is pre calculated and applied to all the properties of the + * lottilayer model and all its children + * 2. The frame property could be reversed using,time-reverse layer property in + * AE. which means (start frame > endFrame) 3. + */ + +static bool transformProp(rlottie::Property prop) +{ + switch (prop) { + case rlottie::Property::TrAnchor: + case rlottie::Property::TrScale: + case rlottie::Property::TrOpacity: + case rlottie::Property::TrPosition: + case rlottie::Property::TrRotation: + return true; + default: + return false; + } +} +static bool fillProp(rlottie::Property prop) +{ + switch (prop) { + case rlottie::Property::FillColor: + case rlottie::Property::FillOpacity: + return true; + default: + return false; + } +} + +static bool strokeProp(rlottie::Property prop) +{ + switch (prop) { + case rlottie::Property::StrokeColor: + case rlottie::Property::StrokeOpacity: + case rlottie::Property::StrokeWidth: + return true; + default: + return false; + } +} + +static renderer::Layer *createLayerItem(model::Layer *layerData, + VArenaAlloc * allocator) +{ + switch (layerData->mLayerType) { + case model::Layer::Type::Precomp: { + return allocator->make(layerData, allocator); + } + case model::Layer::Type::Solid: { + return allocator->make(layerData); + } + case model::Layer::Type::Shape: { + return allocator->make(layerData, allocator); + } + case model::Layer::Type::Null: { + return allocator->make(layerData); + } + case model::Layer::Type::Image: { + return allocator->make(layerData); + } + default: + return nullptr; + break; + } +} + +renderer::Composition::Composition(std::shared_ptr model) + : mCurFrameNo(-1) +{ + mModel = std::move(model); + mRootLayer = createLayerItem(mModel->mRootLayer, &mAllocator); + mRootLayer->setComplexContent(false); + mViewSize = mModel->size(); +} + +void renderer::Composition::setValue(const std::string &keypath, + LOTVariant & value) +{ + LOTKeyPath key(keypath); + mRootLayer->resolveKeyPath(key, 0, value); +} + +bool renderer::Composition::update(int frameNo, const VSize &size, + bool keepAspectRatio) +{ + // check if cached frame is same as requested frame. + if ((mViewSize == size) && (mCurFrameNo == frameNo) && + (mKeepAspectRatio == keepAspectRatio)) + return false; + + mViewSize = size; + mCurFrameNo = frameNo; + mKeepAspectRatio = keepAspectRatio; + + /* + * if viewbox dosen't scale exactly to the viewport + * we scale the viewbox keeping AspectRatioPreserved and then align the + * viewbox to the viewport using AlignCenter rule. + */ + VMatrix m; + VSize viewPort = mViewSize; + VSize viewBox = mModel->size(); + float sx = float(viewPort.width()) / viewBox.width(); + float sy = float(viewPort.height()) / viewBox.height(); + if (mKeepAspectRatio) { + float scale = std::min(sx, sy); + float tx = (viewPort.width() - viewBox.width() * scale) * 0.5f; + float ty = (viewPort.height() - viewBox.height() * scale) * 0.5f; + m.translate(tx, ty).scale(scale, scale); + } else { + m.scale(sx, sy); + } + mRootLayer->update(frameNo, m, 1.0); + return true; +} + +bool renderer::Composition::render(const rlottie::Surface &surface) +{ + mSurface.reset(reinterpret_cast(surface.buffer()), + uint(surface.width()), uint(surface.height()), + uint(surface.bytesPerLine()), + VBitmap::Format::ARGB32_Premultiplied); + + /* schedule all preprocess task for this frame at once. + */ + VRect clip(0, 0, int(surface.drawRegionWidth()), + int(surface.drawRegionHeight())); + mRootLayer->preprocess(clip); + + VPainter painter(&mSurface); + // set sub surface area for drawing. + painter.setDrawRegion( + VRect(int(surface.drawRegionPosX()), int(surface.drawRegionPosY()), + int(surface.drawRegionWidth()), int(surface.drawRegionHeight()))); + mRootLayer->render(&painter, {}, {}, mSurfaceCache); + painter.end(); + return true; +} + +void renderer::Mask::update(int frameNo, const VMatrix &parentMatrix, + float /*parentAlpha*/, const DirtyFlag &flag) +{ + bool dirtyPath = false; + + if (flag.testFlag(DirtyFlagBit::None) && mData->isStatic()) return; + + if (mData->mShape.isStatic()) { + if (mLocalPath.empty()) { + dirtyPath = true; + mData->mShape.value(frameNo, mLocalPath); + } + } else { + dirtyPath = true; + mData->mShape.value(frameNo, mLocalPath); + } + /* mask item dosen't inherit opacity */ + mCombinedAlpha = mData->opacity(frameNo); + + if ( flag.testFlag(DirtyFlagBit::Matrix) || dirtyPath ) { + mFinalPath.clone(mLocalPath); + mFinalPath.transform(parentMatrix); + mRasterRequest = true; + } +} + +VRle renderer::Mask::rle() +{ + if (!vCompare(mCombinedAlpha, 1.0f)) { + VRle obj = mRasterizer.rle(); + obj *= uchar(mCombinedAlpha * 255); + return obj; + } else { + return mRasterizer.rle(); + } +} + +void renderer::Mask::preprocess(const VRect &clip) +{ + if (mRasterRequest) + mRasterizer.rasterize(mFinalPath, FillRule::Winding, clip); +} + +void renderer::Layer::render(VPainter *painter, const VRle &inheritMask, + const VRle &matteRle, SurfaceCache &) +{ + auto renderlist = renderList(); + + if (renderlist.empty()) return; + + VRle mask; + if (mLayerMask) { + mask = mLayerMask->maskRle(painter->clipBoundingRect()); + if (!inheritMask.empty()) mask = mask & inheritMask; + // if resulting mask is empty then return. + if (mask.empty()) return; + } else { + mask = inheritMask; + } + + for (auto &i : renderlist) { + painter->setBrush(i->mBrush); + VRle rle = i->rle(); + if (matteRle.empty()) { + if (mask.empty()) { + // no mask no matte + painter->drawRle(VPoint(), rle); + } else { + // only mask + painter->drawRle(rle, mask); + } + + } else { + if (!mask.empty()) rle = rle & mask; + + if (rle.empty()) continue; + if (matteType() == model::MatteType::AlphaInv) { + rle = rle - matteRle; + painter->drawRle(VPoint(), rle); + } else { + // render with matteRle as clip. + painter->drawRle(rle, matteRle); + } + } + } +} + +void renderer::LayerMask::preprocess(const VRect &clip) +{ + for (auto &i : mMasks) { + i.preprocess(clip); + } +} + +renderer::LayerMask::LayerMask(model::Layer *layerData) +{ + if (!layerData->mExtra) return; + + mMasks.reserve(layerData->mExtra->mMasks.size()); + + for (auto &i : layerData->mExtra->mMasks) { + mMasks.emplace_back(i); + mStatic &= i->isStatic(); + } +} + +void renderer::LayerMask::update(int frameNo, const VMatrix &parentMatrix, + float parentAlpha, const DirtyFlag &flag) +{ + if (flag.testFlag(DirtyFlagBit::None) && isStatic()) return; + + for (auto &i : mMasks) { + i.update(frameNo, parentMatrix, parentAlpha, flag); + } + mDirty = true; +} + +VRle renderer::LayerMask::maskRle(const VRect &clipRect) +{ + if (!mDirty) return mRle; + + VRle rle; + for (auto &e : mMasks) { + const auto cur = [&]() { + if (e.inverted()) + return clipRect - e.rle(); + else + return e.rle(); + }(); + + switch (e.maskMode()) { + case model::Mask::Mode::Add: { + rle = rle + cur; + break; + } + case model::Mask::Mode::Substarct: { + if (rle.empty() && !clipRect.empty()) + rle = clipRect - cur; + else + rle = rle - cur; + break; + } + case model::Mask::Mode::Intersect: { + if (rle.empty() && !clipRect.empty()) + rle = clipRect & cur; + else + rle = rle & cur; + break; + } + case model::Mask::Mode::Difference: { + rle = rle ^ cur; + break; + } + default: + break; + } + } + + if (!rle.empty() && !rle.unique()) { + mRle.clone(rle); + } else { + mRle = rle; + } + mDirty = false; + return mRle; +} + +renderer::Layer::Layer(model::Layer *layerData) : mLayerData(layerData) +{ + if (mLayerData->mHasMask) + mLayerMask = std::make_unique(mLayerData); +} + +bool renderer::Layer::resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) +{ + if (!keyPath.matches(name(), depth)) { + return false; + } + + if (!keyPath.skip(name())) { + if (keyPath.fullyResolvesTo(name(), depth) && + transformProp(value.property())) { + //@TODO handle propery update. + } + } + return true; +} + +bool renderer::ShapeLayer::resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) +{ + if (renderer::Layer::resolveKeyPath(keyPath, depth, value)) { + if (keyPath.propagate(name(), depth)) { + uint newDepth = keyPath.nextDepth(name(), depth); + mRoot->resolveKeyPath(keyPath, newDepth, value); + } + return true; + } + return false; +} + +bool renderer::CompLayer::resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) +{ + if (renderer::Layer::resolveKeyPath(keyPath, depth, value)) { + if (keyPath.propagate(name(), depth)) { + uint newDepth = keyPath.nextDepth(name(), depth); + for (const auto &layer : mLayers) { + layer->resolveKeyPath(keyPath, newDepth, value); + } + } + return true; + } + return false; +} + +void renderer::Layer::update(int frameNumber, const VMatrix &parentMatrix, + float parentAlpha) +{ + mFrameNo = frameNumber; + // 1. check if the layer is part of the current frame + if (!visible()) return; + + float alpha = parentAlpha * opacity(frameNo()); + if (vIsZero(alpha)) { + mCombinedAlpha = 0; + return; + } + + // 2. calculate the parent matrix and alpha + VMatrix m = matrix(frameNo()); + m *= parentMatrix; + + // 3. update the dirty flag based on the change + if (mCombinedMatrix != m) { + mDirtyFlag |= DirtyFlagBit::Matrix; + mCombinedMatrix = m; + } + + if (!vCompare(mCombinedAlpha, alpha)) { + mDirtyFlag |= DirtyFlagBit::Alpha; + mCombinedAlpha = alpha; + } + + // 4. update the mask + if (mLayerMask) { + mLayerMask->update(frameNo(), mCombinedMatrix, mCombinedAlpha, + mDirtyFlag); + } + + // 5. if no parent property change and layer is static then nothing to do. + if (!mLayerData->precompLayer() && flag().testFlag(DirtyFlagBit::None) && + isStatic()) + return; + + // 6. update the content of the layer + updateContent(); + + // 7. reset the dirty flag + mDirtyFlag = DirtyFlagBit::None; +} + +VMatrix renderer::Layer::matrix(int frameNo) const +{ + return mParentLayer + ? (mLayerData->matrix(frameNo) * mParentLayer->matrix(frameNo)) + : mLayerData->matrix(frameNo); +} + +bool renderer::Layer::visible() const +{ + return (frameNo() >= mLayerData->inFrame() && + frameNo() < mLayerData->outFrame()); +} + +void renderer::Layer::preprocess(const VRect &clip) +{ + // layer dosen't contribute to the frame + if (skipRendering()) return; + + // preprocess layer masks + if (mLayerMask) mLayerMask->preprocess(clip); + + preprocessStage(clip); +} + +renderer::CompLayer::CompLayer(model::Layer *layerModel, VArenaAlloc *allocator) + : renderer::Layer(layerModel) +{ + if (!mLayerData->mChildren.empty()) + mLayers.reserve(mLayerData->mChildren.size()); + + // 1. keep the layer in back-to-front order. + // as lottie model keeps the data in front-toback-order. + for (auto it = mLayerData->mChildren.crbegin(); + it != mLayerData->mChildren.rend(); ++it) { + auto model = static_cast(*it); + auto item = createLayerItem(model, allocator); + if (item) mLayers.push_back(item); + } + + // 2. update parent layer + for (const auto &layer : mLayers) { + int id = layer->parentId(); + if (id >= 0) { + auto search = + std::find_if(mLayers.begin(), mLayers.end(), + [id](const auto &val) { return val->id() == id; }); + if (search != mLayers.end()) layer->setParentLayer(*search); + } + } + + // 4. check if its a nested composition + if (!layerModel->layerSize().empty()) { + mClipper = std::make_unique(layerModel->layerSize()); + } + + if (mLayers.size() > 1) setComplexContent(true); +} + +void renderer::CompLayer::render(VPainter *painter, const VRle &inheritMask, + const VRle &matteRle, SurfaceCache &cache) +{ + if (vIsZero(combinedAlpha())) return; + + if (vCompare(combinedAlpha(), 1.0)) { + renderHelper(painter, inheritMask, matteRle, cache); + } else { + if (complexContent()) { + VSize size = painter->clipBoundingRect().size(); + VPainter srcPainter; + VBitmap srcBitmap = cache.make_surface(size.width(), size.height()); + srcPainter.begin(&srcBitmap); + renderHelper(&srcPainter, inheritMask, matteRle, cache); + srcPainter.end(); + painter->drawBitmap(VPoint(), srcBitmap, + uchar(combinedAlpha() * 255.0f)); + cache.release_surface(srcBitmap); + } else { + renderHelper(painter, inheritMask, matteRle, cache); + } + } +} + +void renderer::CompLayer::renderHelper(VPainter * painter, + const VRle & inheritMask, + const VRle & matteRle, + SurfaceCache &cache) +{ + VRle mask; + if (mLayerMask) { + mask = mLayerMask->maskRle(painter->clipBoundingRect()); + if (!inheritMask.empty()) mask = mask & inheritMask; + // if resulting mask is empty then return. + if (mask.empty()) return; + } else { + mask = inheritMask; + } + + if (mClipper) { + mask = mClipper->rle(mask); + if (mask.empty()) return; + } + + renderer::Layer *matte = nullptr; + for (const auto &layer : mLayers) { + if (layer->hasMatte()) { + matte = layer; + } else { + if (layer->visible()) { + if (matte) { + if (matte->visible()) + renderMatteLayer(painter, mask, matteRle, matte, layer, + cache); + } else { + layer->render(painter, mask, matteRle, cache); + } + } + matte = nullptr; + } + } +} + +void renderer::CompLayer::renderMatteLayer(VPainter *painter, const VRle &mask, + const VRle & matteRle, + renderer::Layer *layer, + renderer::Layer *src, + SurfaceCache & cache) +{ + VSize size = painter->clipBoundingRect().size(); + // Decide if we can use fast matte. + // 1. draw src layer to matte buffer + VPainter srcPainter; + VBitmap srcBitmap = cache.make_surface(size.width(), size.height()); + srcPainter.begin(&srcBitmap); + src->render(&srcPainter, mask, matteRle, cache); + srcPainter.end(); + + // 2. draw layer to layer buffer + VPainter layerPainter; + VBitmap layerBitmap = cache.make_surface(size.width(), size.height()); + layerPainter.begin(&layerBitmap); + layer->render(&layerPainter, mask, matteRle, cache); + + // 2.1update composition mode + switch (layer->matteType()) { + case model::MatteType::Alpha: + case model::MatteType::Luma: { + layerPainter.setBlendMode(BlendMode::DestIn); + break; + } + case model::MatteType::AlphaInv: + case model::MatteType::LumaInv: { + layerPainter.setBlendMode(BlendMode::DestOut); + break; + } + default: + break; + } + + // 2.2 update srcBuffer if the matte is luma type + if (layer->matteType() == model::MatteType::Luma || + layer->matteType() == model::MatteType::LumaInv) { + srcBitmap.updateLuma(); + } + + // 2.3 draw src buffer as mask + layerPainter.drawBitmap(VPoint(), srcBitmap); + layerPainter.end(); + // 3. draw the result buffer into painter + painter->drawBitmap(VPoint(), layerBitmap); + + cache.release_surface(srcBitmap); + cache.release_surface(layerBitmap); +} + +void renderer::Clipper::update(const VMatrix &matrix) +{ + mPath.reset(); + mPath.addRect(VRectF(0, 0, mSize.width(), mSize.height())); + mPath.transform(matrix); + mRasterRequest = true; +} + +void renderer::Clipper::preprocess(const VRect &clip) +{ + if (mRasterRequest) mRasterizer.rasterize(mPath, FillRule::Winding, clip); + + mRasterRequest = false; +} + +VRle renderer::Clipper::rle(const VRle &mask) +{ + if (mask.empty()) return mRasterizer.rle(); + + mMaskedRle.clone(mask); + mMaskedRle &= mRasterizer.rle(); + return mMaskedRle; +} + +void renderer::CompLayer::updateContent() +{ + if (mClipper && flag().testFlag(DirtyFlagBit::Matrix)) { + mClipper->update(combinedMatrix()); + } + int mappedFrame = mLayerData->timeRemap(frameNo()); + float alpha = combinedAlpha(); + if (complexContent()) alpha = 1; + for (const auto &layer : mLayers) { + layer->update(mappedFrame, combinedMatrix(), alpha); + } +} + +void renderer::CompLayer::preprocessStage(const VRect &clip) +{ + // if layer has clipper + if (mClipper) mClipper->preprocess(clip); + + renderer::Layer *matte = nullptr; + for (const auto &layer : mLayers) { + if (layer->hasMatte()) { + matte = layer; + } else { + if (layer->visible()) { + if (matte) { + if (matte->visible()) { + layer->preprocess(clip); + matte->preprocess(clip); + } + } else { + layer->preprocess(clip); + } + } + matte = nullptr; + } + } +} + +renderer::SolidLayer::SolidLayer(model::Layer *layerData) + : renderer::Layer(layerData) +{ + mDrawableList = &mRenderNode; +} + +void renderer::SolidLayer::updateContent() +{ + if (flag() & DirtyFlagBit::Matrix) { + mPath.reset(); + mPath.addRect(VRectF(0, 0, mLayerData->layerSize().width(), + mLayerData->layerSize().height())); + mPath.transform(combinedMatrix()); + mRenderNode.mFlag |= VDrawable::DirtyState::Path; + mRenderNode.mPath = mPath; + } + if (flag() & DirtyFlagBit::Alpha) { + model::Color color = mLayerData->solidColor(); + VBrush brush(color.toColor(combinedAlpha())); + mRenderNode.setBrush(brush); + mRenderNode.mFlag |= VDrawable::DirtyState::Brush; + } +} + +void renderer::SolidLayer::preprocessStage(const VRect &clip) +{ + mRenderNode.preprocess(clip); +} + +renderer::DrawableList renderer::SolidLayer::renderList() +{ + if (skipRendering()) return {}; + + return {&mDrawableList, 1}; +} + +renderer::ImageLayer::ImageLayer(model::Layer *layerData) + : renderer::Layer(layerData) +{ + mDrawableList = &mRenderNode; + + if (!mLayerData->asset()) return; + + mTexture.mBitmap = mLayerData->asset()->bitmap(); + VBrush brush(&mTexture); + mRenderNode.setBrush(brush); +} + +void renderer::ImageLayer::updateContent() +{ + if (!mLayerData->asset()) return; + + if (flag() & DirtyFlagBit::Matrix) { + mPath.reset(); + mPath.addRect(VRectF(0, 0, mLayerData->asset()->mWidth, + mLayerData->asset()->mHeight)); + mPath.transform(combinedMatrix()); + mRenderNode.mFlag |= VDrawable::DirtyState::Path; + mRenderNode.mPath = mPath; + mTexture.mMatrix = combinedMatrix(); + } + + if (flag() & DirtyFlagBit::Alpha) { + mTexture.mAlpha = int(combinedAlpha() * 255); + } +} + +void renderer::ImageLayer::preprocessStage(const VRect &clip) +{ + mRenderNode.preprocess(clip); +} + +renderer::DrawableList renderer::ImageLayer::renderList() +{ + if (skipRendering()) return {}; + + return {&mDrawableList, 1}; +} + +renderer::NullLayer::NullLayer(model::Layer *layerData) + : renderer::Layer(layerData) +{ +} +void renderer::NullLayer::updateContent() {} + +static renderer::Object *createContentItem(model::Object *contentData, + VArenaAlloc * allocator) +{ + switch (contentData->type()) { + case model::Object::Type::Group: { + return allocator->make( + static_cast(contentData), allocator); + } + case model::Object::Type::Rect: { + return allocator->make( + static_cast(contentData)); + } + case model::Object::Type::Ellipse: { + return allocator->make( + static_cast(contentData)); + } + case model::Object::Type::Path: { + return allocator->make( + static_cast(contentData)); + } + case model::Object::Type::Polystar: { + return allocator->make( + static_cast(contentData)); + } + case model::Object::Type::Fill: { + return allocator->make( + static_cast(contentData)); + } + case model::Object::Type::GFill: { + return allocator->make( + static_cast(contentData)); + } + case model::Object::Type::Stroke: { + return allocator->make( + static_cast(contentData)); + } + case model::Object::Type::GStroke: { + return allocator->make( + static_cast(contentData)); + } + case model::Object::Type::Repeater: { + return allocator->make( + static_cast(contentData), allocator); + } + case model::Object::Type::Trim: { + return allocator->make( + static_cast(contentData)); + } + default: + return nullptr; + break; + } +} + +renderer::ShapeLayer::ShapeLayer(model::Layer *layerData, + VArenaAlloc * allocator) + : renderer::Layer(layerData), + mRoot(allocator->make(nullptr, allocator)) +{ + mRoot->addChildren(layerData, allocator); + + std::vector list; + mRoot->processPaintItems(list); + + if (layerData->hasPathOperator()) { + list.clear(); + mRoot->processTrimItems(list); + } +} + +void renderer::ShapeLayer::updateContent() +{ + mRoot->update(frameNo(), combinedMatrix(), combinedAlpha(), flag()); + + if (mLayerData->hasPathOperator()) { + mRoot->applyTrim(); + } +} + +void renderer::ShapeLayer::preprocessStage(const VRect &clip) +{ + mDrawableList.clear(); + mRoot->renderList(mDrawableList); + + for (auto &drawable : mDrawableList) drawable->preprocess(clip); +} + +renderer::DrawableList renderer::ShapeLayer::renderList() +{ + if (skipRendering()) return {}; + + mDrawableList.clear(); + mRoot->renderList(mDrawableList); + + if (mDrawableList.empty()) return {}; + + return {mDrawableList.data(), mDrawableList.size()}; +} + +bool renderer::Group::resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) +{ + if (!keyPath.skip(name())) { + if (!keyPath.matches(mModel.name(), depth)) { + return false; + } + + if (!keyPath.skip(mModel.name())) { + if (keyPath.fullyResolvesTo(mModel.name(), depth) && + transformProp(value.property())) { + mModel.filter()->addValue(value); + } + } + } + + if (keyPath.propagate(name(), depth)) { + uint newDepth = keyPath.nextDepth(name(), depth); + for (auto &child : mContents) { + child->resolveKeyPath(keyPath, newDepth, value); + } + } + return true; +} + +bool renderer::Fill::resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) +{ + if (!keyPath.matches(mModel.name(), depth)) { + return false; + } + + if (keyPath.fullyResolvesTo(mModel.name(), depth) && + fillProp(value.property())) { + mModel.filter()->addValue(value); + return true; + } + return false; +} + +bool renderer::Stroke::resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) +{ + if (!keyPath.matches(mModel.name(), depth)) { + return false; + } + + if (keyPath.fullyResolvesTo(mModel.name(), depth) && + strokeProp(value.property())) { + mModel.filter()->addValue(value); + return true; + } + return false; +} + +renderer::Group::Group(model::Group *data, VArenaAlloc *allocator) + : mModel(data) +{ + addChildren(data, allocator); +} + +void renderer::Group::addChildren(model::Group *data, VArenaAlloc *allocator) +{ + if (!data) return; + + if (!data->mChildren.empty()) mContents.reserve(data->mChildren.size()); + + // keep the content in back-to-front order. + // as lottie model keeps it in front-to-back order. + for (auto it = data->mChildren.crbegin(); it != data->mChildren.rend(); + ++it) { + auto content = createContentItem(*it, allocator); + if (content) { + mContents.push_back(content); + } + } +} + +void renderer::Group::update(int frameNo, const VMatrix &parentMatrix, + float parentAlpha, const DirtyFlag &flag) +{ + DirtyFlag newFlag = flag; + float alpha; + + if (mModel.hasModel() && mModel.transform()) { + VMatrix m = mModel.matrix(frameNo); + + m *= parentMatrix; + if (!(flag & DirtyFlagBit::Matrix) && !mModel.transform()->isStatic() && + (m != mMatrix)) { + newFlag |= DirtyFlagBit::Matrix; + } + + mMatrix = m; + + alpha = parentAlpha * mModel.transform()->opacity(frameNo); + if (!vCompare(alpha, parentAlpha)) { + newFlag |= DirtyFlagBit::Alpha; + } + } else { + mMatrix = parentMatrix; + alpha = parentAlpha; + } + + for (const auto &content : mContents) { + content->update(frameNo, matrix(), alpha, newFlag); + } +} + +void renderer::Group::applyTrim() +{ + for (auto i = mContents.rbegin(); i != mContents.rend(); ++i) { + auto content = (*i); + switch (content->type()) { + case renderer::Object::Type::Trim: { + static_cast(content)->update(); + break; + } + case renderer::Object::Type::Group: { + static_cast(content)->applyTrim(); + break; + } + default: + break; + } + } +} + +void renderer::Group::renderList(std::vector &list) +{ + for (const auto &content : mContents) { + content->renderList(list); + } +} + +void renderer::Group::processPaintItems(std::vector &list) +{ + size_t curOpCount = list.size(); + for (auto i = mContents.rbegin(); i != mContents.rend(); ++i) { + auto content = (*i); + switch (content->type()) { + case renderer::Object::Type::Shape: { + auto pathItem = static_cast(content); + pathItem->setParent(this); + list.push_back(pathItem); + break; + } + case renderer::Object::Type::Paint: { + static_cast(content)->addPathItems(list, + curOpCount); + break; + } + case renderer::Object::Type::Group: { + static_cast(content)->processPaintItems(list); + break; + } + default: + break; + } + } +} + +void renderer::Group::processTrimItems(std::vector &list) +{ + size_t curOpCount = list.size(); + for (auto i = mContents.rbegin(); i != mContents.rend(); ++i) { + auto content = (*i); + + switch (content->type()) { + case renderer::Object::Type::Shape: { + list.push_back(static_cast(content)); + break; + } + case renderer::Object::Type::Trim: { + static_cast(content)->addPathItems(list, + curOpCount); + break; + } + case renderer::Object::Type::Group: { + static_cast(content)->processTrimItems(list); + break; + } + default: + break; + } + } +} + +/* + * renderer::Shape uses 2 path objects for path object reuse. + * mLocalPath - keeps track of the local path of the item before + * applying path operation and transformation. + * mTemp - keeps a referece to the mLocalPath and can be updated by the + * path operation objects(trim, merge path), + * We update the DirtyPath flag if the path needs to be updated again + * beacuse of local path or matrix or some path operation has changed which + * affects the final path. + * The PaintObject queries the dirty flag to check if it needs to compute the + * final path again and calls finalPath() api to do the same. + * finalPath() api passes a result Object so that we keep only one copy of + * the path object in the paintItem (for memory efficiency). + * NOTE: As path objects are COW objects we have to be + * carefull about the refcount so that we don't generate deep copy while + * modifying the path objects. + */ +void renderer::Shape::update(int frameNo, const VMatrix &, float, + const DirtyFlag &flag) +{ + mDirtyPath = false; + + // 1. update the local path if needed + if (hasChanged(frameNo)) { + // loose the reference to mLocalPath if any + // from the last frame update. + mTemp = VPath(); + + updatePath(mLocalPath, frameNo); + mDirtyPath = true; + } + // 2. keep a reference path in temp in case there is some + // path operation like trim which will update the path. + // we don't want to update the local path. + mTemp = mLocalPath; + + // 3. mark the path dirty if matrix has changed. + if (flag & DirtyFlagBit::Matrix) { + mDirtyPath = true; + } +} + +void renderer::Shape::finalPath(VPath &result) +{ + result.addPath(mTemp, static_cast(parent())->matrix()); +} + +renderer::Rect::Rect(model::Rect *data) + : renderer::Shape(data->isStatic()), mData(data) +{ +} + +void renderer::Rect::updatePath(VPath &path, int frameNo) +{ + VPointF pos = mData->mPos.value(frameNo); + VPointF size = mData->mSize.value(frameNo); + float roundness = mData->mRound.value(frameNo); + VRectF r(pos.x() - size.x() / 2, pos.y() - size.y() / 2, size.x(), + size.y()); + + path.reset(); + path.addRoundRect(r, roundness, mData->direction()); +} + +renderer::Ellipse::Ellipse(model::Ellipse *data) + : renderer::Shape(data->isStatic()), mData(data) +{ +} + +void renderer::Ellipse::updatePath(VPath &path, int frameNo) +{ + VPointF pos = mData->mPos.value(frameNo); + VPointF size = mData->mSize.value(frameNo); + VRectF r(pos.x() - size.x() / 2, pos.y() - size.y() / 2, size.x(), + size.y()); + + path.reset(); + path.addOval(r, mData->direction()); +} + +renderer::Path::Path(model::Path *data) + : renderer::Shape(data->isStatic()), mData(data) +{ +} + +void renderer::Path::updatePath(VPath &path, int frameNo) +{ + mData->mShape.value(frameNo, path); +} + +renderer::Polystar::Polystar(model::Polystar *data) + : renderer::Shape(data->isStatic()), mData(data) +{ +} + +void renderer::Polystar::updatePath(VPath &path, int frameNo) +{ + VPointF pos = mData->mPos.value(frameNo); + float points = mData->mPointCount.value(frameNo); + float innerRadius = mData->mInnerRadius.value(frameNo); + float outerRadius = mData->mOuterRadius.value(frameNo); + float innerRoundness = mData->mInnerRoundness.value(frameNo); + float outerRoundness = mData->mOuterRoundness.value(frameNo); + float rotation = mData->mRotation.value(frameNo); + + path.reset(); + VMatrix m; + + if (mData->mPolyType == model::Polystar::PolyType::Star) { + path.addPolystar(points, innerRadius, outerRadius, innerRoundness, + outerRoundness, 0.0, 0.0, 0.0, mData->direction()); + } else { + path.addPolygon(points, outerRadius, outerRoundness, 0.0, 0.0, 0.0, + mData->direction()); + } + + m.translate(pos.x(), pos.y()).rotate(rotation); + m.rotate(rotation); + path.transform(m); +} + +/* + * PaintData Node handling + * + */ +renderer::Paint::Paint(bool staticContent) : mStaticContent(staticContent) {} + +void renderer::Paint::update(int frameNo, const VMatrix &parentMatrix, + float parentAlpha, const DirtyFlag & /*flag*/) +{ + mRenderNodeUpdate = true; + mContentToRender = updateContent(frameNo, parentMatrix, parentAlpha); +} + +void renderer::Paint::updateRenderNode() +{ + bool dirty = false; + for (auto &i : mPathItems) { + if (i->dirty()) { + dirty = true; + break; + } + } + + if (dirty) { + mPath.reset(); + for (const auto &i : mPathItems) { + i->finalPath(mPath); + } + mDrawable.setPath(mPath); + } else { + if (mDrawable.mFlag & VDrawable::DirtyState::Path) + mDrawable.mPath = mPath; + } +} + +void renderer::Paint::renderList(std::vector &list) +{ + if (mRenderNodeUpdate) { + updateRenderNode(); + mRenderNodeUpdate = false; + } + + // Q: Why we even update the final path if we don't have content + // to render ? + // Ans: We update the render nodes because we will loose the + // dirty path information at end of this frame. + // so if we return early without updating the final path. + // in the subsequent frame when we have content to render but + // we may not able to update our final path properly as we + // don't know what paths got changed in between. + if (mContentToRender) list.push_back(&mDrawable); +} + +void renderer::Paint::addPathItems(std::vector &list, + size_t startOffset) +{ + std::copy(list.begin() + startOffset, list.end(), + back_inserter(mPathItems)); +} + +renderer::Fill::Fill(model::Fill *data) + : renderer::Paint(data->isStatic()), mModel(data) +{ + mDrawable.setName(mModel.name()); +} + +bool renderer::Fill::updateContent(int frameNo, const VMatrix &, float alpha) +{ + auto combinedAlpha = alpha * mModel.opacity(frameNo); + auto color = mModel.color(frameNo).toColor(combinedAlpha); + + VBrush brush(color); + mDrawable.setBrush(brush); + mDrawable.setFillRule(mModel.fillRule()); + + return !color.isTransparent(); +} + +renderer::GradientFill::GradientFill(model::GradientFill *data) + : renderer::Paint(data->isStatic()), mData(data) +{ + mDrawable.setName(mData->name()); +} + +bool renderer::GradientFill::updateContent(int frameNo, const VMatrix &matrix, + float alpha) +{ + float combinedAlpha = alpha * mData->opacity(frameNo); + + mData->update(mGradient, frameNo); + mGradient->setAlpha(combinedAlpha); + mGradient->mMatrix = matrix; + mDrawable.setBrush(VBrush(mGradient.get())); + mDrawable.setFillRule(mData->fillRule()); + + return !vIsZero(combinedAlpha); +} + +renderer::Stroke::Stroke(model::Stroke *data) + : renderer::Paint(data->isStatic()), mModel(data) +{ + mDrawable.setName(mModel.name()); + if (mModel.hasDashInfo()) { + mDrawable.setType(VDrawable::Type::StrokeWithDash); + } else { + mDrawable.setType(VDrawable::Type::Stroke); + } +} + +static vthread_local std::vector Dash_Vector; + +bool renderer::Stroke::updateContent(int frameNo, const VMatrix &matrix, + float alpha) +{ + auto combinedAlpha = alpha * mModel.opacity(frameNo); + auto color = mModel.color(frameNo).toColor(combinedAlpha); + + VBrush brush(color); + mDrawable.setBrush(brush); + float scale = matrix.scale(); + mDrawable.setStrokeInfo(mModel.capStyle(), mModel.joinStyle(), + mModel.miterLimit(), + mModel.strokeWidth(frameNo) * scale); + + if (mModel.hasDashInfo()) { + Dash_Vector.clear(); + mModel.getDashInfo(frameNo, Dash_Vector); + if (!Dash_Vector.empty()) { + for (auto &elm : Dash_Vector) elm *= scale; + mDrawable.setDashInfo(Dash_Vector); + } + } + + return !color.isTransparent(); +} + +renderer::GradientStroke::GradientStroke(model::GradientStroke *data) + : renderer::Paint(data->isStatic()), mData(data) +{ + mDrawable.setName(mData->name()); + if (mData->hasDashInfo()) { + mDrawable.setType(VDrawable::Type::StrokeWithDash); + } else { + mDrawable.setType(VDrawable::Type::Stroke); + } +} + +bool renderer::GradientStroke::updateContent(int frameNo, const VMatrix &matrix, + float alpha) +{ + float combinedAlpha = alpha * mData->opacity(frameNo); + + mData->update(mGradient, frameNo); + mGradient->setAlpha(combinedAlpha); + mGradient->mMatrix = matrix; + auto scale = mGradient->mMatrix.scale(); + mDrawable.setBrush(VBrush(mGradient.get())); + mDrawable.setStrokeInfo(mData->capStyle(), mData->joinStyle(), + mData->miterLimit(), mData->width(frameNo) * scale); + + if (mData->hasDashInfo()) { + Dash_Vector.clear(); + mData->getDashInfo(frameNo, Dash_Vector); + if (!Dash_Vector.empty()) { + for (auto &elm : Dash_Vector) elm *= scale; + mDrawable.setDashInfo(Dash_Vector); + } + } + + return !vIsZero(combinedAlpha); +} + +void renderer::Trim::update(int frameNo, const VMatrix & /*parentMatrix*/, + float /*parentAlpha*/, const DirtyFlag & /*flag*/) +{ + mDirty = false; + + if (mCache.mFrameNo == frameNo) return; + + model::Trim::Segment segment = mData->segment(frameNo); + + if (!(vCompare(mCache.mSegment.start, segment.start) && + vCompare(mCache.mSegment.end, segment.end))) { + mDirty = true; + mCache.mSegment = segment; + } + mCache.mFrameNo = frameNo; +} + +void renderer::Trim::update() +{ + // when both path and trim are not dirty + if (!(mDirty || pathDirty())) return; + + if (vCompare(mCache.mSegment.start, mCache.mSegment.end)) { + for (auto &i : mPathItems) { + i->updatePath(VPath()); + } + return; + } + + if (vCompare(std::fabs(mCache.mSegment.start - mCache.mSegment.end), 1)) { + for (auto &i : mPathItems) { + i->updatePath(i->localPath()); + } + return; + } + + if (mData->type() == model::Trim::TrimType::Simultaneously) { + for (auto &i : mPathItems) { + mPathMesure.setRange(mCache.mSegment.start, mCache.mSegment.end); + i->updatePath(mPathMesure.trim(i->localPath())); + } + } else { // model::Trim::TrimType::Individually + float totalLength = 0.0; + for (auto &i : mPathItems) { + totalLength += i->localPath().length(); + } + float start = totalLength * mCache.mSegment.start; + float end = totalLength * mCache.mSegment.end; + + if (start < end) { + float curLen = 0.0; + for (auto &i : mPathItems) { + if (curLen > end) { + // update with empty path. + i->updatePath(VPath()); + continue; + } + float len = i->localPath().length(); + + if (curLen < start && curLen + len < start) { + curLen += len; + // update with empty path. + i->updatePath(VPath()); + continue; + } else if (start <= curLen && end >= curLen + len) { + // inside segment + curLen += len; + continue; + } else { + float local_start = start > curLen ? start - curLen : 0; + local_start /= len; + float local_end = curLen + len < end ? len : end - curLen; + local_end /= len; + mPathMesure.setRange(local_start, local_end); + i->updatePath(mPathMesure.trim(i->localPath())); + curLen += len; + } + } + } + } +} + +void renderer::Trim::addPathItems(std::vector &list, + size_t startOffset) +{ + std::copy(list.begin() + startOffset, list.end(), + back_inserter(mPathItems)); +} + +renderer::Repeater::Repeater(model::Repeater *data, VArenaAlloc *allocator) + : mRepeaterData(data) +{ + assert(mRepeaterData->content()); + + mCopies = mRepeaterData->maxCopies(); + + for (int i = 0; i < mCopies; i++) { + auto content = allocator->make( + mRepeaterData->content(), allocator); + // content->setParent(this); + mContents.push_back(content); + } +} + +void renderer::Repeater::update(int frameNo, const VMatrix &parentMatrix, + float parentAlpha, const DirtyFlag &flag) +{ + DirtyFlag newFlag = flag; + + float copies = mRepeaterData->copies(frameNo); + int visibleCopies = int(copies); + + if (visibleCopies == 0) { + mHidden = true; + return; + } + + mHidden = false; + + if (!mRepeaterData->isStatic()) newFlag |= DirtyFlagBit::Matrix; + + float offset = mRepeaterData->offset(frameNo); + float startOpacity = mRepeaterData->mTransform.startOpacity(frameNo); + float endOpacity = mRepeaterData->mTransform.endOpacity(frameNo); + + newFlag |= DirtyFlagBit::Alpha; + + for (int i = 0; i < mCopies; ++i) { + float newAlpha = + parentAlpha * lerp(startOpacity, endOpacity, i / copies); + + // hide rest of the copies , @TODO find a better solution. + if (i >= visibleCopies) newAlpha = 0; + + VMatrix result = mRepeaterData->mTransform.matrix(frameNo, i + offset) * + parentMatrix; + mContents[i]->update(frameNo, result, newAlpha, newFlag); + } +} + +void renderer::Repeater::renderList(std::vector &list) +{ + if (mHidden) return; + return renderer::Group::renderList(list); +} diff --git a/external/rlottie/src/lottie/lottieitem.h b/external/rlottie/src/lottie/lottieitem.h new file mode 100644 index 000000000..1fcb561b9 --- /dev/null +++ b/external/rlottie/src/lottie/lottieitem.h @@ -0,0 +1,626 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef LOTTIEITEM_H +#define LOTTIEITEM_H + +#include +#include + +#include "lottiekeypath.h" +#include "lottiefiltermodel.h" +#include "rlottie.h" +#include "rlottiecommon.h" +#include "varenaalloc.h" +#include "vdrawable.h" +#include "vmatrix.h" +#include "vpainter.h" +#include "vpath.h" +#include "vpathmesure.h" +#include "vpoint.h" + +V_USE_NAMESPACE + +namespace rlottie { + +namespace internal { + +template +class VSpan { +public: + using reference = T &; + using pointer = T *; + using const_pointer = T const *; + using const_reference = T const &; + using index_type = size_t; + + using iterator = pointer; + using const_iterator = const_pointer; + + VSpan() = default; + VSpan(pointer data, index_type size) : _data(data), _size(size) {} + + constexpr pointer data() const noexcept { return _data; } + constexpr index_type size() const noexcept { return _size; } + constexpr bool empty() const noexcept { return size() == 0; } + constexpr iterator begin() const noexcept { return data(); } + constexpr iterator end() const noexcept { return data() + size(); } + constexpr const_iterator cbegin() const noexcept { return data(); } + constexpr const_iterator cend() const noexcept { return data() + size(); } + constexpr reference operator[](index_type idx) const + { + return *(data() + idx); + } + +private: + pointer _data{nullptr}; + index_type _size{0}; +}; + +namespace renderer { + +using DrawableList = VSpan; + +enum class DirtyFlagBit : uchar { + None = 0x00, + Matrix = 0x01, + Alpha = 0x02, + All = (Matrix | Alpha) +}; +typedef vFlag DirtyFlag; + +class SurfaceCache { +public: + SurfaceCache() { mCache.reserve(10); } + + VBitmap make_surface( + size_t width, size_t height, + VBitmap::Format format = VBitmap::Format::ARGB32_Premultiplied) + { + if (mCache.empty()) return {width, height, format}; + + auto surface = mCache.back(); + surface.reset(width, height, format); + + mCache.pop_back(); + return surface; + } + + void release_surface(VBitmap &surface) { mCache.push_back(surface); } + +private: + std::vector mCache; +}; + +class Drawable final : public VDrawable { +public: + void sync(); + +public: + std::unique_ptr mCNode{nullptr}; + + ~Drawable() noexcept + { + if (mCNode && mCNode->mGradient.stopPtr) + free(mCNode->mGradient.stopPtr); + } +}; + +struct CApiData { + CApiData(); + LOTLayerNode mLayer; + std::vector mMasks; + std::vector mLayers; + std::vector mCNodeList; +}; + +class Clipper { +public: + explicit Clipper(VSize size) : mSize(size) {} + void update(const VMatrix &matrix); + void preprocess(const VRect &clip); + VRle rle(const VRle &mask); + +public: + VSize mSize; + VPath mPath; + VRle mMaskedRle; + VRasterizer mRasterizer; + bool mRasterRequest{false}; +}; + +class Mask { +public: + explicit Mask(model::Mask *data) : mData(data) {} + void update(int frameNo, const VMatrix &parentMatrix, float parentAlpha, + const DirtyFlag &flag); + model::Mask::Mode maskMode() const { return mData->mMode; } + VRle rle(); + void preprocess(const VRect &clip); + bool inverted() const { return mData->mInv; } +public: + model::Mask *mData{nullptr}; + VPath mLocalPath; + VPath mFinalPath; + VRasterizer mRasterizer; + float mCombinedAlpha{0}; + bool mRasterRequest{false}; +}; + +/* + * Handels mask property of a layer item + */ +class LayerMask { +public: + explicit LayerMask(model::Layer *layerData); + void update(int frameNo, const VMatrix &parentMatrix, float parentAlpha, + const DirtyFlag &flag); + bool isStatic() const { return mStatic; } + VRle maskRle(const VRect &clipRect); + void preprocess(const VRect &clip); + +public: + std::vector mMasks; + VRle mRle; + bool mStatic{true}; + bool mDirty{true}; +}; + +class Layer; + +class Composition { +public: + explicit Composition(std::shared_ptr composition); + bool update(int frameNo, const VSize &size, bool keepAspectRatio); + VSize size() const { return mViewSize; } + void buildRenderTree(); + const LOTLayerNode *renderTree() const; + bool render(const rlottie::Surface &surface); + void setValue(const std::string &keypath, LOTVariant &value); + +private: + SurfaceCache mSurfaceCache; + VBitmap mSurface; + VMatrix mScaleMatrix; + VSize mViewSize; + std::shared_ptr mModel; + Layer * mRootLayer{nullptr}; + VArenaAlloc mAllocator{2048}; + int mCurFrameNo; + bool mKeepAspectRatio{true}; +}; + +class Layer { +public: + virtual ~Layer() = default; + Layer &operator=(Layer &&) noexcept = delete; + Layer(model::Layer *layerData); + int id() const { return mLayerData->id(); } + int parentId() const { return mLayerData->parentId(); } + void setParentLayer(Layer *parent) { mParentLayer = parent; } + void setComplexContent(bool value) { mComplexContent = value; } + bool complexContent() const { return mComplexContent; } + virtual void update(int frameNo, const VMatrix &parentMatrix, + float parentAlpha); + VMatrix matrix(int frameNo) const; + void preprocess(const VRect &clip); + virtual DrawableList renderList() { return {}; } + virtual void render(VPainter *painter, const VRle &mask, + const VRle &matteRle, SurfaceCache &cache); + bool hasMatte() + { + if (mLayerData->mMatteType == model::MatteType::None) return false; + return true; + } + model::MatteType matteType() const { return mLayerData->mMatteType; } + bool visible() const; + virtual void buildLayerNode(); + LOTLayerNode & clayer() { return mCApiData->mLayer; } + std::vector &clayers() { return mCApiData->mLayers; } + std::vector & cmasks() { return mCApiData->mMasks; } + std::vector & cnodes() { return mCApiData->mCNodeList; } + const char * name() const { return mLayerData->name(); } + virtual bool resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value); + +protected: + virtual void preprocessStage(const VRect &clip) = 0; + virtual void updateContent() = 0; + inline VMatrix combinedMatrix() const { return mCombinedMatrix; } + inline int frameNo() const { return mFrameNo; } + inline float combinedAlpha() const { return mCombinedAlpha; } + inline bool isStatic() const { return mLayerData->isStatic(); } + float opacity(int frameNo) const { return mLayerData->opacity(frameNo); } + inline DirtyFlag flag() const { return mDirtyFlag; } + bool skipRendering() const + { + return (!visible() || vIsZero(combinedAlpha())); + } + +protected: + std::unique_ptr mLayerMask; + model::Layer * mLayerData{nullptr}; + Layer * mParentLayer{nullptr}; + VMatrix mCombinedMatrix; + float mCombinedAlpha{0.0}; + int mFrameNo{-1}; + DirtyFlag mDirtyFlag{DirtyFlagBit::All}; + bool mComplexContent{false}; + std::unique_ptr mCApiData; +}; + +class CompLayer final : public Layer { +public: + explicit CompLayer(model::Layer *layerData, VArenaAlloc *allocator); + + void render(VPainter *painter, const VRle &mask, const VRle &matteRle, + SurfaceCache &cache) final; + void buildLayerNode() final; + bool resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) override; + +protected: + void preprocessStage(const VRect &clip) final; + void updateContent() final; + +private: + void renderHelper(VPainter *painter, const VRle &mask, const VRle &matteRle, + SurfaceCache &cache); + void renderMatteLayer(VPainter *painter, const VRle &inheritMask, + const VRle &matteRle, Layer *layer, Layer *src, + SurfaceCache &cache); + +private: + std::vector mLayers; + std::unique_ptr mClipper; +}; + +class SolidLayer final : public Layer { +public: + explicit SolidLayer(model::Layer *layerData); + void buildLayerNode() final; + DrawableList renderList() final; + +protected: + void preprocessStage(const VRect &clip) final; + void updateContent() final; + +private: + Drawable mRenderNode; + VPath mPath; + VDrawable *mDrawableList{nullptr}; // to work with the Span api +}; + +class Group; + +class ShapeLayer final : public Layer { +public: + explicit ShapeLayer(model::Layer *layerData, VArenaAlloc *allocator); + DrawableList renderList() final; + void buildLayerNode() final; + bool resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) override; + +protected: + void preprocessStage(const VRect &clip) final; + void updateContent() final; + std::vector mDrawableList; + Group * mRoot{nullptr}; +}; + +class NullLayer final : public Layer { +public: + explicit NullLayer(model::Layer *layerData); + +protected: + void preprocessStage(const VRect &) final {} + void updateContent() final; +}; + +class ImageLayer final : public Layer { +public: + explicit ImageLayer(model::Layer *layerData); + void buildLayerNode() final; + DrawableList renderList() final; + +protected: + void preprocessStage(const VRect &clip) final; + void updateContent() final; + +private: + Drawable mRenderNode; + VTexture mTexture; + VPath mPath; + VDrawable *mDrawableList{nullptr}; // to work with the Span api +}; + +class Object { +public: + enum class Type : uchar { Unknown, Group, Shape, Paint, Trim }; + virtual ~Object() = default; + Object & operator=(Object &&) noexcept = delete; + virtual void update(int frameNo, const VMatrix &parentMatrix, + float parentAlpha, const DirtyFlag &flag) = 0; + virtual void renderList(std::vector &) {} + virtual bool resolveKeyPath(LOTKeyPath &, uint, LOTVariant &) + { + return false; + } + virtual Object::Type type() const { return Object::Type::Unknown; } +}; + +class Shape; +class Group : public Object { +public: + Group() = default; + explicit Group(model::Group *data, VArenaAlloc *allocator); + void addChildren(model::Group *data, VArenaAlloc *allocator); + void update(int frameNo, const VMatrix &parentMatrix, float parentAlpha, + const DirtyFlag &flag) override; + void applyTrim(); + void processTrimItems(std::vector &list); + void processPaintItems(std::vector &list); + void renderList(std::vector &list) override; + Object::Type type() const final { return Object::Type::Group; } + const VMatrix &matrix() const { return mMatrix; } + const char * name() const + { + static const char *TAG = "__"; + return mModel.hasModel() ? mModel.name() : TAG; + } + bool resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) override; + +protected: + std::vector mContents; + VMatrix mMatrix; + +private: + model::Filter mModel; +}; + +class Shape : public Object { +public: + Shape(bool staticPath) : mStaticPath(staticPath) {} + void update(int frameNo, const VMatrix &parentMatrix, float parentAlpha, + const DirtyFlag &flag) final; + Object::Type type() const final { return Object::Type::Shape; } + bool dirty() const { return mDirtyPath; } + const VPath &localPath() const { return mTemp; } + void finalPath(VPath &result); + void updatePath(const VPath &path) + { + mTemp = path; + mDirtyPath = true; + } + bool staticPath() const { return mStaticPath; } + void setParent(Group *parent) { mParent = parent; } + Group *parent() const { return mParent; } + +protected: + virtual void updatePath(VPath &path, int frameNo) = 0; + virtual bool hasChanged(int prevFrame, int curFrame) = 0; + +private: + bool hasChanged(int frameNo) + { + int prevFrame = mFrameNo; + mFrameNo = frameNo; + if (prevFrame == -1) return true; + if (mStaticPath || (prevFrame == frameNo)) return false; + return hasChanged(prevFrame, frameNo); + } + Group *mParent{nullptr}; + VPath mLocalPath; + VPath mTemp; + int mFrameNo{-1}; + bool mDirtyPath{true}; + bool mStaticPath; +}; + +class Rect final : public Shape { +public: + explicit Rect(model::Rect *data); + +protected: + void updatePath(VPath &path, int frameNo) final; + model::Rect *mData{nullptr}; + + bool hasChanged(int prevFrame, int curFrame) final + { + return (mData->mPos.changed(prevFrame, curFrame) || + mData->mSize.changed(prevFrame, curFrame) || + mData->mRound.changed(prevFrame, curFrame)); + } +}; + +class Ellipse final : public Shape { +public: + explicit Ellipse(model::Ellipse *data); + +private: + void updatePath(VPath &path, int frameNo) final; + model::Ellipse *mData{nullptr}; + bool hasChanged(int prevFrame, int curFrame) final + { + return (mData->mPos.changed(prevFrame, curFrame) || + mData->mSize.changed(prevFrame, curFrame)); + } +}; + +class Path final : public Shape { +public: + explicit Path(model::Path *data); + +private: + void updatePath(VPath &path, int frameNo) final; + model::Path *mData{nullptr}; + bool hasChanged(int prevFrame, int curFrame) final + { + return mData->mShape.changed(prevFrame, curFrame); + } +}; + +class Polystar final : public Shape { +public: + explicit Polystar(model::Polystar *data); + +private: + void updatePath(VPath &path, int frameNo) final; + model::Polystar *mData{nullptr}; + + bool hasChanged(int prevFrame, int curFrame) final + { + return (mData->mPos.changed(prevFrame, curFrame) || + mData->mPointCount.changed(prevFrame, curFrame) || + mData->mInnerRadius.changed(prevFrame, curFrame) || + mData->mOuterRadius.changed(prevFrame, curFrame) || + mData->mInnerRoundness.changed(prevFrame, curFrame) || + mData->mOuterRoundness.changed(prevFrame, curFrame) || + mData->mRotation.changed(prevFrame, curFrame)); + } +}; + +class Paint : public Object { +public: + Paint(bool staticContent); + void addPathItems(std::vector &list, size_t startOffset); + void update(int frameNo, const VMatrix &parentMatrix, float parentAlpha, + const DirtyFlag &flag) override; + void renderList(std::vector &list) final; + Object::Type type() const final { return Object::Type::Paint; } + +protected: + virtual bool updateContent(int frameNo, const VMatrix &matrix, + float alpha) = 0; + +private: + void updateRenderNode(); + +protected: + std::vector mPathItems; + Drawable mDrawable; + VPath mPath; + DirtyFlag mFlag; + bool mStaticContent; + bool mRenderNodeUpdate{true}; + bool mContentToRender{true}; +}; + +class Fill final : public Paint { +public: + explicit Fill(model::Fill *data); + +protected: + bool updateContent(int frameNo, const VMatrix &matrix, float alpha) final; + bool resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) final; + +private: + model::Filter mModel; +}; + +class GradientFill final : public Paint { +public: + explicit GradientFill(model::GradientFill *data); + +protected: + bool updateContent(int frameNo, const VMatrix &matrix, float alpha) final; + +private: + model::GradientFill * mData{nullptr}; + std::unique_ptr mGradient; +}; + +class Stroke : public Paint { +public: + explicit Stroke(model::Stroke *data); + +protected: + bool updateContent(int frameNo, const VMatrix &matrix, float alpha) final; + bool resolveKeyPath(LOTKeyPath &keyPath, uint depth, + LOTVariant &value) final; + +private: + model::Filter mModel; +}; + +class GradientStroke final : public Paint { +public: + explicit GradientStroke(model::GradientStroke *data); + +protected: + bool updateContent(int frameNo, const VMatrix &matrix, float alpha) final; + +private: + model::GradientStroke * mData{nullptr}; + std::unique_ptr mGradient; +}; + +class Trim final : public Object { +public: + explicit Trim(model::Trim *data) : mData(data) {} + void update(int frameNo, const VMatrix &parentMatrix, float parentAlpha, + const DirtyFlag &flag) final; + Object::Type type() const final { return Object::Type::Trim; } + void update(); + void addPathItems(std::vector &list, size_t startOffset); + +private: + bool pathDirty() const + { + for (auto &i : mPathItems) { + if (i->dirty()) return true; + } + return false; + } + struct Cache { + int mFrameNo{-1}; + model::Trim::Segment mSegment{}; + }; + Cache mCache; + std::vector mPathItems; + model::Trim * mData{nullptr}; + VPathMesure mPathMesure; + bool mDirty{true}; +}; + +class Repeater final : public Group { +public: + explicit Repeater(model::Repeater *data, VArenaAlloc *allocator); + void update(int frameNo, const VMatrix &parentMatrix, float parentAlpha, + const DirtyFlag &flag) final; + void renderList(std::vector &list) final; + +private: + model::Repeater *mRepeaterData{nullptr}; + bool mHidden{false}; + int mCopies{0}; +}; + +} // namespace renderer + +} // namespace internal + +} // namespace rlottie + +#endif // LOTTIEITEM_H diff --git a/external/rlottie/src/lottie/lottieitem_capi.cpp b/external/rlottie/src/lottie/lottieitem_capi.cpp new file mode 100644 index 000000000..a4d8546f5 --- /dev/null +++ b/external/rlottie/src/lottie/lottieitem_capi.cpp @@ -0,0 +1,339 @@ +/* + * Implements LottieItem functions needed + * to support renderTree() api. + * Moving all those implementation to its own + * file make clear separation as well easy of + * maintenance. + */ + +#include "lottieitem.h" +#include "vdasher.h" + +using namespace rlottie::internal; + +renderer::CApiData::CApiData() +{ + mLayer.mMaskList.ptr = nullptr; + mLayer.mMaskList.size = 0; + mLayer.mLayerList.ptr = nullptr; + mLayer.mLayerList.size = 0; + mLayer.mNodeList.ptr = nullptr; + mLayer.mNodeList.size = 0; + mLayer.mMatte = MatteNone; + mLayer.mVisible = 0; + mLayer.mAlpha = 255; + mLayer.mClipPath.ptPtr = nullptr; + mLayer.mClipPath.elmPtr = nullptr; + mLayer.mClipPath.ptCount = 0; + mLayer.mClipPath.elmCount = 0; + mLayer.keypath = nullptr; +} + +void renderer::Composition::buildRenderTree() +{ + mRootLayer->buildLayerNode(); +} + +const LOTLayerNode *renderer::Composition::renderTree() const +{ + return &mRootLayer->clayer(); +} + +void renderer::CompLayer::buildLayerNode() +{ + renderer::Layer::buildLayerNode(); + if (mClipper) { + const auto &elm = mClipper->mPath.elements(); + const auto &pts = mClipper->mPath.points(); + auto ptPtr = reinterpret_cast(pts.data()); + auto elmPtr = reinterpret_cast(elm.data()); + clayer().mClipPath.ptPtr = ptPtr; + clayer().mClipPath.elmPtr = elmPtr; + clayer().mClipPath.ptCount = 2 * pts.size(); + clayer().mClipPath.elmCount = elm.size(); + } + if (mLayers.size() != clayers().size()) { + for (const auto &layer : mLayers) { + layer->buildLayerNode(); + clayers().push_back(&layer->clayer()); + } + clayer().mLayerList.ptr = clayers().data(); + clayer().mLayerList.size = clayers().size(); + } else { + for (const auto &layer : mLayers) { + layer->buildLayerNode(); + } + } +} + +void renderer::ShapeLayer::buildLayerNode() +{ + renderer::Layer::buildLayerNode(); + + auto renderlist = renderList(); + + cnodes().clear(); + for (auto &i : renderlist) { + auto lotDrawable = static_cast(i); + lotDrawable->sync(); + cnodes().push_back(lotDrawable->mCNode.get()); + } + clayer().mNodeList.ptr = cnodes().data(); + clayer().mNodeList.size = cnodes().size(); +} + +void renderer::Layer::buildLayerNode() +{ + if (!mCApiData) { + mCApiData = std::make_unique(); + clayer().keypath = name(); + } + if (complexContent()) clayer().mAlpha = uchar(combinedAlpha() * 255.f); + clayer().mVisible = visible(); + // update matte + if (hasMatte()) { + switch (mLayerData->mMatteType) { + case model::MatteType::Alpha: + clayer().mMatte = MatteAlpha; + break; + case model::MatteType::AlphaInv: + clayer().mMatte = MatteAlphaInv; + break; + case model::MatteType::Luma: + clayer().mMatte = MatteLuma; + break; + case model::MatteType::LumaInv: + clayer().mMatte = MatteLumaInv; + break; + default: + clayer().mMatte = MatteNone; + break; + } + } + if (mLayerMask) { + cmasks().clear(); + cmasks().resize(mLayerMask->mMasks.size()); + size_t i = 0; + for (const auto &mask : mLayerMask->mMasks) { + auto & cNode = cmasks()[i++]; + const auto &elm = mask.mFinalPath.elements(); + const auto &pts = mask.mFinalPath.points(); + auto ptPtr = reinterpret_cast(pts.data()); + auto elmPtr = reinterpret_cast(elm.data()); + cNode.mPath.ptPtr = ptPtr; + cNode.mPath.ptCount = pts.size(); + cNode.mPath.elmPtr = elmPtr; + cNode.mPath.elmCount = elm.size(); + cNode.mAlpha = uchar(mask.mCombinedAlpha * 255.0f); + switch (mask.maskMode()) { + case model::Mask::Mode::Add: + cNode.mMode = MaskAdd; + break; + case model::Mask::Mode::Substarct: + cNode.mMode = MaskSubstract; + break; + case model::Mask::Mode::Intersect: + cNode.mMode = MaskIntersect; + break; + case model::Mask::Mode::Difference: + cNode.mMode = MaskDifference; + break; + default: + cNode.mMode = MaskAdd; + break; + } + } + clayer().mMaskList.ptr = cmasks().data(); + clayer().mMaskList.size = cmasks().size(); + } +} + +void renderer::SolidLayer::buildLayerNode() +{ + renderer::Layer::buildLayerNode(); + + auto renderlist = renderList(); + + cnodes().clear(); + for (auto &i : renderlist) { + auto lotDrawable = static_cast(i); + lotDrawable->sync(); + cnodes().push_back(lotDrawable->mCNode.get()); + } + clayer().mNodeList.ptr = cnodes().data(); + clayer().mNodeList.size = cnodes().size(); +} + +void renderer::ImageLayer::buildLayerNode() +{ + renderer::Layer::buildLayerNode(); + + auto renderlist = renderList(); + + cnodes().clear(); + for (auto &i : renderlist) { + auto lotDrawable = static_cast(i); + lotDrawable->sync(); + + lotDrawable->mCNode->mImageInfo.data = + lotDrawable->mBrush.mTexture->mBitmap.data(); + lotDrawable->mCNode->mImageInfo.width = + int(lotDrawable->mBrush.mTexture->mBitmap.width()); + lotDrawable->mCNode->mImageInfo.height = + int(lotDrawable->mBrush.mTexture->mBitmap.height()); + + lotDrawable->mCNode->mImageInfo.mMatrix.m11 = combinedMatrix().m_11(); + lotDrawable->mCNode->mImageInfo.mMatrix.m12 = combinedMatrix().m_12(); + lotDrawable->mCNode->mImageInfo.mMatrix.m13 = combinedMatrix().m_13(); + + lotDrawable->mCNode->mImageInfo.mMatrix.m21 = combinedMatrix().m_21(); + lotDrawable->mCNode->mImageInfo.mMatrix.m22 = combinedMatrix().m_22(); + lotDrawable->mCNode->mImageInfo.mMatrix.m23 = combinedMatrix().m_23(); + + lotDrawable->mCNode->mImageInfo.mMatrix.m31 = combinedMatrix().m_tx(); + lotDrawable->mCNode->mImageInfo.mMatrix.m32 = combinedMatrix().m_ty(); + lotDrawable->mCNode->mImageInfo.mMatrix.m33 = combinedMatrix().m_33(); + + // Alpha calculation already combined. + lotDrawable->mCNode->mImageInfo.mAlpha = + uchar(lotDrawable->mBrush.mTexture->mAlpha); + + cnodes().push_back(lotDrawable->mCNode.get()); + } + clayer().mNodeList.ptr = cnodes().data(); + clayer().mNodeList.size = cnodes().size(); +} + +static void updateGStops(LOTNode *n, const VGradient *grad) +{ + if (grad->mStops.size() != n->mGradient.stopCount) { + if (n->mGradient.stopCount) free(n->mGradient.stopPtr); + n->mGradient.stopCount = grad->mStops.size(); + n->mGradient.stopPtr = (LOTGradientStop *)malloc( + n->mGradient.stopCount * sizeof(LOTGradientStop)); + } + + LOTGradientStop *ptr = n->mGradient.stopPtr; + for (const auto &i : grad->mStops) { + ptr->pos = i.first; + ptr->a = uchar(i.second.alpha() * grad->alpha()); + ptr->r = i.second.red(); + ptr->g = i.second.green(); + ptr->b = i.second.blue(); + ptr++; + } +} + +void renderer::Drawable::sync() +{ + if (!mCNode) { + mCNode = std::make_unique(); + mCNode->mGradient.stopPtr = nullptr; + mCNode->mGradient.stopCount = 0; + } + + mCNode->mFlag = ChangeFlagNone; + if (mFlag & DirtyState::None) return; + + if (mFlag & DirtyState::Path) { + applyDashOp(); + const std::vector &elm = mPath.elements(); + const std::vector & pts = mPath.points(); + const float *ptPtr = reinterpret_cast(pts.data()); + const char * elmPtr = reinterpret_cast(elm.data()); + mCNode->mPath.elmPtr = elmPtr; + mCNode->mPath.elmCount = elm.size(); + mCNode->mPath.ptPtr = ptPtr; + mCNode->mPath.ptCount = 2 * pts.size(); + mCNode->mFlag |= ChangeFlagPath; + mCNode->keypath = name(); + } + + if (mStrokeInfo) { + mCNode->mStroke.width = mStrokeInfo->width; + mCNode->mStroke.miterLimit = mStrokeInfo->miterLimit; + mCNode->mStroke.enable = 1; + + switch (mStrokeInfo->cap) { + case CapStyle::Flat: + mCNode->mStroke.cap = LOTCapStyle::CapFlat; + break; + case CapStyle::Square: + mCNode->mStroke.cap = LOTCapStyle::CapSquare; + break; + case CapStyle::Round: + mCNode->mStroke.cap = LOTCapStyle::CapRound; + break; + } + + switch (mStrokeInfo->join) { + case JoinStyle::Miter: + mCNode->mStroke.join = LOTJoinStyle::JoinMiter; + break; + case JoinStyle::Bevel: + mCNode->mStroke.join = LOTJoinStyle::JoinBevel; + break; + case JoinStyle::Round: + mCNode->mStroke.join = LOTJoinStyle::JoinRound; + break; + default: + mCNode->mStroke.join = LOTJoinStyle::JoinMiter; + break; + } + } else { + mCNode->mStroke.enable = 0; + } + + switch (mFillRule) { + case FillRule::EvenOdd: + mCNode->mFillRule = LOTFillRule::FillEvenOdd; + break; + default: + mCNode->mFillRule = LOTFillRule::FillWinding; + break; + } + + switch (mBrush.type()) { + case VBrush::Type::Solid: + mCNode->mBrushType = LOTBrushType::BrushSolid; + mCNode->mColor.r = mBrush.mColor.r; + mCNode->mColor.g = mBrush.mColor.g; + mCNode->mColor.b = mBrush.mColor.b; + mCNode->mColor.a = mBrush.mColor.a; + break; + case VBrush::Type::LinearGradient: { + mCNode->mBrushType = LOTBrushType::BrushGradient; + mCNode->mGradient.type = LOTGradientType::GradientLinear; + VPointF s = mBrush.mGradient->mMatrix.map( + {mBrush.mGradient->linear.x1, mBrush.mGradient->linear.y1}); + VPointF e = mBrush.mGradient->mMatrix.map( + {mBrush.mGradient->linear.x2, mBrush.mGradient->linear.y2}); + mCNode->mGradient.start.x = s.x(); + mCNode->mGradient.start.y = s.y(); + mCNode->mGradient.end.x = e.x(); + mCNode->mGradient.end.y = e.y(); + updateGStops(mCNode.get(), mBrush.mGradient); + break; + } + case VBrush::Type::RadialGradient: { + mCNode->mBrushType = LOTBrushType::BrushGradient; + mCNode->mGradient.type = LOTGradientType::GradientRadial; + VPointF c = mBrush.mGradient->mMatrix.map( + {mBrush.mGradient->radial.cx, mBrush.mGradient->radial.cy}); + VPointF f = mBrush.mGradient->mMatrix.map( + {mBrush.mGradient->radial.fx, mBrush.mGradient->radial.fy}); + mCNode->mGradient.center.x = c.x(); + mCNode->mGradient.center.y = c.y(); + mCNode->mGradient.focal.x = f.x(); + mCNode->mGradient.focal.y = f.y(); + + float scale = mBrush.mGradient->mMatrix.scale(); + mCNode->mGradient.cradius = mBrush.mGradient->radial.cradius * scale; + mCNode->mGradient.fradius = mBrush.mGradient->radial.fradius * scale; + updateGStops(mCNode.get(), mBrush.mGradient); + break; + } + default: + break; + } +} diff --git a/external/rlottie/src/lottie/lottiekeypath.cpp b/external/rlottie/src/lottie/lottiekeypath.cpp new file mode 100644 index 000000000..e8b6c6aef --- /dev/null +++ b/external/rlottie/src/lottie/lottiekeypath.cpp @@ -0,0 +1,86 @@ +#include "lottiekeypath.h" + +#include + +LOTKeyPath::LOTKeyPath(const std::string &keyPath) +{ + std::stringstream ss(keyPath); + std::string item; + + while (getline(ss, item, '.')) { + mKeys.push_back(item); + } +} + +bool LOTKeyPath::matches(const std::string &key, uint depth) +{ + if (skip(key)) { + // This is an object we programatically create. + return true; + } + if (depth > size()) { + return false; + } + if ((mKeys[depth] == key) || (mKeys[depth] == "*") || + (mKeys[depth] == "**")) { + return true; + } + return false; +} + +uint LOTKeyPath::nextDepth(const std::string key, uint depth) +{ + if (skip(key)) { + // If it's a container then we added programatically and it isn't a part + // of the keypath. + return depth; + } + if (mKeys[depth] != "**") { + // If it's not a globstar then it is part of the keypath. + return depth + 1; + } + if (depth == size()) { + // The last key is a globstar. + return depth; + } + if (mKeys[depth + 1] == key) { + // We are a globstar and the next key is our current key so consume + // both. + return depth + 2; + } + return depth; +} + +bool LOTKeyPath::fullyResolvesTo(const std::string key, uint depth) +{ + if (depth > mKeys.size()) { + return false; + } + + bool isLastDepth = (depth == size()); + + if (!isGlobstar(depth)) { + bool matches = (mKeys[depth] == key) || isGlob(depth); + return (isLastDepth || (depth == size() - 1 && endsWithGlobstar())) && + matches; + } + + bool isGlobstarButNextKeyMatches = !isLastDepth && mKeys[depth + 1] == key; + if (isGlobstarButNextKeyMatches) { + return depth == size() - 1 || + (depth == size() - 2 && endsWithGlobstar()); + } + + if (isLastDepth) { + return true; + } + + if (depth + 1 < size()) { + // We are a globstar but there is more than 1 key after the globstar we + // we can't fully match. + return false; + } + // Return whether the next key (which we now know is the last one) is the + // same as the current key. + return mKeys[depth + 1] == key; +} diff --git a/external/rlottie/src/lottie/lottiekeypath.h b/external/rlottie/src/lottie/lottiekeypath.h new file mode 100644 index 000000000..0b59b161f --- /dev/null +++ b/external/rlottie/src/lottie/lottiekeypath.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef LOTTIEKEYPATH_H +#define LOTTIEKEYPATH_H + +#include +#include +#include "vglobal.h" + +class LOTKeyPath { +public: + LOTKeyPath(const std::string &keyPath); + bool matches(const std::string &key, uint depth); + uint nextDepth(const std::string key, uint depth); + bool fullyResolvesTo(const std::string key, uint depth); + + bool propagate(const std::string key, uint depth) + { + return skip(key) ? true : (depth < size()) || (mKeys[depth] == "**"); + } + bool skip(const std::string &key) const { return key == "__"; } + +private: + bool isGlobstar(uint depth) const { return mKeys[depth] == "**"; } + bool isGlob(uint depth) const { return mKeys[depth] == "*"; } + bool endsWithGlobstar() const { return mKeys.back() == "**"; } + size_t size() const { return mKeys.size() - 1; } + +private: + std::vector mKeys; +}; + +#endif // LOTTIEKEYPATH_H diff --git a/external/rlottie/src/lottie/lottieloader.cpp b/external/rlottie/src/lottie/lottieloader.cpp new file mode 100644 index 000000000..8a52949e7 --- /dev/null +++ b/external/rlottie/src/lottie/lottieloader.cpp @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include + +#include "lottiemodel.h" + +using namespace rlottie::internal; + +#ifdef LOTTIE_CACHE_SUPPORT + +#include +#include + +class ModelCache { +public: + static ModelCache &instance() + { + static ModelCache singleton; + return singleton; + } + std::shared_ptr find(const std::string &key) + { + std::lock_guard guard(mMutex); + + if (!mcacheSize) return nullptr; + + auto search = mHash.find(key); + + return (search != mHash.end()) ? search->second : nullptr; + } + void add(const std::string &key, std::shared_ptr value) + { + std::lock_guard guard(mMutex); + + if (!mcacheSize) return; + + //@TODO just remove the 1st element + // not the best of LRU logic + if (mcacheSize == mHash.size()) mHash.erase(mHash.cbegin()); + + mHash[key] = std::move(value); + } + + void configureCacheSize(size_t cacheSize) + { + std::lock_guard guard(mMutex); + mcacheSize = cacheSize; + + if (!mcacheSize) mHash.clear(); + } + +private: + ModelCache() = default; + + std::unordered_map> mHash; + std::mutex mMutex; + size_t mcacheSize{10}; +}; + +#else + +class ModelCache { +public: + static ModelCache &instance() + { + static ModelCache singleton; + return singleton; + } + std::shared_ptr find(const std::string &) + { + return nullptr; + } + void add(const std::string &, std::shared_ptr) {} + void configureCacheSize(size_t) {} +}; + +#endif + +static std::string dirname(const std::string &path) +{ + const char *ptr = strrchr(path.c_str(), '/'); +#ifdef _WIN32 + if (ptr) ptr = strrchr(ptr + 1, '\\'); +#endif + int len = int(ptr + 1 - path.c_str()); // +1 to include '/' + return std::string(path, 0, len); +} + +void model::configureModelCacheSize(size_t cacheSize) +{ + ModelCache::instance().configureCacheSize(cacheSize); +} + +std::shared_ptr model::loadFromFile(const std::string &path, + bool cachePolicy) +{ + if (cachePolicy) { + auto obj = ModelCache::instance().find(path); + if (obj) return obj; + } + + std::ifstream f; + f.open(path); + + if (!f.is_open()) { + vCritical << "failed to open file = " << path.c_str(); + return {}; + } else { + std::string content; + + std::getline(f, content, '\0'); + f.close(); + + if (content.empty()) return {}; + + auto obj = internal::model::parse(const_cast(content.c_str()), + dirname(path)); + + if (obj && cachePolicy) ModelCache::instance().add(path, obj); + + return obj; + } +} + +std::shared_ptr model::loadFromData( + std::string jsonData, const std::string &key, std::string resourcePath, + bool cachePolicy) +{ + if (cachePolicy) { + auto obj = ModelCache::instance().find(key); + if (obj) return obj; + } + + auto obj = internal::model::parse(const_cast(jsonData.c_str()), + std::move(resourcePath)); + + if (obj && cachePolicy) ModelCache::instance().add(key, obj); + + return obj; +} + +std::shared_ptr model::loadFromData( + std::string jsonData, std::string resourcePath, model::ColorFilter filter) +{ + return internal::model::parse(const_cast(jsonData.c_str()), + std::move(resourcePath), std::move(filter)); +} diff --git a/external/rlottie/src/lottie/lottiemodel.cpp b/external/rlottie/src/lottie/lottiemodel.cpp new file mode 100644 index 000000000..e2b48e64b --- /dev/null +++ b/external/rlottie/src/lottie/lottiemodel.cpp @@ -0,0 +1,390 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "lottiemodel.h" +#include +#include +#include +#include "vimageloader.h" +#include "vline.h" + +using namespace rlottie::internal; + +/* + * We process the iterator objects in the children list + * by iterating from back to front. when we find a repeater object + * we remove the objects from satrt till repeater object and then place + * under a new shape group object which we add it as children to the repeater + * object. + * Then we visit the childrens of the newly created shape group object to + * process the remaining repeater object(when children list contains more than + * one repeater). + * + */ +class LottieRepeaterProcesser { +public: + void visitChildren(model::Group *obj) + { + for (auto i = obj->mChildren.rbegin(); i != obj->mChildren.rend(); + ++i) { + auto child = (*i); + if (child->type() == model::Object::Type::Repeater) { + model::Repeater *repeater = + static_cast(child); + // check if this repeater is already processed + // can happen if the layer is an asset and referenced by + // multiple layer. + if (repeater->processed()) continue; + + repeater->markProcessed(); + + auto content = repeater->content(); + // 1. increment the reverse iterator to point to the + // object before the repeater + ++i; + // 2. move all the children till repater to the group + std::move(obj->mChildren.begin(), i.base(), + back_inserter(content->mChildren)); + // 3. erase the objects from the original children list + obj->mChildren.erase(obj->mChildren.begin(), i.base()); + + // 5. visit newly created group to process remaining repeater + // object. + visitChildren(content); + // 6. exit the loop as the current iterators are invalid + break; + } + visit(child); + } + } + + void visit(model::Object *obj) + { + switch (obj->type()) { + case model::Object::Type::Group: + case model::Object::Type::Layer: { + visitChildren(static_cast(obj)); + break; + } + default: + break; + } + } +}; + +class LottieUpdateStatVisitor { + model::Composition::Stats *stat; + +public: + explicit LottieUpdateStatVisitor(model::Composition::Stats *s) : stat(s) {} + void visitChildren(model::Group *obj) + { + for (const auto &child : obj->mChildren) { + if (child) visit(child); + } + } + void visitLayer(model::Layer *layer) + { + switch (layer->mLayerType) { + case model::Layer::Type::Precomp: + stat->precompLayerCount++; + break; + case model::Layer::Type::Null: + stat->nullLayerCount++; + break; + case model::Layer::Type::Shape: + stat->shapeLayerCount++; + break; + case model::Layer::Type::Solid: + stat->solidLayerCount++; + break; + case model::Layer::Type::Image: + stat->imageLayerCount++; + break; + default: + break; + } + visitChildren(layer); + } + void visit(model::Object *obj) + { + switch (obj->type()) { + case model::Object::Type::Layer: { + visitLayer(static_cast(obj)); + break; + } + case model::Object::Type::Repeater: { + visitChildren(static_cast(obj)->content()); + break; + } + case model::Object::Type::Group: { + visitChildren(static_cast(obj)); + break; + } + default: + break; + } + } +}; + +void model::Composition::processRepeaterObjects() +{ + LottieRepeaterProcesser visitor; + visitor.visit(mRootLayer); +} + +void model::Composition::updateStats() +{ + LottieUpdateStatVisitor visitor(&mStats); + visitor.visit(mRootLayer); +} + +VMatrix model::Repeater::Transform::matrix(int frameNo, float multiplier) const +{ + VPointF scale = mScale.value(frameNo) / 100.f; + scale.setX(std::pow(scale.x(), multiplier)); + scale.setY(std::pow(scale.y(), multiplier)); + VMatrix m; + m.translate(mPosition.value(frameNo) * multiplier) + .translate(mAnchor.value(frameNo)) + .scale(scale) + .rotate(mRotation.value(frameNo) * multiplier) + .translate(-mAnchor.value(frameNo)); + + return m; +} + +VMatrix model::Transform::Data::matrix(int frameNo, bool autoOrient) const +{ + VMatrix m; + VPointF position; + if (mExtra && mExtra->mSeparate) { + position.setX(mExtra->mSeparateX.value(frameNo)); + position.setY(mExtra->mSeparateY.value(frameNo)); + } else { + position = mPosition.value(frameNo); + } + + float angle = autoOrient ? mPosition.angle(frameNo) : 0; + if (mExtra && mExtra->m3DData) { + m.translate(position) + .rotate(mExtra->m3DRz.value(frameNo) + angle) + .rotate(mExtra->m3DRy.value(frameNo), VMatrix::Axis::Y) + .rotate(mExtra->m3DRx.value(frameNo), VMatrix::Axis::X) + .scale(mScale.value(frameNo) / 100.f) + .translate(-mAnchor.value(frameNo)); + } else { + m.translate(position) + .rotate(mRotation.value(frameNo) + angle) + .scale(mScale.value(frameNo) / 100.f) + .translate(-mAnchor.value(frameNo)); + } + return m; +} + +void model::Dash::getDashInfo(int frameNo, std::vector &result) const +{ + result.clear(); + + if (mData.empty()) return; + + if (result.capacity() < mData.size()) result.reserve(mData.size() + 1); + + for (const auto &elm : mData) result.push_back(elm.value(frameNo)); + + // if the size is even then we are missing last + // gap information which is same as the last dash value + // copy it from the last dash value. + // NOTE: last value is the offset and last-1 is the last dash value. + auto size = result.size(); + if ((size % 2) == 0) { + // copy offset value to end. + result.push_back(result.back()); + // copy dash value to gap. + result[size - 1] = result[size - 2]; + } +} + +/** + * Both the color stops and opacity stops are in the same array. + * There are {@link #colorPoints} colors sequentially as: + * [ + * ..., + * position, + * red, + * green, + * blue, + * ... + * ] + * + * The remainder of the array is the opacity stops sequentially as: + * [ + * ..., + * position, + * opacity, + * ... + * ] + */ +void model::Gradient::populate(VGradientStops &stops, int frameNo) +{ + model::Gradient::Data gradData = mGradient.value(frameNo); + auto size = gradData.mGradient.size(); + float * ptr = gradData.mGradient.data(); + int colorPoints = mColorPoints; + if (colorPoints == -1) { // for legacy bodymovin (ref: lottie-android) + colorPoints = int(size / 4); + } + auto opacityArraySize = size - colorPoints * 4; + float *opacityPtr = ptr + (colorPoints * 4); + stops.clear(); + size_t j = 0; + for (int i = 0; i < colorPoints; i++) { + float colorStop = ptr[0]; + model::Color color = model::Color(ptr[1], ptr[2], ptr[3]); + if (opacityArraySize) { + if (j == opacityArraySize) { + // already reached the end + float stop1 = opacityPtr[j - 4]; + float op1 = opacityPtr[j - 3]; + float stop2 = opacityPtr[j - 2]; + float op2 = opacityPtr[j - 1]; + if (colorStop > stop2) { + stops.push_back( + std::make_pair(colorStop, color.toColor(op2))); + } else { + float progress = (colorStop - stop1) / (stop2 - stop1); + float opacity = op1 + progress * (op2 - op1); + stops.push_back( + std::make_pair(colorStop, color.toColor(opacity))); + } + continue; + } + for (; j < opacityArraySize; j += 2) { + float opacityStop = opacityPtr[j]; + if (opacityStop < colorStop) { + // add a color using opacity stop + stops.push_back(std::make_pair( + opacityStop, color.toColor(opacityPtr[j + 1]))); + continue; + } + // add a color using color stop + if (j == 0) { + stops.push_back(std::make_pair( + colorStop, color.toColor(opacityPtr[j + 1]))); + } else { + float progress = (colorStop - opacityPtr[j - 2]) / + (opacityPtr[j] - opacityPtr[j - 2]); + float opacity = + opacityPtr[j - 1] + + progress * (opacityPtr[j + 1] - opacityPtr[j - 1]); + stops.push_back( + std::make_pair(colorStop, color.toColor(opacity))); + } + j += 2; + break; + } + } else { + stops.push_back(std::make_pair(colorStop, color.toColor())); + } + ptr += 4; + } +} + +void model::Gradient::update(std::unique_ptr &grad, int frameNo) +{ + bool init = false; + if (!grad) { + if (mGradientType == 1) + grad = std::make_unique(VGradient::Type::Linear); + else + grad = std::make_unique(VGradient::Type::Radial); + grad->mSpread = VGradient::Spread::Pad; + init = true; + } + + if (!mGradient.isStatic() || init) { + populate(grad->mStops, frameNo); + } + + if (mGradientType == 1) { // linear gradient + VPointF start = mStartPoint.value(frameNo); + VPointF end = mEndPoint.value(frameNo); + grad->linear.x1 = start.x(); + grad->linear.y1 = start.y(); + grad->linear.x2 = end.x(); + grad->linear.y2 = end.y(); + } else { // radial gradient + VPointF start = mStartPoint.value(frameNo); + VPointF end = mEndPoint.value(frameNo); + grad->radial.cx = start.x(); + grad->radial.cy = start.y(); + grad->radial.cradius = + VLine::length(start.x(), start.y(), end.x(), end.y()); + /* + * Focal point is the point lives in highlight length distance from + * center along the line (start, end) and rotated by highlight angle. + * below calculation first finds the quadrant(angle) on which the point + * lives by applying inverse slope formula then adds the rotation angle + * to find the final angle. then point is retrived using circle equation + * of center, angle and distance. + */ + float progress = mHighlightLength.value(frameNo) / 100.0f; + if (vCompare(progress, 1.0f)) progress = 0.99f; + float startAngle = VLine(start, end).angle(); + float highlightAngle = mHighlightAngle.value(frameNo); + static constexpr float K_PI = 3.1415926f; + float angle = (startAngle + highlightAngle) * (K_PI / 180.0f); + grad->radial.fx = + grad->radial.cx + std::cos(angle) * progress * grad->radial.cradius; + grad->radial.fy = + grad->radial.cy + std::sin(angle) * progress * grad->radial.cradius; + // Lottie dosen't have any focal radius concept. + grad->radial.fradius = 0; + } +} + +void model::Asset::loadImageData(std::string data) +{ + if (!data.empty()) + mBitmap = VImageLoader::instance().load(data.c_str(), data.length()); +} + +void model::Asset::loadImagePath(std::string path) +{ + if (!path.empty()) mBitmap = VImageLoader::instance().load(path.c_str()); +} + +std::vector model::Composition::layerInfoList() const +{ + if (!mRootLayer || mRootLayer->mChildren.empty()) return {}; + + std::vector result; + + result.reserve(mRootLayer->mChildren.size()); + + for (auto it : mRootLayer->mChildren) { + auto layer = static_cast(it); + result.emplace_back(layer->name(), layer->mInFrame, layer->mOutFrame); + } + + return result; +} diff --git a/external/rlottie/src/lottie/lottiemodel.h b/external/rlottie/src/lottie/lottiemodel.h new file mode 100644 index 000000000..851341476 --- /dev/null +++ b/external/rlottie/src/lottie/lottiemodel.h @@ -0,0 +1,1121 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef LOTModel_H +#define LOTModel_H + +#include +#include +#include +#include +#include +#include +#include +#include "varenaalloc.h" +#include "vbezier.h" +#include "vbrush.h" +#include "vinterpolator.h" +#include "vmatrix.h" +#include "vpath.h" +#include "vpoint.h" +#include "vrect.h" + +V_USE_NAMESPACE + +namespace rlottie { + +namespace internal { + +using Marker = std::tuple; + +using LayerInfo = Marker; + +template +inline T lerp(const T &start, const T &end, float t) +{ + return start + t * (end - start); +} + +namespace model { + +enum class MatteType : uchar { None = 0, Alpha = 1, AlphaInv, Luma, LumaInv }; + +enum class BlendMode : uchar { + Normal = 0, + Multiply = 1, + Screen = 2, + OverLay = 3 +}; + +class Color { +public: + Color() = default; + Color(float red, float green, float blue) : r(red), g(green), b(blue) {} + VColor toColor(float a = 1) + { + return VColor(uchar(255 * r), uchar(255 * g), uchar(255 * b), + uchar(255 * a)); + } + friend inline Color operator+(const Color &c1, const Color &c2); + friend inline Color operator-(const Color &c1, const Color &c2); + +public: + float r{1}; + float g{1}; + float b{1}; +}; + +inline Color operator-(const Color &c1, const Color &c2) +{ + return Color(c1.r - c2.r, c1.g - c2.g, c1.b - c2.b); +} +inline Color operator+(const Color &c1, const Color &c2) +{ + return Color(c1.r + c2.r, c1.g + c2.g, c1.b + c2.b); +} + +inline const Color operator*(const Color &c, float m) +{ + return Color(c.r * m, c.g * m, c.b * m); +} + +inline const Color operator*(float m, const Color &c) +{ + return Color(c.r * m, c.g * m, c.b * m); +} + +struct PathData { + std::vector mPoints; + bool mClosed = false; /* "c" */ + void reserve(size_t size) { mPoints.reserve(mPoints.size() + size); } + static void lerp(const PathData &start, const PathData &end, float t, + VPath &result) + { + result.reset(); + auto size = std::min(start.mPoints.size(), end.mPoints.size()); + /* reserve exact memory requirement at once + * ptSize = size + 1(size + close) + * elmSize = size/3 cubic + 1 move + 1 close + */ + result.reserve(size + 1, size / 3 + 2); + result.moveTo(start.mPoints[0] + + t * (end.mPoints[0] - start.mPoints[0])); + for (size_t i = 1; i < size; i += 3) { + result.cubicTo( + start.mPoints[i] + t * (end.mPoints[i] - start.mPoints[i]), + start.mPoints[i + 1] + + t * (end.mPoints[i + 1] - start.mPoints[i + 1]), + start.mPoints[i + 2] + + t * (end.mPoints[i + 2] - start.mPoints[i + 2])); + } + if (start.mClosed) result.close(); + } + void toPath(VPath &path) const + { + path.reset(); + + if (mPoints.empty()) return; + + auto size = mPoints.size(); + auto points = mPoints.data(); + /* reserve exact memory requirement at once + * ptSize = size + 1(size + close) + * elmSize = size/3 cubic + 1 move + 1 close + */ + path.reserve(size + 1, size / 3 + 2); + path.moveTo(points[0]); + for (size_t i = 1; i < size; i += 3) { + path.cubicTo(points[i], points[i + 1], points[i + 2]); + } + if (mClosed) path.close(); + } +}; + +template +struct Value { + T start_; + T end_; + T at(float t) const { return lerp(start_, end_, t); } + float angle(float) const { return 0; } + void cache() {} +}; + +struct Position; + +template +struct Value { + T start_; + T end_; + T inTangent_; + T outTangent_; + float length_{0}; + bool hasTangent_{false}; + + void cache() + { + if (hasTangent_) { + inTangent_ = end_ + inTangent_; + outTangent_ = start_ + outTangent_; + length_ = VBezier::fromPoints(start_, outTangent_, inTangent_, end_) + .length(); + if (vIsZero(length_)) { + // this segment has zero length. + // so disable expensive path computaion. + hasTangent_ = false; + } + } + } + + T at(float t) const + { + if (hasTangent_) { + /* + * position along the path calcualated + * using bezier at progress length (t * bezlen) + */ + VBezier b = + VBezier::fromPoints(start_, outTangent_, inTangent_, end_); + return b.pointAt(b.tAtLength(t * length_, length_)); + } + return lerp(start_, end_, t); + } + + float angle(float t) const + { + if (hasTangent_) { + VBezier b = + VBezier::fromPoints(start_, outTangent_, inTangent_, end_); + return b.angleAt(b.tAtLength(t * length_, length_)); + } + return 0; + } +}; + +template +class KeyFrames { +public: + struct Frame { + float progress(int frameNo) const + { + return interpolator_ ? interpolator_->value((frameNo - start_) / + (end_ - start_)) + : 0; + } + T value(int frameNo) const { return value_.at(progress(frameNo)); } + float angle(int frameNo) const + { + return value_.angle(progress(frameNo)); + } + + float start_{0}; + float end_{0}; + VInterpolator *interpolator_{nullptr}; + Value value_; + }; + + T value(int frameNo) const + { + if (frames_.front().start_ >= frameNo) + return frames_.front().value_.start_; + if (frames_.back().end_ <= frameNo) return frames_.back().value_.end_; + + for (const auto &keyFrame : frames_) { + if (frameNo >= keyFrame.start_ && frameNo < keyFrame.end_) + return keyFrame.value(frameNo); + } + return {}; + } + + float angle(int frameNo) const + { + if ((frames_.front().start_ >= frameNo) || + (frames_.back().end_ <= frameNo)) + return 0; + + for (const auto &frame : frames_) { + if (frameNo >= frame.start_ && frameNo < frame.end_) + return frame.angle(frameNo); + } + return 0; + } + + bool changed(int prevFrame, int curFrame) const + { + auto first = frames_.front().start_; + auto last = frames_.back().end_; + + return !((first > prevFrame && first > curFrame) || + (last < prevFrame && last < curFrame)); + } + void cache() + { + for (auto &e : frames_) e.value_.cache(); + } + +public: + std::vector frames_; +}; + +template +class Property { +public: + using Animation = KeyFrames; + + Property() { construct(impl_.value_, {}); } + explicit Property(T value) { construct(impl_.value_, std::move(value)); } + + const Animation &animation() const { return *(impl_.animation_.get()); } + const T & value() const { return impl_.value_; } + + Animation &animation() + { + if (isValue_) { + destroy(); + construct(impl_.animation_, std::make_unique()); + isValue_ = false; + } + return *(impl_.animation_.get()); + } + + T &value() + { + assert(isValue_); + return impl_.value_; + } + + Property(Property &&other) noexcept + { + if (!other.isValue_) { + construct(impl_.animation_, std::move(other.impl_.animation_)); + isValue_ = false; + } else { + construct(impl_.value_, std::move(other.impl_.value_)); + isValue_ = true; + } + } + // delete special member functions + Property(const Property &) = delete; + Property &operator=(const Property &) = delete; + Property &operator=(Property &&) = delete; + + ~Property() { destroy(); } + + bool isStatic() const { return isValue_; } + + T value(int frameNo) const + { + return isStatic() ? value() : animation().value(frameNo); + } + + // special function only for type T=PathData + template + auto value(int frameNo, VPath &path) const -> + typename std::enable_if_t::value, void> + { + if (isStatic()) { + value().toPath(path); + } else { + const auto &vec = animation().frames_; + if (vec.front().start_ >= frameNo) + return vec.front().value_.start_.toPath(path); + if (vec.back().end_ <= frameNo) + return vec.back().value_.end_.toPath(path); + + for (const auto &keyFrame : vec) { + if (frameNo >= keyFrame.start_ && frameNo < keyFrame.end_) { + T::lerp(keyFrame.value_.start_, keyFrame.value_.end_, + keyFrame.progress(frameNo), path); + } + } + } + } + + float angle(int frameNo) const + { + return isStatic() ? 0 : animation().angle(frameNo); + } + + bool changed(int prevFrame, int curFrame) const + { + return isStatic() ? false : animation().changed(prevFrame, curFrame); + } + void cache() + { + if (!isStatic()) animation().cache(); + } + +private: + template + void construct(Tp &member, Tp &&val) + { + new (&member) Tp(std::move(val)); + } + + void destroy() + { + if (isValue_) { + impl_.value_.~T(); + } else { + using std::unique_ptr; + impl_.animation_.~unique_ptr(); + } + } + union details { + std::unique_ptr animation_; + T value_; + details(){}; + details(const details &) = delete; + details(details &&) = delete; + details &operator=(details &&) = delete; + details &operator=(const details &) = delete; + ~details() noexcept {}; + } impl_; + bool isValue_{true}; +}; + +class Path; +struct PathData; +struct Dash { + std::vector> mData; + bool empty() const { return mData.empty(); } + size_t size() const { return mData.size(); } + bool isStatic() const + { + for (const auto &elm : mData) + if (!elm.isStatic()) return false; + return true; + } + void getDashInfo(int frameNo, std::vector &result) const; +}; + +class Mask { +public: + enum class Mode { None, Add, Substarct, Intersect, Difference }; + float opacity(int frameNo) const + { + return mOpacity.value(frameNo) / 100.0f; + } + bool isStatic() const { return mIsStatic; } + +public: + Property mShape; + Property mOpacity{100}; + bool mInv{false}; + bool mIsStatic{true}; + Mask::Mode mMode; +}; + +class Object { +public: + enum class Type : unsigned char { + Composition = 1, + Layer, + Group, + Transform, + Fill, + Stroke, + GFill, + GStroke, + Rect, + Ellipse, + Path, + Polystar, + Trim, + Repeater + }; + + explicit Object(Object::Type type) : mPtr(nullptr) + { + mData._type = type; + mData._static = true; + mData._shortString = true; + mData._hidden = false; + } + ~Object() noexcept + { + if (!shortString() && mPtr) free(mPtr); + } + Object(const Object &) = delete; + Object &operator=(const Object &) = delete; + + void setStatic(bool value) { mData._static = value; } + bool isStatic() const { return mData._static; } + bool hidden() const { return mData._hidden; } + void setHidden(bool value) { mData._hidden = value; } + void setType(Object::Type type) { mData._type = type; } + Object::Type type() const { return mData._type; } + void setName(const char *name) + { + if (name) { + auto len = strlen(name); + if (len < maxShortStringLength) { + setShortString(true); + strncpy(mData._buffer, name, len + 1); + } else { + setShortString(false); + mPtr = strdup(name); + } + } + } + const char *name() const { return shortString() ? mData._buffer : mPtr; } + +private: + static constexpr unsigned char maxShortStringLength = 14; + void setShortString(bool value) { mData._shortString = value; } + bool shortString() const { return mData._shortString; } + struct Data { + char _buffer[maxShortStringLength]; + Object::Type _type; + bool _static : 1; + bool _hidden : 1; + bool _shortString : 1; + }; + union { + Data mData; + char *mPtr{nullptr}; + }; +}; + +struct Asset { + enum class Type : unsigned char { Precomp, Image, Char }; + bool isStatic() const { return mStatic; } + void setStatic(bool value) { mStatic = value; } + VBitmap bitmap() const { return mBitmap; } + void loadImageData(std::string data); + void loadImagePath(std::string Path); + Type mAssetType{Type::Precomp}; + bool mStatic{true}; + std::string mRefId; // ref id + std::vector mLayers; + // image asset data + int mWidth{0}; + int mHeight{0}; + VBitmap mBitmap; +}; + +class Layer; + +class Composition : public Object { +public: + Composition() : Object(Object::Type::Composition) {} + std::vector layerInfoList() const; + const std::vector &markers() const { return mMarkers; } + double duration() const + { + return frameDuration() / frameRate(); // in second + } + size_t frameAtPos(double pos) const + { + if (pos < 0) pos = 0; + if (pos > 1) pos = 1; + return size_t(round(pos * frameDuration())); + } + long frameAtTime(double timeInSec) const + { + return long(frameAtPos(timeInSec / duration())); + } + size_t totalFrame() const { return mEndFrame - mStartFrame; } + long frameDuration() const { return mEndFrame - mStartFrame - 1; } + float frameRate() const { return mFrameRate; } + size_t startFrame() const { return mStartFrame; } + size_t endFrame() const { return mEndFrame; } + VSize size() const { return mSize; } + void processRepeaterObjects(); + void updateStats(); + +public: + struct Stats { + uint16_t precompLayerCount{0}; + uint16_t solidLayerCount{0}; + uint16_t shapeLayerCount{0}; + uint16_t imageLayerCount{0}; + uint16_t nullLayerCount{0}; + }; + +public: + std::string mVersion; + VSize mSize; + long mStartFrame{0}; + long mEndFrame{0}; + float mFrameRate{60}; + BlendMode mBlendMode{BlendMode::Normal}; + Layer * mRootLayer{nullptr}; + std::unordered_map mAssets; + + std::vector mMarkers; + VArenaAlloc mArenaAlloc{2048}; + Stats mStats; +}; + +class Transform : public Object { +public: + struct Data { + struct Extra { + Property m3DRx{0}; + Property m3DRy{0}; + Property m3DRz{0}; + Property mSeparateX{0}; + Property mSeparateY{0}; + bool mSeparate{false}; + bool m3DData{false}; + }; + VMatrix matrix(int frameNo, bool autoOrient = false) const; + float opacity(int frameNo) const + { + return mOpacity.value(frameNo) / 100.0f; + } + void createExtraData() + { + if (!mExtra) mExtra = std::make_unique(); + } + Property mRotation{0}; /* "r" */ + Property mScale{{100, 100}}; /* "s" */ + Property mPosition; /* "p" */ + Property mAnchor; /* "a" */ + Property mOpacity{100}; /* "o" */ + std::unique_ptr mExtra; + }; + + Transform() : Object(Object::Type::Transform) {} + void set(Transform::Data *data, bool staticFlag) + { + setStatic(staticFlag); + if (isStatic()) { + new (&impl.mStaticData) + StaticData(data->matrix(0), data->opacity(0)); + } else { + impl.mData = data; + } + } + VMatrix matrix(int frameNo, bool autoOrient = false) const + { + if (isStatic()) return impl.mStaticData.mMatrix; + return impl.mData->matrix(frameNo, autoOrient); + } + float opacity(int frameNo) const + { + if (isStatic()) return impl.mStaticData.mOpacity; + return impl.mData->opacity(frameNo); + } + Transform(const Transform &) = delete; + Transform(Transform &&) = delete; + Transform &operator=(Transform &) = delete; + Transform &operator=(Transform &&) = delete; + ~Transform() noexcept { destroy(); } + +private: + void destroy() + { + if (isStatic()) { + impl.mStaticData.~StaticData(); + } + } + struct StaticData { + StaticData(VMatrix &&m, float opacity) + : mOpacity(opacity), mMatrix(std::move(m)) + { + } + float mOpacity; + VMatrix mMatrix; + }; + union details { + Data * mData{nullptr}; + StaticData mStaticData; + details(){}; + details(const details &) = delete; + details(details &&) = delete; + details &operator=(details &&) = delete; + details &operator=(const details &) = delete; + ~details() noexcept {}; + } impl; +}; + +class Group : public Object { +public: + Group() : Object(Object::Type::Group) {} + explicit Group(Object::Type type) : Object(type) {} + +public: + std::vector mChildren; + Transform * mTransform{nullptr}; +}; + +class Layer : public Group { +public: + enum class Type : uchar { + Precomp = 0, + Solid = 1, + Image = 2, + Null = 3, + Shape = 4, + Text = 5 + }; + Layer() : Group(Object::Type::Layer) {} + bool hasPathOperator() const noexcept { return mHasPathOperator; } + bool hasGradient() const noexcept { return mHasGradient; } + bool hasMask() const noexcept { return mHasMask; } + bool hasRepeater() const noexcept { return mHasRepeater; } + int id() const noexcept { return mId; } + int parentId() const noexcept { return mParentId; } + bool hasParent() const noexcept { return mParentId != -1; } + int inFrame() const noexcept { return mInFrame; } + int outFrame() const noexcept { return mOutFrame; } + int startFrame() const noexcept { return mStartFrame; } + Color solidColor() const noexcept { return mExtra->mSolidColor; } + bool autoOrient() const noexcept { return mAutoOrient; } + int timeRemap(int frameNo) const; + VSize layerSize() const { return mLayerSize; } + bool precompLayer() const { return mLayerType == Type::Precomp; } + VMatrix matrix(int frameNo) const + { + return mTransform ? mTransform->matrix(frameNo, autoOrient()) + : VMatrix{}; + } + float opacity(int frameNo) const + { + return mTransform ? mTransform->opacity(frameNo) : 1.0f; + } + Asset *asset() const + { + return (mExtra && mExtra->mAsset) ? mExtra->mAsset : nullptr; + } + struct Extra { + Color mSolidColor; + std::string mPreCompRefId; + Property mTimeRemap; /* "tm" */ + Composition * mCompRef{nullptr}; + Asset * mAsset{nullptr}; + std::vector mMasks; + }; + + Layer::Extra *extra() + { + if (!mExtra) mExtra = std::make_unique(); + return mExtra.get(); + } + +public: + MatteType mMatteType{MatteType::None}; + Type mLayerType{Layer::Type::Null}; + BlendMode mBlendMode{BlendMode::Normal}; + bool mHasPathOperator{false}; + bool mHasMask{false}; + bool mHasRepeater{false}; + bool mHasGradient{false}; + bool mAutoOrient{false}; + VSize mLayerSize; + int mParentId{-1}; // Lottie the id of the parent in the composition + int mId{-1}; // Lottie the group id used for parenting. + float mTimeStreatch{1.0f}; + int mInFrame{0}; + int mOutFrame{0}; + int mStartFrame{0}; + std::unique_ptr mExtra{nullptr}; +}; + +/** + * TimeRemap has the value in time domain(in sec) + * To get the proper mapping first we get the mapped time at the current frame + * Number then we need to convert mapped time to frame number using the + * composition time line Ex: at frame 10 the mappend time is 0.5(500 ms) which + * will be convert to frame number 30 if the frame rate is 60. or will result to + * frame number 15 if the frame rate is 30. + */ +inline int Layer::timeRemap(int frameNo) const +{ + /* + * only consider startFrame() when there is no timeRemap. + * when a layer has timeremap bodymovin updates the startFrame() + * of all child layer so we don't have to take care of it. + */ + if (!mExtra || mExtra->mTimeRemap.isStatic()) + frameNo = frameNo - startFrame(); + else + frameNo = + mExtra->mCompRef->frameAtTime(mExtra->mTimeRemap.value(frameNo)); + /* Apply time streatch if it has any. + * Time streatch is just a factor by which the animation will speedup or + * slow down with respect to the overal animation. Time streach factor is + * already applied to the layers inFrame and outFrame. + * @TODO need to find out if timestreatch also affects the in and out frame + * of the child layers or not. */ + return int(frameNo / mTimeStreatch); +} + +class Stroke : public Object { +public: + Stroke() : Object(Object::Type::Stroke) {} + Color color(int frameNo) const { return mColor.value(frameNo); } + float opacity(int frameNo) const + { + return mOpacity.value(frameNo) / 100.0f; + } + float strokeWidth(int frameNo) const { return mWidth.value(frameNo); } + CapStyle capStyle() const { return mCapStyle; } + JoinStyle joinStyle() const { return mJoinStyle; } + float miterLimit() const { return mMiterLimit; } + bool hasDashInfo() const { return !mDash.empty(); } + void getDashInfo(int frameNo, std::vector &result) const + { + return mDash.getDashInfo(frameNo, result); + } + +public: + Property mColor; /* "c" */ + Property mOpacity{100}; /* "o" */ + Property mWidth{0}; /* "w" */ + CapStyle mCapStyle{CapStyle::Flat}; /* "lc" */ + JoinStyle mJoinStyle{JoinStyle::Miter}; /* "lj" */ + float mMiterLimit{0}; /* "ml" */ + Dash mDash; + bool mEnabled{true}; /* "fillEnabled" */ +}; + +class Gradient : public Object { +public: + class Data { + public: + friend inline Gradient::Data operator+(const Gradient::Data &g1, + const Gradient::Data &g2); + friend inline Gradient::Data operator-(const Gradient::Data &g1, + const Gradient::Data &g2); + friend inline Gradient::Data operator*(float m, + const Gradient::Data &g); + + public: + std::vector mGradient; + }; + explicit Gradient(Object::Type type) : Object(type) {} + inline float opacity(int frameNo) const + { + return mOpacity.value(frameNo) / 100.0f; + } + void update(std::unique_ptr &grad, int frameNo); + +private: + void populate(VGradientStops &stops, int frameNo); + +public: + int mGradientType{1}; /* "t" Linear=1 , Radial = 2*/ + Property mStartPoint; /* "s" */ + Property mEndPoint; /* "e" */ + Property mHighlightLength{0}; /* "h" */ + Property mHighlightAngle{0}; /* "a" */ + Property mOpacity{100}; /* "o" */ + Property mGradient; /* "g" */ + int mColorPoints{-1}; + bool mEnabled{true}; /* "fillEnabled" */ +}; + +class GradientStroke : public Gradient { +public: + GradientStroke() : Gradient(Object::Type::GStroke) {} + float width(int frameNo) const { return mWidth.value(frameNo); } + CapStyle capStyle() const { return mCapStyle; } + JoinStyle joinStyle() const { return mJoinStyle; } + float miterLimit() const { return mMiterLimit; } + bool hasDashInfo() const { return !mDash.empty(); } + void getDashInfo(int frameNo, std::vector &result) const + { + return mDash.getDashInfo(frameNo, result); + } + +public: + Property mWidth; /* "w" */ + CapStyle mCapStyle{CapStyle::Flat}; /* "lc" */ + JoinStyle mJoinStyle{JoinStyle::Miter}; /* "lj" */ + float mMiterLimit{0}; /* "ml" */ + Dash mDash; +}; + +class GradientFill : public Gradient { +public: + GradientFill() : Gradient(Object::Type::GFill) {} + FillRule fillRule() const { return mFillRule; } + +public: + FillRule mFillRule{FillRule::Winding}; /* "r" */ +}; + +class Fill : public Object { +public: + Fill() : Object(Object::Type::Fill) {} + Color color(int frameNo) const { return mColor.value(frameNo); } + float opacity(int frameNo) const + { + return mOpacity.value(frameNo) / 100.0f; + } + FillRule fillRule() const { return mFillRule; } + +public: + FillRule mFillRule{FillRule::Winding}; /* "r" */ + bool mEnabled{true}; /* "fillEnabled" */ + Property mColor; /* "c" */ + Property mOpacity{100}; /* "o" */ +}; + +class Shape : public Object { +public: + explicit Shape(Object::Type type) : Object(type) {} + VPath::Direction direction() + { + return (mDirection == 3) ? VPath::Direction::CCW : VPath::Direction::CW; + } + +public: + int mDirection{1}; +}; + +class Path : public Shape { +public: + Path() : Shape(Object::Type::Path) {} + +public: + Property mShape; +}; + +class Rect : public Shape { +public: + Rect() : Shape(Object::Type::Rect) {} + +public: + Property mPos; + Property mSize; + Property mRound{0}; +}; + +class Ellipse : public Shape { +public: + Ellipse() : Shape(Object::Type::Ellipse) {} + +public: + Property mPos; + Property mSize; +}; + +class Polystar : public Shape { +public: + enum class PolyType { Star = 1, Polygon = 2 }; + Polystar() : Shape(Object::Type::Polystar) {} + +public: + Polystar::PolyType mPolyType{PolyType::Polygon}; + Property mPos; + Property mPointCount{0}; + Property mInnerRadius{0}; + Property mOuterRadius{0}; + Property mInnerRoundness{0}; + Property mOuterRoundness{0}; + Property mRotation{0}; +}; + +class Repeater : public Object { +public: + struct Transform { + VMatrix matrix(int frameNo, float multiplier) const; + float startOpacity(int frameNo) const + { + return mStartOpacity.value(frameNo) / 100; + } + float endOpacity(int frameNo) const + { + return mEndOpacity.value(frameNo) / 100; + } + bool isStatic() const + { + return mRotation.isStatic() && mScale.isStatic() && + mPosition.isStatic() && mAnchor.isStatic() && + mStartOpacity.isStatic() && mEndOpacity.isStatic(); + } + Property mRotation{0}; /* "r" */ + Property mScale{{100, 100}}; /* "s" */ + Property mPosition; /* "p" */ + Property mAnchor; /* "a" */ + Property mStartOpacity{100}; /* "so" */ + Property mEndOpacity{100}; /* "eo" */ + }; + Repeater() : Object(Object::Type::Repeater) {} + Group *content() const { return mContent ? mContent : nullptr; } + void setContent(Group *content) { mContent = content; } + int maxCopies() const { return int(mMaxCopies); } + float copies(int frameNo) const { return mCopies.value(frameNo); } + float offset(int frameNo) const { return mOffset.value(frameNo); } + bool processed() const { return mProcessed; } + void markProcessed() { mProcessed = true; } + +public: + Group * mContent{nullptr}; + Transform mTransform; + Property mCopies{0}; + Property mOffset{0}; + float mMaxCopies{0.0}; + bool mProcessed{false}; +}; + +class Trim : public Object { +public: + struct Segment { + float start{0}; + float end{0}; + Segment() = default; + explicit Segment(float s, float e) : start(s), end(e) {} + }; + enum class TrimType { Simultaneously, Individually }; + Trim() : Object(Object::Type::Trim) {} + /* + * if start > end vector trims the path as a loop ( 2 segment) + * if start < end vector trims the path without loop ( 1 segment). + * if no offset then there is no loop. + */ + Segment segment(int frameNo) const + { + float start = mStart.value(frameNo) / 100.0f; + float end = mEnd.value(frameNo) / 100.0f; + float offset = std::fmod(mOffset.value(frameNo), 360.0f) / 360.0f; + + float diff = std::abs(start - end); + if (vCompare(diff, 0.0f)) return Segment(0, 0); + if (vCompare(diff, 1.0f)) return Segment(0, 1); + + if (offset > 0) { + start += offset; + end += offset; + if (start <= 1 && end <= 1) { + return noloop(start, end); + } else if (start > 1 && end > 1) { + return noloop(start - 1, end - 1); + } else { + return (start > 1) ? loop(start - 1, end) + : loop(start, end - 1); + } + } else { + start += offset; + end += offset; + if (start >= 0 && end >= 0) { + return noloop(start, end); + } else if (start < 0 && end < 0) { + return noloop(1 + start, 1 + end); + } else { + return (start < 0) ? loop(1 + start, end) + : loop(start, 1 + end); + } + } + } + Trim::TrimType type() const { return mTrimType; } + +private: + Segment noloop(float start, float end) const + { + assert(start >= 0); + assert(end >= 0); + Segment s; + s.start = std::min(start, end); + s.end = std::max(start, end); + return s; + } + Segment loop(float start, float end) const + { + assert(start >= 0); + assert(end >= 0); + Segment s; + s.start = std::max(start, end); + s.end = std::min(start, end); + return s; + } + +public: + Property mStart{0}; + Property mEnd{0}; + Property mOffset{0}; + Trim::TrimType mTrimType{TrimType::Simultaneously}; +}; + +inline Gradient::Data operator+(const Gradient::Data &g1, + const Gradient::Data &g2) +{ + if (g1.mGradient.size() != g2.mGradient.size()) return g1; + + Gradient::Data newG; + newG.mGradient = g1.mGradient; + + auto g2It = g2.mGradient.begin(); + for (auto &i : newG.mGradient) { + i = i + *g2It; + g2It++; + } + + return newG; +} + +inline Gradient::Data operator-(const Gradient::Data &g1, + const Gradient::Data &g2) +{ + if (g1.mGradient.size() != g2.mGradient.size()) return g1; + Gradient::Data newG; + newG.mGradient = g1.mGradient; + + auto g2It = g2.mGradient.begin(); + for (auto &i : newG.mGradient) { + i = i - *g2It; + g2It++; + } + + return newG; +} + +inline Gradient::Data operator*(float m, const Gradient::Data &g) +{ + Gradient::Data newG; + newG.mGradient = g.mGradient; + + for (auto &i : newG.mGradient) { + i = i * m; + } + return newG; +} + +using ColorFilter = std::function; + +void configureModelCacheSize(size_t cacheSize); + +std::shared_ptr loadFromFile(const std::string &filePath, + bool cachePolicy); + +std::shared_ptr loadFromData(std::string jsonData, + const std::string &key, + std::string resourcePath, + bool cachePolicy); + +std::shared_ptr loadFromData(std::string jsonData, + std::string resourcePath, + ColorFilter filter); + +std::shared_ptr parse(char *str, std::string dir_path, + ColorFilter filter = {}); + +} // namespace model + +} // namespace internal + +} // namespace rlottie + +#endif // LOTModel_H diff --git a/external/rlottie/src/lottie/lottieparser.cpp b/external/rlottie/src/lottie/lottieparser.cpp new file mode 100644 index 000000000..e5ef03774 --- /dev/null +++ b/external/rlottie/src/lottie/lottieparser.cpp @@ -0,0 +1,2382 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +//#define DEBUG_PARSER + +// This parser implements JSON token-by-token parsing with an API that is +// more direct; we don't have to create handler object and +// callbacks. Instead, we retrieve values from the JSON stream by calling +// GetInt(), GetDouble(), GetString() and GetBool(), traverse into structures +// by calling EnterObject() and EnterArray(), and skip over unwanted data by +// calling SkipValue(). As we know the lottie file structure this way will be +// the efficient way of parsing the file. +// +// If you aren't sure of what's next in the JSON data, you can use PeekType() +// and PeekValue() to look ahead to the next object before reading it. +// +// If you call the wrong retrieval method--e.g. GetInt when the next JSON token +// is not an int, EnterObject or EnterArray when there isn't actually an object +// or array to read--the stream parsing will end immediately and no more data +// will be delivered. +// +// After calling EnterObject, you retrieve keys via NextObjectKey() and values +// via the normal getters. When NextObjectKey() returns null, you have exited +// the object, or you can call SkipObject() to skip to the end of the object +// immediately. If you fetch the entire object (i.e. NextObjectKey() returned +// null), you should not call SkipObject(). +// +// After calling EnterArray(), you must alternate between calling +// NextArrayValue() to see if the array has more data, and then retrieving +// values via the normal getters. You can call SkipArray() to skip to the end of +// the array immediately. If you fetch the entire array (i.e. NextArrayValue() +// returned null), you should not call SkipArray(). +// +// This parser uses in-situ strings, so the JSON buffer will be altered during +// the parse. + +#include + +#include "lottiemodel.h" +#include "rapidjson/document.h" + +RAPIDJSON_DIAG_PUSH +#ifdef __GNUC__ +RAPIDJSON_DIAG_OFF(effc++) +#endif + +using namespace rapidjson; + +using namespace rlottie::internal; + +class LookaheadParserHandler { +public: + bool Null() + { + st_ = kHasNull; + v_.SetNull(); + return true; + } + bool Bool(bool b) + { + st_ = kHasBool; + v_.SetBool(b); + return true; + } + bool Int(int i) + { + st_ = kHasNumber; + v_.SetInt(i); + return true; + } + bool Uint(unsigned u) + { + st_ = kHasNumber; + v_.SetUint(u); + return true; + } + bool Int64(int64_t i) + { + st_ = kHasNumber; + v_.SetInt64(i); + return true; + } + bool Uint64(int64_t u) + { + st_ = kHasNumber; + v_.SetUint64(u); + return true; + } + bool Double(double d) + { + st_ = kHasNumber; + v_.SetDouble(d); + return true; + } + bool RawNumber(const char *, SizeType, bool) { return false; } + bool String(const char *str, SizeType length, bool) + { + st_ = kHasString; + v_.SetString(str, length); + return true; + } + bool StartObject() + { + st_ = kEnteringObject; + return true; + } + bool Key(const char *str, SizeType length, bool) + { + st_ = kHasKey; + v_.SetString(str, length); + return true; + } + bool EndObject(SizeType) + { + st_ = kExitingObject; + return true; + } + bool StartArray() + { + st_ = kEnteringArray; + return true; + } + bool EndArray(SizeType) + { + st_ = kExitingArray; + return true; + } + +protected: + explicit LookaheadParserHandler(char *str); + +protected: + enum LookaheadParsingState { + kInit, + kError, + kHasNull, + kHasBool, + kHasNumber, + kHasString, + kHasKey, + kEnteringObject, + kExitingObject, + kEnteringArray, + kExitingArray + }; + + Value v_; + LookaheadParsingState st_; + Reader r_; + InsituStringStream ss_; + + static const int parseFlags = kParseDefaultFlags | kParseInsituFlag; +}; + +class LottieParserImpl : public LookaheadParserHandler { +public: + LottieParserImpl(char *str, std::string dir_path, model::ColorFilter filter) + : LookaheadParserHandler(str), + mColorFilter(std::move(filter)), + mDirPath(std::move(dir_path)) + { + } + bool VerifyType(); + bool ParseNext(); + +public: + VArenaAlloc &allocator() { return compRef->mArenaAlloc; } + bool EnterObject(); + bool EnterArray(); + const char * NextObjectKey(); + bool NextArrayValue(); + int GetInt(); + double GetDouble(); + const char * GetString(); + bool GetBool(); + void GetNull(); + + void SkipObject(); + void SkipArray(); + void SkipValue(); + Value *PeekValue(); + int PeekType() const; + bool IsValid() { return st_ != kError; } + + void Skip(const char *key); + model::BlendMode getBlendMode(); + CapStyle getLineCap(); + JoinStyle getLineJoin(); + FillRule getFillRule(); + model::Trim::TrimType getTrimType(); + model::MatteType getMatteType(); + model::Layer::Type getLayerType(); + + std::shared_ptr composition() const + { + return mComposition; + } + void parseComposition(); + void parseMarkers(); + void parseMarker(); + void parseAssets(model::Composition *comp); + model::Asset * parseAsset(); + void parseLayers(model::Composition *comp); + model::Layer * parseLayer(); + void parseMaskProperty(model::Layer *layer); + void parseShapesAttr(model::Layer *layer); + void parseObject(model::Group *parent); + model::Mask * parseMaskObject(); + model::Object * parseObjectTypeAttr(); + model::Object * parseGroupObject(); + model::Rect * parseRectObject(); + model::Ellipse * parseEllipseObject(); + model::Path * parseShapeObject(); + model::Polystar *parsePolystarObject(); + + model::Transform * parseTransformObject(bool ddd = false); + model::Fill * parseFillObject(); + model::GradientFill * parseGFillObject(); + model::Stroke * parseStrokeObject(); + model::GradientStroke *parseGStrokeObject(); + model::Trim * parseTrimObject(); + model::Repeater * parseReapeaterObject(); + + void parseGradientProperty(model::Gradient *gradient, const char *key); + + VPointF parseInperpolatorPoint(); + + void getValue(VPointF &pt); + void getValue(float &fval); + void getValue(model::Color &color); + void getValue(int &ival); + void getValue(model::PathData &shape); + void getValue(model::Gradient::Data &gradient); + void getValue(std::vector &v); + void getValue(model::Repeater::Transform &); + + template + bool parseKeyFrameValue(const char *, model::Value &) + { + return false; + } + + template + bool parseKeyFrameValue(const char * key, + model::Value &value); + template + void parseKeyFrame(model::KeyFrames &obj); + template + void parseProperty(model::Property &obj); + template + void parsePropertyHelper(model::Property &obj); + + void parseShapeProperty(model::Property &obj); + void parseDashProperty(model::Dash &dash); + + VInterpolator *interpolator(VPointF, VPointF, std::string); + + model::Color toColor(const char *str); + + void resolveLayerRefs(); + void parsePathInfo(); + +private: + model::ColorFilter mColorFilter; + struct { + std::vector mInPoint; /* "i" */ + std::vector mOutPoint; /* "o" */ + std::vector mVertices; /* "v" */ + std::vector mResult; + bool mClosed{false}; + + void convert() + { + // shape data could be empty. + if (mInPoint.empty() || mOutPoint.empty() || mVertices.empty()) { + mResult.clear(); + return; + } + + /* + * Convert the AE shape format to + * list of bazier curves + * The final structure will be Move +size*Cubic + Cubic (if the path + * is closed one) + */ + if (mInPoint.size() != mOutPoint.size() || + mInPoint.size() != mVertices.size()) { + mResult.clear(); + } else { + auto size = mVertices.size(); + mResult.push_back(mVertices[0]); + for (size_t i = 1; i < size; i++) { + mResult.push_back( + mVertices[i - 1] + + mOutPoint[i - 1]); // CP1 = start + outTangent + mResult.push_back(mVertices[i] + + mInPoint[i]); // CP2 = end + inTangent + mResult.push_back(mVertices[i]); // end point + } + + if (mClosed) { + mResult.push_back( + mVertices[size - 1] + + mOutPoint[size - 1]); // CP1 = start + outTangent + mResult.push_back(mVertices[0] + + mInPoint[0]); // CP2 = end + inTangent + mResult.push_back(mVertices[0]); // end point + } + } + } + void reset() + { + mInPoint.clear(); + mOutPoint.clear(); + mVertices.clear(); + mResult.clear(); + mClosed = false; + } + void updatePath(VPath &out) + { + if (mResult.empty()) return; + + auto size = mResult.size(); + auto points = mResult.data(); + /* reserve exact memory requirement at once + * ptSize = size + 1(size + close) + * elmSize = size/3 cubic + 1 move + 1 close + */ + out.reserve(size + 1, size / 3 + 2); + out.moveTo(points[0]); + for (size_t i = 1; i < size; i += 3) { + out.cubicTo(points[i], points[i + 1], points[i + 2]); + } + if (mClosed) out.close(); + } + } mPathInfo; + +protected: + std::unordered_map mInterpolatorCache; + std::shared_ptr mComposition; + model::Composition * compRef{nullptr}; + model::Layer * curLayerRef{nullptr}; + std::vector mLayersToUpdate; + std::string mDirPath; + void SkipOut(int depth); +}; + +LookaheadParserHandler::LookaheadParserHandler(char *str) + : v_(), st_(kInit), ss_(str) +{ + r_.IterativeParseInit(); +} + +bool LottieParserImpl::VerifyType() +{ + /* Verify the media type is lottie json. + Could add more strict check. */ + return ParseNext(); +} + +bool LottieParserImpl::ParseNext() +{ + if (r_.HasParseError()) { + st_ = kError; + return false; + } + + if (!r_.IterativeParseNext(ss_, *this)) { + vCritical << "Lottie file parsing error"; + st_ = kError; + return false; + } + return true; +} + +bool LottieParserImpl::EnterObject() +{ + if (st_ != kEnteringObject) { + st_ = kError; + RAPIDJSON_ASSERT(false); + return false; + } + + ParseNext(); + return true; +} + +bool LottieParserImpl::EnterArray() +{ + if (st_ != kEnteringArray) { + st_ = kError; + RAPIDJSON_ASSERT(false); + return false; + } + + ParseNext(); + return true; +} + +const char *LottieParserImpl::NextObjectKey() +{ + if (st_ == kHasKey) { + const char *result = v_.GetString(); + ParseNext(); + return result; + } + + /* SPECIAL CASE + * The parser works with a prdefined rule that it will be only + * while (NextObjectKey()) for each object but in case of our nested group + * object we can call multiple time NextObjectKey() while exiting the object + * so ignore those and don't put parser in the error state. + * */ + if (st_ == kExitingArray || st_ == kEnteringObject) { + // #ifdef DEBUG_PARSER + // vDebug<<"Object: Exiting nested loop"; + // #endif + return nullptr; + } + + if (st_ != kExitingObject) { + RAPIDJSON_ASSERT(false); + st_ = kError; + return nullptr; + } + + ParseNext(); + return nullptr; +} + +bool LottieParserImpl::NextArrayValue() +{ + if (st_ == kExitingArray) { + ParseNext(); + return false; + } + + /* SPECIAL CASE + * same as NextObjectKey() + */ + if (st_ == kExitingObject) { + return false; + } + + if (st_ == kError || st_ == kHasKey) { + RAPIDJSON_ASSERT(false); + st_ = kError; + return false; + } + + return true; +} + +int LottieParserImpl::GetInt() +{ + if (st_ != kHasNumber || !v_.IsInt()) { + st_ = kError; + RAPIDJSON_ASSERT(false); + return 0; + } + + int result = v_.GetInt(); + ParseNext(); + return result; +} + +double LottieParserImpl::GetDouble() +{ + if (st_ != kHasNumber) { + st_ = kError; + RAPIDJSON_ASSERT(false); + return 0.; + } + + double result = v_.GetDouble(); + ParseNext(); + return result; +} + +bool LottieParserImpl::GetBool() +{ + if (st_ != kHasBool) { + st_ = kError; + RAPIDJSON_ASSERT(false); + return false; + } + + bool result = v_.GetBool(); + ParseNext(); + return result; +} + +void LottieParserImpl::GetNull() +{ + if (st_ != kHasNull) { + st_ = kError; + return; + } + + ParseNext(); +} + +const char *LottieParserImpl::GetString() +{ + if (st_ != kHasString) { + st_ = kError; + RAPIDJSON_ASSERT(false); + return nullptr; + } + + const char *result = v_.GetString(); + ParseNext(); + return result; +} + +void LottieParserImpl::SkipOut(int depth) +{ + do { + if (st_ == kEnteringArray || st_ == kEnteringObject) { + ++depth; + } else if (st_ == kExitingArray || st_ == kExitingObject) { + --depth; + } else if (st_ == kError) { + RAPIDJSON_ASSERT(false); + return; + } + + ParseNext(); + } while (depth > 0); +} + +void LottieParserImpl::SkipValue() +{ + SkipOut(0); +} + +void LottieParserImpl::SkipArray() +{ + SkipOut(1); +} + +void LottieParserImpl::SkipObject() +{ + SkipOut(1); +} + +Value *LottieParserImpl::PeekValue() +{ + if (st_ >= kHasNull && st_ <= kHasKey) { + return &v_; + } + + return nullptr; +} + +// returns a rapidjson::Type, or -1 for no value (at end of +// object/array) +int LottieParserImpl::PeekType() const +{ + if (st_ >= kHasNull && st_ <= kHasKey) { + return v_.GetType(); + } + + if (st_ == kEnteringArray) { + return kArrayType; + } + + if (st_ == kEnteringObject) { + return kObjectType; + } + + return -1; +} + +void LottieParserImpl::Skip(const char * /*key*/) +{ + if (PeekType() == kArrayType) { + EnterArray(); + SkipArray(); + } else if (PeekType() == kObjectType) { + EnterObject(); + SkipObject(); + } else { + SkipValue(); + } +} + +model::BlendMode LottieParserImpl::getBlendMode() +{ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + auto mode = model::BlendMode::Normal; + + switch (GetInt()) { + case 1: + mode = model::BlendMode::Multiply; + break; + case 2: + mode = model::BlendMode::Screen; + break; + case 3: + mode = model::BlendMode::OverLay; + break; + default: + break; + } + return mode; +} + +void LottieParserImpl::resolveLayerRefs() +{ + for (const auto &layer : mLayersToUpdate) { + auto search = compRef->mAssets.find(layer->extra()->mPreCompRefId); + if (search != compRef->mAssets.end()) { + if (layer->mLayerType == model::Layer::Type::Image) { + layer->extra()->mAsset = search->second; + } else if (layer->mLayerType == model::Layer::Type::Precomp) { + layer->mChildren = search->second->mLayers; + layer->setStatic(layer->isStatic() && + search->second->isStatic()); + } + } + } +} + +void LottieParserImpl::parseComposition() +{ + RAPIDJSON_ASSERT(PeekType() == kObjectType); + EnterObject(); + std::shared_ptr sharedComposition = + std::make_shared(); + model::Composition *comp = sharedComposition.get(); + compRef = comp; + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "v")) { + RAPIDJSON_ASSERT(PeekType() == kStringType); + comp->mVersion = std::string(GetString()); + } else if (0 == strcmp(key, "w")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + comp->mSize.setWidth(GetInt()); + } else if (0 == strcmp(key, "h")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + comp->mSize.setHeight(GetInt()); + } else if (0 == strcmp(key, "ip")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + comp->mStartFrame = GetDouble(); + } else if (0 == strcmp(key, "op")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + comp->mEndFrame = GetDouble(); + } else if (0 == strcmp(key, "fr")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + comp->mFrameRate = GetDouble(); + } else if (0 == strcmp(key, "assets")) { + parseAssets(comp); + } else if (0 == strcmp(key, "layers")) { + parseLayers(comp); + } else if (0 == strcmp(key, "markers")) { + parseMarkers(); + } else { +#ifdef DEBUG_PARSER + vWarning << "Composition Attribute Skipped : " << key; +#endif + Skip(key); + } + } + + if (comp->mVersion.empty() || !comp->mRootLayer) { + // don't have a valid bodymovin header + return; + } + if (!IsValid()) { + return; + } + + resolveLayerRefs(); + comp->setStatic(comp->mRootLayer->isStatic()); + comp->mRootLayer->mInFrame = comp->mStartFrame; + comp->mRootLayer->mOutFrame = comp->mEndFrame; + + mComposition = sharedComposition; +} + +void LottieParserImpl::parseMarker() +{ + RAPIDJSON_ASSERT(PeekType() == kObjectType); + EnterObject(); + std::string comment; + int timeframe{0}; + int duration{0}; + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "cm")) { + RAPIDJSON_ASSERT(PeekType() == kStringType); + comment = std::string(GetString()); + } else if (0 == strcmp(key, "tm")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + timeframe = GetDouble(); + } else if (0 == strcmp(key, "dr")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + duration = GetDouble(); + + } else { +#ifdef DEBUG_PARSER + vWarning << "Marker Attribute Skipped : " << key; +#endif + Skip(key); + } + } + compRef->mMarkers.emplace_back(std::move(comment), timeframe, + timeframe + duration); +} + +void LottieParserImpl::parseMarkers() +{ + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + parseMarker(); + } + // update the precomp layers with the actual layer object +} + +void LottieParserImpl::parseAssets(model::Composition *composition) +{ + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + auto asset = parseAsset(); + composition->mAssets[asset->mRefId] = asset; + } + // update the precomp layers with the actual layer object +} + +static constexpr const unsigned char B64index[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 63, 62, 62, 63, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 0, 0, 0, 0, 63, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}; + +std::string b64decode(const char *data, const size_t len) +{ + auto p = reinterpret_cast(data); + int pad = len > 0 && (len % 4 || p[len - 1] == '='); + const size_t L = ((len + 3) / 4 - pad) * 4; + std::string str(L / 4 * 3 + pad, '\0'); + + for (size_t i = 0, j = 0; i < L; i += 4) { + int n = B64index[p[i]] << 18 | B64index[p[i + 1]] << 12 | + B64index[p[i + 2]] << 6 | B64index[p[i + 3]]; + str[j++] = n >> 16; + str[j++] = n >> 8 & 0xFF; + str[j++] = n & 0xFF; + } + if (pad) { + int n = B64index[p[L]] << 18 | B64index[p[L + 1]] << 12; + str[str.size() - 1] = n >> 16; + + if (len > L + 2 && p[L + 2] != '=') { + n |= B64index[p[L + 2]] << 6; + str.push_back(n >> 8 & 0xFF); + } + } + return str; +} + +static std::string convertFromBase64(const std::string &str) +{ + // usual header look like "data:image/png;base64," + // so need to skip till ','. + size_t startIndex = str.find(",", 0); + startIndex += 1; // skip "," + size_t length = str.length() - startIndex; + + const char *b64Data = str.c_str() + startIndex; + + return b64decode(b64Data, length); +} + +/* + * std::to_string() function is missing in VS2017 + * so this is workaround for windows build + */ +#include +template +static std::string toString(const T &value) +{ + std::ostringstream os; + os << value; + return os.str(); +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/layers/shape.json + * + */ +model::Asset *LottieParserImpl::parseAsset() +{ + RAPIDJSON_ASSERT(PeekType() == kObjectType); + + auto asset = allocator().make(); + std::string filename; + std::string relativePath; + bool embededResource = false; + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "w")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + asset->mWidth = GetInt(); + } else if (0 == strcmp(key, "h")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + asset->mHeight = GetInt(); + } else if (0 == strcmp(key, "p")) { /* image name */ + asset->mAssetType = model::Asset::Type::Image; + RAPIDJSON_ASSERT(PeekType() == kStringType); + filename = std::string(GetString()); + } else if (0 == strcmp(key, "u")) { /* relative image path */ + RAPIDJSON_ASSERT(PeekType() == kStringType); + relativePath = std::string(GetString()); + } else if (0 == strcmp(key, "e")) { /* relative image path */ + embededResource = GetInt(); + } else if (0 == strcmp(key, "id")) { /* reference id*/ + if (PeekType() == kStringType) { + asset->mRefId = std::string(GetString()); + } else { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + asset->mRefId = toString(GetInt()); + } + } else if (0 == strcmp(key, "layers")) { + asset->mAssetType = model::Asset::Type::Precomp; + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + bool staticFlag = true; + while (NextArrayValue()) { + auto layer = parseLayer(); + if (layer) { + staticFlag = staticFlag && layer->isStatic(); + asset->mLayers.push_back(layer); + } + } + asset->setStatic(staticFlag); + } else { +#ifdef DEBUG_PARSER + vWarning << "Asset Attribute Skipped : " << key; +#endif + Skip(key); + } + } + + if (asset->mAssetType == model::Asset::Type::Image) { + if (embededResource) { + // embeder resource should start with "data:" + if (filename.compare(0, 5, "data:") == 0) { + asset->loadImageData(convertFromBase64(filename)); + } + } else { + asset->loadImagePath(mDirPath + relativePath + filename); + } + } + + return asset; +} + +void LottieParserImpl::parseLayers(model::Composition *comp) +{ + comp->mRootLayer = allocator().make(); + comp->mRootLayer->mLayerType = model::Layer::Type::Precomp; + comp->mRootLayer->setName("__"); + bool staticFlag = true; + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + auto layer = parseLayer(); + if (layer) { + staticFlag = staticFlag && layer->isStatic(); + comp->mRootLayer->mChildren.push_back(layer); + } + } + comp->mRootLayer->setStatic(staticFlag); +} + +model::Color LottieParserImpl::toColor(const char *str) +{ + model::Color color; + auto len = strlen(str); + + // some resource has empty color string + // return a default color for those cases. + if (len != 7 || str[0] != '#') return color; + + char tmp[3] = {'\0', '\0', '\0'}; + tmp[0] = str[1]; + tmp[1] = str[2]; + color.r = std::strtol(tmp, nullptr, 16) / 255.0f; + + tmp[0] = str[3]; + tmp[1] = str[4]; + color.g = std::strtol(tmp, nullptr, 16) / 255.0f; + + tmp[0] = str[5]; + tmp[1] = str[6]; + color.b = std::strtol(tmp, nullptr, 16) / 255.0f; + + return color; +} + +model::MatteType LottieParserImpl::getMatteType() +{ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + switch (GetInt()) { + case 1: + return model::MatteType::Alpha; + break; + case 2: + return model::MatteType::AlphaInv; + break; + case 3: + return model::MatteType::Luma; + break; + case 4: + return model::MatteType::LumaInv; + break; + default: + return model::MatteType::None; + break; + } +} + +model::Layer::Type LottieParserImpl::getLayerType() +{ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + switch (GetInt()) { + case 0: + return model::Layer::Type::Precomp; + break; + case 1: + return model::Layer::Type::Solid; + break; + case 2: + return model::Layer::Type::Image; + break; + case 3: + return model::Layer::Type::Null; + break; + case 4: + return model::Layer::Type::Shape; + break; + case 5: + return model::Layer::Type::Text; + break; + default: + return model::Layer::Type::Null; + break; + } +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/layers/shape.json + * + */ +model::Layer *LottieParserImpl::parseLayer() +{ + RAPIDJSON_ASSERT(PeekType() == kObjectType); + model::Layer *layer = allocator().make(); + curLayerRef = layer; + bool ddd = true; + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "ty")) { /* Type of layer*/ + layer->mLayerType = getLayerType(); + } else if (0 == strcmp(key, "nm")) { /*Layer name*/ + RAPIDJSON_ASSERT(PeekType() == kStringType); + layer->setName(GetString()); + } else if (0 == strcmp(key, "ind")) { /*Layer index in AE. Used for + parenting and expressions.*/ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + layer->mId = GetInt(); + } else if (0 == strcmp(key, "ddd")) { /*3d layer */ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + ddd = GetInt(); + } else if (0 == + strcmp(key, + "parent")) { /*Layer Parent. Uses "ind" of parent.*/ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + layer->mParentId = GetInt(); + } else if (0 == strcmp(key, "refId")) { /*preComp Layer reference id*/ + RAPIDJSON_ASSERT(PeekType() == kStringType); + layer->extra()->mPreCompRefId = std::string(GetString()); + layer->mHasGradient = true; + mLayersToUpdate.push_back(layer); + } else if (0 == strcmp(key, "sr")) { // "Layer Time Stretching" + RAPIDJSON_ASSERT(PeekType() == kNumberType); + layer->mTimeStreatch = GetDouble(); + } else if (0 == strcmp(key, "tm")) { // time remapping + parseProperty(layer->extra()->mTimeRemap); + } else if (0 == strcmp(key, "ip")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + layer->mInFrame = std::lround(GetDouble()); + } else if (0 == strcmp(key, "op")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + layer->mOutFrame = std::lround(GetDouble()); + } else if (0 == strcmp(key, "st")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + layer->mStartFrame = GetDouble(); + } else if (0 == strcmp(key, "bm")) { + layer->mBlendMode = getBlendMode(); + } else if (0 == strcmp(key, "ks")) { + RAPIDJSON_ASSERT(PeekType() == kObjectType); + EnterObject(); + layer->mTransform = parseTransformObject(ddd); + } else if (0 == strcmp(key, "shapes")) { + parseShapesAttr(layer); + } else if (0 == strcmp(key, "w")) { + layer->mLayerSize.setWidth(GetInt()); + } else if (0 == strcmp(key, "h")) { + layer->mLayerSize.setHeight(GetInt()); + } else if (0 == strcmp(key, "sw")) { + layer->mLayerSize.setWidth(GetInt()); + } else if (0 == strcmp(key, "sh")) { + layer->mLayerSize.setHeight(GetInt()); + } else if (0 == strcmp(key, "sc")) { + layer->extra()->mSolidColor = toColor(GetString()); + } else if (0 == strcmp(key, "tt")) { + layer->mMatteType = getMatteType(); + } else if (0 == strcmp(key, "hasMask")) { + layer->mHasMask = GetBool(); + } else if (0 == strcmp(key, "masksProperties")) { + parseMaskProperty(layer); + } else if (0 == strcmp(key, "ao")) { + layer->mAutoOrient = GetInt(); + } else if (0 == strcmp(key, "hd")) { + layer->setHidden(GetBool()); + } else { +#ifdef DEBUG_PARSER + vWarning << "Layer Attribute Skipped : " << key; +#endif + Skip(key); + } + } + + if (!layer->mTransform) { + // not a valid layer + return nullptr; + } + + // make sure layer data is not corrupted. + if (layer->hasParent() && (layer->id() == layer->parentId())) + return nullptr; + + if (layer->mExtra) layer->mExtra->mCompRef = compRef; + + if (layer->hidden()) { + // if layer is hidden, only data that is usefull is its + // transform matrix(when it is a parent of some other layer) + // so force it to be a Null Layer and release all resource. + layer->setStatic(layer->mTransform->isStatic()); + layer->mLayerType = model::Layer::Type::Null; + layer->mChildren = {}; + return layer; + } + + // update the static property of layer + bool staticFlag = true; + for (const auto &child : layer->mChildren) { + staticFlag &= child->isStatic(); + } + + if (layer->hasMask()) { + for (const auto &mask : layer->mExtra->mMasks) { + staticFlag &= mask->isStatic(); + } + } + + layer->setStatic(staticFlag && layer->mTransform->isStatic()); + + return layer; +} + +void LottieParserImpl::parseMaskProperty(model::Layer *layer) +{ + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + layer->extra()->mMasks.push_back(parseMaskObject()); + } +} + +model::Mask *LottieParserImpl::parseMaskObject() +{ + auto obj = allocator().make(); + + RAPIDJSON_ASSERT(PeekType() == kObjectType); + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "inv")) { + obj->mInv = GetBool(); + } else if (0 == strcmp(key, "mode")) { + const char *str = GetString(); + if (!str) { + obj->mMode = model::Mask::Mode::None; + continue; + } + switch (str[0]) { + case 'n': + obj->mMode = model::Mask::Mode::None; + break; + case 'a': + obj->mMode = model::Mask::Mode::Add; + break; + case 's': + obj->mMode = model::Mask::Mode::Substarct; + break; + case 'i': + obj->mMode = model::Mask::Mode::Intersect; + break; + case 'f': + obj->mMode = model::Mask::Mode::Difference; + break; + default: + obj->mMode = model::Mask::Mode::None; + break; + } + } else if (0 == strcmp(key, "pt")) { + parseShapeProperty(obj->mShape); + } else if (0 == strcmp(key, "o")) { + parseProperty(obj->mOpacity); + } else { + Skip(key); + } + } + obj->mIsStatic = obj->mShape.isStatic() && obj->mOpacity.isStatic(); + return obj; +} + +void LottieParserImpl::parseShapesAttr(model::Layer *layer) +{ + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + parseObject(layer); + } +} + +model::Object *LottieParserImpl::parseObjectTypeAttr() +{ + RAPIDJSON_ASSERT(PeekType() == kStringType); + const char *type = GetString(); + if (0 == strcmp(type, "gr")) { + return parseGroupObject(); + } else if (0 == strcmp(type, "rc")) { + return parseRectObject(); + } else if (0 == strcmp(type, "el")) { + return parseEllipseObject(); + } else if (0 == strcmp(type, "tr")) { + return parseTransformObject(); + } else if (0 == strcmp(type, "fl")) { + return parseFillObject(); + } else if (0 == strcmp(type, "st")) { + return parseStrokeObject(); + } else if (0 == strcmp(type, "gf")) { + curLayerRef->mHasGradient = true; + return parseGFillObject(); + } else if (0 == strcmp(type, "gs")) { + curLayerRef->mHasGradient = true; + return parseGStrokeObject(); + } else if (0 == strcmp(type, "sh")) { + return parseShapeObject(); + } else if (0 == strcmp(type, "sr")) { + return parsePolystarObject(); + } else if (0 == strcmp(type, "tm")) { + curLayerRef->mHasPathOperator = true; + return parseTrimObject(); + } else if (0 == strcmp(type, "rp")) { + curLayerRef->mHasRepeater = true; + return parseReapeaterObject(); + } else if (0 == strcmp(type, "mm")) { + vWarning << "Merge Path is not supported yet"; + return nullptr; + } else { +#ifdef DEBUG_PARSER + vDebug << "The Object Type not yet handled = " << type; +#endif + return nullptr; + } +} + +void LottieParserImpl::parseObject(model::Group *parent) +{ + RAPIDJSON_ASSERT(PeekType() == kObjectType); + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "ty")) { + auto child = parseObjectTypeAttr(); + if (child && !child->hidden()) parent->mChildren.push_back(child); + } else { + Skip(key); + } + } +} + +model::Object *LottieParserImpl::parseGroupObject() +{ + auto group = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + group->setName(GetString()); + } else if (0 == strcmp(key, "it")) { + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + RAPIDJSON_ASSERT(PeekType() == kObjectType); + parseObject(group); + } + if (group->mChildren.back()->type() == + model::Object::Type::Transform) { + group->mTransform = + static_cast(group->mChildren.back()); + group->mChildren.pop_back(); + } + } else { + Skip(key); + } + } + bool staticFlag = true; + for (const auto &child : group->mChildren) { + staticFlag &= child->isStatic(); + } + + if (group->mTransform) { + group->setStatic(staticFlag && group->mTransform->isStatic()); + } + + return group; +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/rect.json + */ +model::Rect *LottieParserImpl::parseRectObject() +{ + auto obj = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "p")) { + parseProperty(obj->mPos); + } else if (0 == strcmp(key, "s")) { + parseProperty(obj->mSize); + } else if (0 == strcmp(key, "r")) { + parseProperty(obj->mRound); + } else if (0 == strcmp(key, "d")) { + obj->mDirection = GetInt(); + } else if (0 == strcmp(key, "hd")) { + obj->setHidden(GetBool()); + } else { + Skip(key); + } + } + obj->setStatic(obj->mPos.isStatic() && obj->mSize.isStatic() && + obj->mRound.isStatic()); + return obj; +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/ellipse.json + */ +model::Ellipse *LottieParserImpl::parseEllipseObject() +{ + auto obj = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "p")) { + parseProperty(obj->mPos); + } else if (0 == strcmp(key, "s")) { + parseProperty(obj->mSize); + } else if (0 == strcmp(key, "d")) { + obj->mDirection = GetInt(); + } else if (0 == strcmp(key, "hd")) { + obj->setHidden(GetBool()); + } else { + Skip(key); + } + } + obj->setStatic(obj->mPos.isStatic() && obj->mSize.isStatic()); + return obj; +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/shape.json + */ +model::Path *LottieParserImpl::parseShapeObject() +{ + auto obj = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "ks")) { + parseShapeProperty(obj->mShape); + } else if (0 == strcmp(key, "d")) { + obj->mDirection = GetInt(); + } else if (0 == strcmp(key, "hd")) { + obj->setHidden(GetBool()); + } else { +#ifdef DEBUG_PARSER + vDebug << "Shape property ignored :" << key; +#endif + Skip(key); + } + } + obj->setStatic(obj->mShape.isStatic()); + + return obj; +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/star.json + */ +model::Polystar *LottieParserImpl::parsePolystarObject() +{ + auto obj = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "p")) { + parseProperty(obj->mPos); + } else if (0 == strcmp(key, "pt")) { + parseProperty(obj->mPointCount); + } else if (0 == strcmp(key, "ir")) { + parseProperty(obj->mInnerRadius); + } else if (0 == strcmp(key, "is")) { + parseProperty(obj->mInnerRoundness); + } else if (0 == strcmp(key, "or")) { + parseProperty(obj->mOuterRadius); + } else if (0 == strcmp(key, "os")) { + parseProperty(obj->mOuterRoundness); + } else if (0 == strcmp(key, "r")) { + parseProperty(obj->mRotation); + } else if (0 == strcmp(key, "sy")) { + int starType = GetInt(); + if (starType == 1) obj->mPolyType = model::Polystar::PolyType::Star; + if (starType == 2) + obj->mPolyType = model::Polystar::PolyType::Polygon; + } else if (0 == strcmp(key, "d")) { + obj->mDirection = GetInt(); + } else if (0 == strcmp(key, "hd")) { + obj->setHidden(GetBool()); + } else { +#ifdef DEBUG_PARSER + vDebug << "Polystar property ignored :" << key; +#endif + Skip(key); + } + } + obj->setStatic( + obj->mPos.isStatic() && obj->mPointCount.isStatic() && + obj->mInnerRadius.isStatic() && obj->mInnerRoundness.isStatic() && + obj->mOuterRadius.isStatic() && obj->mOuterRoundness.isStatic() && + obj->mRotation.isStatic()); + + return obj; +} + +model::Trim::TrimType LottieParserImpl::getTrimType() +{ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + switch (GetInt()) { + case 1: + return model::Trim::TrimType::Simultaneously; + break; + case 2: + return model::Trim::TrimType::Individually; + break; + default: + RAPIDJSON_ASSERT(0); + return model::Trim::TrimType::Simultaneously; + break; + } +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/trim.json + */ +model::Trim *LottieParserImpl::parseTrimObject() +{ + auto obj = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "s")) { + parseProperty(obj->mStart); + } else if (0 == strcmp(key, "e")) { + parseProperty(obj->mEnd); + } else if (0 == strcmp(key, "o")) { + parseProperty(obj->mOffset); + } else if (0 == strcmp(key, "m")) { + obj->mTrimType = getTrimType(); + } else if (0 == strcmp(key, "hd")) { + obj->setHidden(GetBool()); + } else { +#ifdef DEBUG_PARSER + vDebug << "Trim property ignored :" << key; +#endif + Skip(key); + } + } + obj->setStatic(obj->mStart.isStatic() && obj->mEnd.isStatic() && + obj->mOffset.isStatic()); + return obj; +} + +void LottieParserImpl::getValue(model::Repeater::Transform &obj) +{ + EnterObject(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "a")) { + parseProperty(obj.mAnchor); + } else if (0 == strcmp(key, "p")) { + parseProperty(obj.mPosition); + } else if (0 == strcmp(key, "r")) { + parseProperty(obj.mRotation); + } else if (0 == strcmp(key, "s")) { + parseProperty(obj.mScale); + } else if (0 == strcmp(key, "so")) { + parseProperty(obj.mStartOpacity); + } else if (0 == strcmp(key, "eo")) { + parseProperty(obj.mEndOpacity); + } else { + Skip(key); + } + } +} + +model::Repeater *LottieParserImpl::parseReapeaterObject() +{ + auto obj = allocator().make(); + + obj->setContent(allocator().make()); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "c")) { + parseProperty(obj->mCopies); + float maxCopy = 0.0; + if (!obj->mCopies.isStatic()) { + for (auto &keyFrame : obj->mCopies.animation().frames_) { + if (maxCopy < keyFrame.value_.start_) + maxCopy = keyFrame.value_.start_; + if (maxCopy < keyFrame.value_.end_) + maxCopy = keyFrame.value_.end_; + } + } else { + maxCopy = obj->mCopies.value(); + } + obj->mMaxCopies = maxCopy; + } else if (0 == strcmp(key, "o")) { + parseProperty(obj->mOffset); + } else if (0 == strcmp(key, "tr")) { + getValue(obj->mTransform); + } else if (0 == strcmp(key, "hd")) { + obj->setHidden(GetBool()); + } else { +#ifdef DEBUG_PARSER + vDebug << "Repeater property ignored :" << key; +#endif + Skip(key); + } + } + obj->setStatic(obj->mCopies.isStatic() && obj->mOffset.isStatic() && + obj->mTransform.isStatic()); + + return obj; +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/transform.json + */ +model::Transform *LottieParserImpl::parseTransformObject(bool ddd) +{ + auto objT = allocator().make(); + + auto obj = allocator().make(); + if (ddd) { + obj->createExtraData(); + obj->mExtra->m3DData = true; + } + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + objT->setName(GetString()); + } else if (0 == strcmp(key, "a")) { + parseProperty(obj->mAnchor); + } else if (0 == strcmp(key, "p")) { + EnterObject(); + bool separate = false; + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "k")) { + parsePropertyHelper(obj->mPosition); + } else if (0 == strcmp(key, "s")) { + obj->createExtraData(); + obj->mExtra->mSeparate = GetBool(); + separate = true; + } else if (separate && (0 == strcmp(key, "x"))) { + parseProperty(obj->mExtra->mSeparateX); + } else if (separate && (0 == strcmp(key, "y"))) { + parseProperty(obj->mExtra->mSeparateY); + } else { + Skip(key); + } + } + } else if (0 == strcmp(key, "r")) { + parseProperty(obj->mRotation); + } else if (0 == strcmp(key, "s")) { + parseProperty(obj->mScale); + } else if (0 == strcmp(key, "o")) { + parseProperty(obj->mOpacity); + } else if (0 == strcmp(key, "hd")) { + objT->setHidden(GetBool()); + } else if (0 == strcmp(key, "rx")) { + parseProperty(obj->mExtra->m3DRx); + } else if (0 == strcmp(key, "ry")) { + parseProperty(obj->mExtra->m3DRy); + } else if (0 == strcmp(key, "rz")) { + parseProperty(obj->mExtra->m3DRz); + } else { + Skip(key); + } + } + bool isStatic = obj->mAnchor.isStatic() && obj->mPosition.isStatic() && + obj->mRotation.isStatic() && obj->mScale.isStatic() && + obj->mOpacity.isStatic(); + if (obj->mExtra) { + isStatic = isStatic && obj->mExtra->m3DRx.isStatic() && + obj->mExtra->m3DRy.isStatic() && + obj->mExtra->m3DRz.isStatic() && + obj->mExtra->mSeparateX.isStatic() && + obj->mExtra->mSeparateY.isStatic(); + } + + objT->set(obj, isStatic); + + return objT; +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/fill.json + */ +model::Fill *LottieParserImpl::parseFillObject() +{ + auto obj = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "c")) { + parseProperty(obj->mColor); + } else if (0 == strcmp(key, "o")) { + parseProperty(obj->mOpacity); + } else if (0 == strcmp(key, "fillEnabled")) { + obj->mEnabled = GetBool(); + } else if (0 == strcmp(key, "r")) { + obj->mFillRule = getFillRule(); + } else if (0 == strcmp(key, "hd")) { + obj->setHidden(GetBool()); + } else { +#ifdef DEBUG_PARSER + vWarning << "Fill property skipped = " << key; +#endif + Skip(key); + } + } + obj->setStatic(obj->mColor.isStatic() && obj->mOpacity.isStatic()); + + return obj; +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/helpers/lineCap.json + */ +CapStyle LottieParserImpl::getLineCap() +{ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + switch (GetInt()) { + case 1: + return CapStyle::Flat; + break; + case 2: + return CapStyle::Round; + break; + default: + return CapStyle::Square; + break; + } +} + +FillRule LottieParserImpl::getFillRule() +{ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + switch (GetInt()) { + case 1: + return FillRule::Winding; + break; + case 2: + return FillRule::EvenOdd; + break; + default: + return FillRule::Winding; + break; + } +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/helpers/lineJoin.json + */ +JoinStyle LottieParserImpl::getLineJoin() +{ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + switch (GetInt()) { + case 1: + return JoinStyle::Miter; + break; + case 2: + return JoinStyle::Round; + break; + default: + return JoinStyle::Bevel; + break; + } +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/stroke.json + */ +model::Stroke *LottieParserImpl::parseStrokeObject() +{ + auto obj = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "c")) { + parseProperty(obj->mColor); + } else if (0 == strcmp(key, "o")) { + parseProperty(obj->mOpacity); + } else if (0 == strcmp(key, "w")) { + parseProperty(obj->mWidth); + } else if (0 == strcmp(key, "fillEnabled")) { + obj->mEnabled = GetBool(); + } else if (0 == strcmp(key, "lc")) { + obj->mCapStyle = getLineCap(); + } else if (0 == strcmp(key, "lj")) { + obj->mJoinStyle = getLineJoin(); + } else if (0 == strcmp(key, "ml")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + obj->mMiterLimit = GetDouble(); + } else if (0 == strcmp(key, "d")) { + parseDashProperty(obj->mDash); + } else if (0 == strcmp(key, "hd")) { + obj->setHidden(GetBool()); + } else { +#ifdef DEBUG_PARSER + vWarning << "Stroke property skipped = " << key; +#endif + Skip(key); + } + } + obj->setStatic(obj->mColor.isStatic() && obj->mOpacity.isStatic() && + obj->mWidth.isStatic() && obj->mDash.isStatic()); + return obj; +} + +void LottieParserImpl::parseGradientProperty(model::Gradient *obj, + const char * key) +{ + if (0 == strcmp(key, "t")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + obj->mGradientType = GetInt(); + } else if (0 == strcmp(key, "o")) { + parseProperty(obj->mOpacity); + } else if (0 == strcmp(key, "s")) { + parseProperty(obj->mStartPoint); + } else if (0 == strcmp(key, "e")) { + parseProperty(obj->mEndPoint); + } else if (0 == strcmp(key, "h")) { + parseProperty(obj->mHighlightLength); + } else if (0 == strcmp(key, "a")) { + parseProperty(obj->mHighlightAngle); + } else if (0 == strcmp(key, "g")) { + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "k")) { + parseProperty(obj->mGradient); + } else if (0 == strcmp(key, "p")) { + obj->mColorPoints = GetInt(); + } else { + Skip(nullptr); + } + } + } else if (0 == strcmp(key, "hd")) { + obj->setHidden(GetBool()); + } else { +#ifdef DEBUG_PARSER + vWarning << "Gradient property skipped = " << key; +#endif + Skip(key); + } + obj->setStatic( + obj->mOpacity.isStatic() && obj->mStartPoint.isStatic() && + obj->mEndPoint.isStatic() && obj->mHighlightAngle.isStatic() && + obj->mHighlightLength.isStatic() && obj->mGradient.isStatic()); +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/gfill.json + */ +model::GradientFill *LottieParserImpl::parseGFillObject() +{ + auto obj = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "r")) { + obj->mFillRule = getFillRule(); + } else { + parseGradientProperty(obj, key); + } + } + return obj; +} + +void LottieParserImpl::parseDashProperty(model::Dash &dash) +{ + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + RAPIDJSON_ASSERT(PeekType() == kObjectType); + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "v")) { + dash.mData.emplace_back(); + parseProperty(dash.mData.back()); + } else { + Skip(key); + } + } + } +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/shapes/gstroke.json + */ +model::GradientStroke *LottieParserImpl::parseGStrokeObject() +{ + auto obj = allocator().make(); + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "nm")) { + obj->setName(GetString()); + } else if (0 == strcmp(key, "w")) { + parseProperty(obj->mWidth); + } else if (0 == strcmp(key, "lc")) { + obj->mCapStyle = getLineCap(); + } else if (0 == strcmp(key, "lj")) { + obj->mJoinStyle = getLineJoin(); + } else if (0 == strcmp(key, "ml")) { + RAPIDJSON_ASSERT(PeekType() == kNumberType); + obj->mMiterLimit = GetDouble(); + } else if (0 == strcmp(key, "d")) { + parseDashProperty(obj->mDash); + } else { + parseGradientProperty(obj, key); + } + } + + obj->setStatic(obj->isStatic() && obj->mWidth.isStatic() && + obj->mDash.isStatic()); + return obj; +} + +void LottieParserImpl::getValue(std::vector &v) +{ + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + VPointF pt; + getValue(pt); + v.push_back(pt); + } +} + +void LottieParserImpl::getValue(VPointF &pt) +{ + float val[4] = {0.f}; + int i = 0; + + if (PeekType() == kArrayType) EnterArray(); + + while (NextArrayValue()) { + const auto value = GetDouble(); + if (i < 4) { + val[i++] = value; + } + } + pt.setX(val[0]); + pt.setY(val[1]); +} + +void LottieParserImpl::getValue(float &val) +{ + if (PeekType() == kArrayType) { + EnterArray(); + if (NextArrayValue()) val = GetDouble(); + // discard rest + while (NextArrayValue()) { + GetDouble(); + } + } else if (PeekType() == kNumberType) { + val = GetDouble(); + } else { + RAPIDJSON_ASSERT(0); + } +} + +void LottieParserImpl::getValue(model::Color &color) +{ + float val[4] = {0.f}; + int i = 0; + if (PeekType() == kArrayType) EnterArray(); + + while (NextArrayValue()) { + const auto value = GetDouble(); + if (i < 4) { + val[i++] = value; + } + } + + if (mColorFilter) mColorFilter(val[0], val[1], val[2]); + + color.r = val[0]; + color.g = val[1]; + color.b = val[2]; +} + +void LottieParserImpl::getValue(model::Gradient::Data &grad) +{ + if (PeekType() == kArrayType) EnterArray(); + + while (NextArrayValue()) { + grad.mGradient.push_back(GetDouble()); + } +} + +void LottieParserImpl::getValue(int &val) +{ + if (PeekType() == kArrayType) { + EnterArray(); + while (NextArrayValue()) { + val = GetInt(); + } + } else if (PeekType() == kNumberType) { + val = GetInt(); + } else { + RAPIDJSON_ASSERT(0); + } +} + +void LottieParserImpl::parsePathInfo() +{ + mPathInfo.reset(); + + /* + * The shape object could be wrapped by a array + * if its part of the keyframe object + */ + bool arrayWrapper = (PeekType() == kArrayType); + if (arrayWrapper) EnterArray(); + + RAPIDJSON_ASSERT(PeekType() == kObjectType); + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "i")) { + getValue(mPathInfo.mInPoint); + } else if (0 == strcmp(key, "o")) { + getValue(mPathInfo.mOutPoint); + } else if (0 == strcmp(key, "v")) { + getValue(mPathInfo.mVertices); + } else if (0 == strcmp(key, "c")) { + mPathInfo.mClosed = GetBool(); + } else { + RAPIDJSON_ASSERT(0); + Skip(nullptr); + } + } + // exit properly from the array + if (arrayWrapper) NextArrayValue(); + + mPathInfo.convert(); +} + +void LottieParserImpl::getValue(model::PathData &obj) +{ + parsePathInfo(); + obj.mPoints = mPathInfo.mResult; + obj.mClosed = mPathInfo.mClosed; +} + +VPointF LottieParserImpl::parseInperpolatorPoint() +{ + VPointF cp; + RAPIDJSON_ASSERT(PeekType() == kObjectType); + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "x")) { + getValue(cp.rx()); + } + if (0 == strcmp(key, "y")) { + getValue(cp.ry()); + } + } + return cp; +} + +template +bool LottieParserImpl::parseKeyFrameValue( + const char *key, model::Value &value) +{ + if (0 == strcmp(key, "ti")) { + value.hasTangent_ = true; + getValue(value.inTangent_); + } else if (0 == strcmp(key, "to")) { + value.hasTangent_ = true; + getValue(value.outTangent_); + } else { + return false; + } + return true; +} + +VInterpolator *LottieParserImpl::interpolator(VPointF inTangent, + VPointF outTangent, + std::string key) +{ + if (key.empty()) { + std::array temp; + snprintf(temp.data(), temp.size(), "%.2f_%.2f_%.2f_%.2f", inTangent.x(), + inTangent.y(), outTangent.x(), outTangent.y()); + key = temp.data(); + } + + auto search = mInterpolatorCache.find(key); + + if (search != mInterpolatorCache.end()) { + return search->second; + } + + auto obj = allocator().make(outTangent, inTangent); + mInterpolatorCache[std::move(key)] = obj; + return obj; +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/properties/multiDimensionalKeyframed.json + */ +template +void LottieParserImpl::parseKeyFrame(model::KeyFrames &obj) +{ + struct ParsedField { + std::string interpolatorKey; + bool interpolator{false}; + bool value{false}; + bool hold{false}; + bool noEndValue{true}; + }; + + EnterObject(); + ParsedField parsed; + typename model::KeyFrames::Frame keyframe; + VPointF inTangent; + VPointF outTangent; + + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "i")) { + parsed.interpolator = true; + inTangent = parseInperpolatorPoint(); + } else if (0 == strcmp(key, "o")) { + outTangent = parseInperpolatorPoint(); + } else if (0 == strcmp(key, "t")) { + keyframe.start_ = GetDouble(); + } else if (0 == strcmp(key, "s")) { + parsed.value = true; + getValue(keyframe.value_.start_); + continue; + } else if (0 == strcmp(key, "e")) { + parsed.noEndValue = false; + getValue(keyframe.value_.end_); + continue; + } else if (0 == strcmp(key, "n")) { + if (PeekType() == kStringType) { + parsed.interpolatorKey = GetString(); + } else { + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + RAPIDJSON_ASSERT(PeekType() == kStringType); + if (parsed.interpolatorKey.empty()) { + parsed.interpolatorKey = GetString(); + } else { + // skip rest of the string + GetString(); + } + } + } + continue; + } else if (parseKeyFrameValue(key, keyframe.value_)) { + continue; + } else if (0 == strcmp(key, "h")) { + parsed.hold = GetInt(); + continue; + } else { +#ifdef DEBUG_PARSER + vDebug << "key frame property skipped = " << key; +#endif + Skip(key); + } + } + + auto &list = obj.frames_; + if (!list.empty()) { + // update the endFrame value of current keyframe + list.back().end_ = keyframe.start_; + // if no end value provided, copy start value to previous frame + if (parsed.value && parsed.noEndValue) { + list.back().value_.end_ = keyframe.value_.start_; + } + } + + if (parsed.hold) { + keyframe.value_.end_ = keyframe.value_.start_; + keyframe.end_ = keyframe.start_; + list.push_back(std::move(keyframe)); + } else if (parsed.interpolator) { + keyframe.interpolator_ = interpolator( + inTangent, outTangent, std::move(parsed.interpolatorKey)); + list.push_back(std::move(keyframe)); + } else { + // its the last frame discard. + } +} + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/properties/shapeKeyframed.json + */ + +/* + * https://github.com/airbnb/lottie-web/blob/master/docs/json/properties/shape.json + */ +void LottieParserImpl::parseShapeProperty(model::Property &obj) +{ + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "k")) { + if (PeekType() == kArrayType) { + EnterArray(); + while (NextArrayValue()) { + RAPIDJSON_ASSERT(PeekType() == kObjectType); + parseKeyFrame(obj.animation()); + } + } else { + if (!obj.isStatic()) { + RAPIDJSON_ASSERT(false); + st_ = kError; + return; + } + getValue(obj.value()); + } + } else { +#ifdef DEBUG_PARSER + vDebug << "shape property ignored = " << key; +#endif + Skip(nullptr); + } + } + obj.cache(); +} + +template +void LottieParserImpl::parsePropertyHelper(model::Property &obj) +{ + if (PeekType() == kNumberType) { + if (!obj.isStatic()) { + RAPIDJSON_ASSERT(false); + st_ = kError; + return; + } + /*single value property with no animation*/ + getValue(obj.value()); + } else { + RAPIDJSON_ASSERT(PeekType() == kArrayType); + EnterArray(); + while (NextArrayValue()) { + /* property with keyframe info*/ + if (PeekType() == kObjectType) { + parseKeyFrame(obj.animation()); + } else { + /* Read before modifying. + * as there is no way of knowing if the + * value of the array is either array of numbers + * or array of object without entering the array + * thats why this hack is there + */ + RAPIDJSON_ASSERT(PeekType() == kNumberType); + if (!obj.isStatic()) { + RAPIDJSON_ASSERT(false); + st_ = kError; + return; + } + /*multi value property with no animation*/ + getValue(obj.value()); + /*break here as we already reached end of array*/ + break; + } + } + obj.cache(); + } +} + +/* + * https://github.com/airbnb/lottie-web/tree/master/docs/json/properties + */ +template +void LottieParserImpl::parseProperty(model::Property &obj) +{ + EnterObject(); + while (const char *key = NextObjectKey()) { + if (0 == strcmp(key, "k")) { + parsePropertyHelper(obj); + } else { + Skip(key); + } + } +} + +#ifdef LOTTIE_DUMP_TREE_SUPPORT + +class ObjectInspector { +public: + void visit(model::Composition *obj, std::string level) + { + vDebug << " { " << level << "Composition:: a: " << !obj->isStatic() + << ", v: " << obj->mVersion << ", stFm: " << obj->startFrame() + << ", endFm: " << obj->endFrame() + << ", W: " << obj->size().width() + << ", H: " << obj->size().height() << "\n"; + level.append("\t"); + visit(obj->mRootLayer, level); + level.erase(level.end() - 1, level.end()); + vDebug << " } " << level << "Composition End\n"; + } + void visit(model::Layer *obj, std::string level) + { + vDebug << level << "{ " << layerType(obj->mLayerType) + << ", name: " << obj->name() << ", id:" << obj->mId + << " Pid:" << obj->mParentId << ", a:" << !obj->isStatic() + << ", " << matteType(obj->mMatteType) + << ", mask:" << obj->hasMask() << ", inFm:" << obj->mInFrame + << ", outFm:" << obj->mOutFrame << ", stFm:" << obj->mStartFrame + << ", ts:" << obj->mTimeStreatch << ", ao:" << obj->autoOrient() + << ", W:" << obj->layerSize().width() + << ", H:" << obj->layerSize().height(); + + if (obj->mLayerType == model::Layer::Type::Image) + vDebug << level << "\t{ " + << "ImageInfo:" + << " W :" << obj->extra()->mAsset->mWidth + << ", H :" << obj->extra()->mAsset->mHeight << " }" + << "\n"; + else { + vDebug << level; + } + visitChildren(static_cast(obj), level); + vDebug << level << "} " << layerType(obj->mLayerType).c_str() + << ", id: " << obj->mId << "\n"; + } + void visitChildren(model::Group *obj, std::string level) + { + level.append("\t"); + for (const auto &child : obj->mChildren) visit(child, level); + if (obj->mTransform) visit(obj->mTransform, level); + } + + void visit(model::Object *obj, std::string level) + { + switch (obj->type()) { + case model::Object::Type::Repeater: { + auto r = static_cast(obj); + vDebug << level << "{ Repeater: name: " << obj->name() + << " , a:" << !obj->isStatic() + << ", copies:" << r->maxCopies() + << ", offset:" << r->offset(0); + visitChildren(r->mContent, level); + vDebug << level << "} Repeater"; + break; + } + case model::Object::Type::Group: { + vDebug << level << "{ Group: name: " << obj->name() + << " , a:" << !obj->isStatic(); + visitChildren(static_cast(obj), level); + vDebug << level << "} Group"; + break; + } + case model::Object::Type::Layer: { + visit(static_cast(obj), level); + break; + } + case model::Object::Type::Trim: { + vDebug << level << "{ Trim: name: " << obj->name() + << " , a:" << !obj->isStatic() << " }"; + break; + } + case model::Object::Type::Rect: { + vDebug << level << "{ Rect: name: " << obj->name() + << " , a:" << !obj->isStatic() << " }"; + break; + } + case model::Object::Type::Ellipse: { + vDebug << level << "{ Ellipse: name: " << obj->name() + << " , a:" << !obj->isStatic() << " }"; + break; + } + case model::Object::Type::Path: { + vDebug << level << "{ Shape: name: " << obj->name() + << " , a:" << !obj->isStatic() << " }"; + break; + } + case model::Object::Type::Polystar: { + vDebug << level << "{ Polystar: name: " << obj->name() + << " , a:" << !obj->isStatic() << " }"; + break; + } + case model::Object::Type::Transform: { + vDebug << level << "{ Transform: name: " << obj->name() + << " , a: " << !obj->isStatic() << " }"; + break; + } + case model::Object::Type::Stroke: { + vDebug << level << "{ Stroke: name: " << obj->name() + << " , a:" << !obj->isStatic() << " }"; + break; + } + case model::Object::Type::GStroke: { + vDebug << level << "{ GStroke: name: " << obj->name() + << " , a:" << !obj->isStatic() << " }"; + break; + } + case model::Object::Type::Fill: { + vDebug << level << "{ Fill: name: " << obj->name() + << " , a:" << !obj->isStatic() << " }"; + break; + } + case model::Object::Type::GFill: { + auto f = static_cast(obj); + vDebug << level << "{ GFill: name: " << obj->name() + << " , a:" << !f->isStatic() << ", ty:" << f->mGradientType + << ", s:" << f->mStartPoint.value(0) + << ", e:" << f->mEndPoint.value(0) << " }"; + break; + } + default: + break; + } + } + + std::string matteType(model::MatteType type) + { + switch (type) { + case model::MatteType::None: + return "Matte::None"; + break; + case model::MatteType::Alpha: + return "Matte::Alpha"; + break; + case model::MatteType::AlphaInv: + return "Matte::AlphaInv"; + break; + case model::MatteType::Luma: + return "Matte::Luma"; + break; + case model::MatteType::LumaInv: + return "Matte::LumaInv"; + break; + default: + return "Matte::Unknown"; + break; + } + } + std::string layerType(model::Layer::Type type) + { + switch (type) { + case model::Layer::Type::Precomp: + return "Layer::Precomp"; + break; + case model::Layer::Type::Null: + return "Layer::Null"; + break; + case model::Layer::Type::Shape: + return "Layer::Shape"; + break; + case model::Layer::Type::Solid: + return "Layer::Solid"; + break; + case model::Layer::Type::Image: + return "Layer::Image"; + break; + case model::Layer::Type::Text: + return "Layer::Text"; + break; + default: + return "Layer::Unknown"; + break; + } + } +}; + +#endif + +std::shared_ptr model::parse(char * str, + std::string dir_path, + model::ColorFilter filter) +{ + LottieParserImpl obj(str, std::move(dir_path), std::move(filter)); + + if (obj.VerifyType()) { + obj.parseComposition(); + auto composition = obj.composition(); + if (composition) { + composition->processRepeaterObjects(); + composition->updateStats(); + +#ifdef LOTTIE_DUMP_TREE_SUPPORT + ObjectInspector inspector; + inspector.visit(composition.get(), ""); +#endif + + return composition; + } + } + + vWarning << "Input data is not Lottie format!"; + return {}; +} + +RAPIDJSON_DIAG_POP diff --git a/external/rlottie/src/lottie/lottieproxymodel.cpp b/external/rlottie/src/lottie/lottieproxymodel.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/external/rlottie/src/lottie/meson.build b/external/rlottie/src/lottie/meson.build new file mode 100644 index 000000000..fcf8239c8 --- /dev/null +++ b/external/rlottie/src/lottie/meson.build @@ -0,0 +1,16 @@ + +source_file = [ + 'lottieparser.cpp', + 'lottieloader.cpp', + 'lottiemodel.cpp', + 'lottieproxymodel.cpp', + 'lottieanimation.cpp', + 'lottieitem.cpp', + 'lottieitem_capi.cpp', + 'lottiekeypath.cpp' +] + +lottie_dep = declare_dependency( + include_directories : include_directories('.'), + sources : source_file + ) diff --git a/external/rlottie/src/lottie/rapidjson/allocators.h b/external/rlottie/src/lottie/rapidjson/allocators.h new file mode 100644 index 000000000..0b8f5e14c --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/allocators.h @@ -0,0 +1,284 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_ALLOCATORS_H_ +#define RAPIDJSON_ALLOCATORS_H_ + +#include "rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// Allocator + +/*! \class rapidjson::Allocator + \brief Concept for allocating, resizing and freeing memory block. + + Note that Malloc() and Realloc() are non-static but Free() is static. + + So if an allocator need to support Free(), it needs to put its pointer in + the header of memory block. + +\code +concept Allocator { + static const bool kNeedFree; //!< Whether this allocator needs to call Free(). + + // Allocate a memory block. + // \param size of the memory block in bytes. + // \returns pointer to the memory block. + void* Malloc(size_t size); + + // Resize a memory block. + // \param originalPtr The pointer to current memory block. Null pointer is permitted. + // \param originalSize The current size in bytes. (Design issue: since some allocator may not book-keep this, explicitly pass to it can save memory.) + // \param newSize the new size in bytes. + void* Realloc(void* originalPtr, size_t originalSize, size_t newSize); + + // Free a memory block. + // \param pointer to the memory block. Null pointer is permitted. + static void Free(void *ptr); +}; +\endcode +*/ + + +/*! \def RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY + \ingroup RAPIDJSON_CONFIG + \brief User-defined kDefaultChunkCapacity definition. + + User can define this as any \c size that is a power of 2. +*/ + +#ifndef RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY +#define RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY (64 * 1024) +#endif + + +/////////////////////////////////////////////////////////////////////////////// +// CrtAllocator + +//! C-runtime library allocator. +/*! This class is just wrapper for standard C library memory routines. + \note implements Allocator concept +*/ +class CrtAllocator { +public: + static const bool kNeedFree = true; + void* Malloc(size_t size) { + if (size) // behavior of malloc(0) is implementation defined. + return RAPIDJSON_MALLOC(size); + else + return NULL; // standardize to returning NULL. + } + void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) { + (void)originalSize; + if (newSize == 0) { + RAPIDJSON_FREE(originalPtr); + return NULL; + } + return RAPIDJSON_REALLOC(originalPtr, newSize); + } + static void Free(void *ptr) { RAPIDJSON_FREE(ptr); } +}; + +/////////////////////////////////////////////////////////////////////////////// +// MemoryPoolAllocator + +//! Default memory allocator used by the parser and DOM. +/*! This allocator allocate memory blocks from pre-allocated memory chunks. + + It does not free memory blocks. And Realloc() only allocate new memory. + + The memory chunks are allocated by BaseAllocator, which is CrtAllocator by default. + + User may also supply a buffer as the first chunk. + + If the user-buffer is full then additional chunks are allocated by BaseAllocator. + + The user-buffer is not deallocated by this allocator. + + \tparam BaseAllocator the allocator type for allocating memory chunks. Default is CrtAllocator. + \note implements Allocator concept +*/ +template +class MemoryPoolAllocator { +public: + static const bool kNeedFree = false; //!< Tell users that no need to call Free() with this allocator. (concept Allocator) + + //! Constructor with chunkSize. + /*! \param chunkSize The size of memory chunk. The default is kDefaultChunkSize. + \param baseAllocator The allocator for allocating memory chunks. + */ + MemoryPoolAllocator(size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) : + chunkHead_(0), chunk_capacity_(chunkSize), userBuffer_(0), baseAllocator_(baseAllocator), ownBaseAllocator_(0) + { + } + + //! Constructor with user-supplied buffer. + /*! The user buffer will be used firstly. When it is full, memory pool allocates new chunk with chunk size. + + The user buffer will not be deallocated when this allocator is destructed. + + \param buffer User supplied buffer. + \param size Size of the buffer in bytes. It must at least larger than sizeof(ChunkHeader). + \param chunkSize The size of memory chunk. The default is kDefaultChunkSize. + \param baseAllocator The allocator for allocating memory chunks. + */ + MemoryPoolAllocator(void *buffer, size_t size, size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) : + chunkHead_(0), chunk_capacity_(chunkSize), userBuffer_(buffer), baseAllocator_(baseAllocator), ownBaseAllocator_(0) + { + RAPIDJSON_ASSERT(buffer != 0); + RAPIDJSON_ASSERT(size > sizeof(ChunkHeader)); + chunkHead_ = reinterpret_cast(buffer); + chunkHead_->capacity = size - sizeof(ChunkHeader); + chunkHead_->size = 0; + chunkHead_->next = 0; + } + + //! Destructor. + /*! This deallocates all memory chunks, excluding the user-supplied buffer. + */ + ~MemoryPoolAllocator() { + Clear(); + RAPIDJSON_DELETE(ownBaseAllocator_); + } + + //! Deallocates all memory chunks, excluding the user-supplied buffer. + void Clear() { + while (chunkHead_ && chunkHead_ != userBuffer_) { + ChunkHeader* next = chunkHead_->next; + baseAllocator_->Free(chunkHead_); + chunkHead_ = next; + } + if (chunkHead_ && chunkHead_ == userBuffer_) + chunkHead_->size = 0; // Clear user buffer + } + + //! Computes the total capacity of allocated memory chunks. + /*! \return total capacity in bytes. + */ + size_t Capacity() const { + size_t capacity = 0; + for (ChunkHeader* c = chunkHead_; c != 0; c = c->next) + capacity += c->capacity; + return capacity; + } + + //! Computes the memory blocks allocated. + /*! \return total used bytes. + */ + size_t Size() const { + size_t size = 0; + for (ChunkHeader* c = chunkHead_; c != 0; c = c->next) + size += c->size; + return size; + } + + //! Allocates a memory block. (concept Allocator) + void* Malloc(size_t size) { + if (!size) + return NULL; + + size = RAPIDJSON_ALIGN(size); + if (chunkHead_ == 0 || chunkHead_->size + size > chunkHead_->capacity) + if (!AddChunk(chunk_capacity_ > size ? chunk_capacity_ : size)) + return NULL; + + void *buffer = reinterpret_cast(chunkHead_) + RAPIDJSON_ALIGN(sizeof(ChunkHeader)) + chunkHead_->size; + chunkHead_->size += size; + return buffer; + } + + //! Resizes a memory block (concept Allocator) + void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) { + if (originalPtr == 0) + return Malloc(newSize); + + if (newSize == 0) + return NULL; + + originalSize = RAPIDJSON_ALIGN(originalSize); + newSize = RAPIDJSON_ALIGN(newSize); + + // Do not shrink if new size is smaller than original + if (originalSize >= newSize) + return originalPtr; + + // Simply expand it if it is the last allocation and there is sufficient space + if (originalPtr == reinterpret_cast(chunkHead_) + RAPIDJSON_ALIGN(sizeof(ChunkHeader)) + chunkHead_->size - originalSize) { + size_t increment = static_cast(newSize - originalSize); + if (chunkHead_->size + increment <= chunkHead_->capacity) { + chunkHead_->size += increment; + return originalPtr; + } + } + + // Realloc process: allocate and copy memory, do not free original buffer. + if (void* newBuffer = Malloc(newSize)) { + if (originalSize) + std::memcpy(newBuffer, originalPtr, originalSize); + return newBuffer; + } + else + return NULL; + } + + //! Frees a memory block (concept Allocator) + static void Free(void *ptr) { (void)ptr; } // Do nothing + +private: + //! Copy constructor is not permitted. + MemoryPoolAllocator(const MemoryPoolAllocator& rhs) /* = delete */; + //! Copy assignment operator is not permitted. + MemoryPoolAllocator& operator=(const MemoryPoolAllocator& rhs) /* = delete */; + + //! Creates a new chunk. + /*! \param capacity Capacity of the chunk in bytes. + \return true if success. + */ + bool AddChunk(size_t capacity) { + if (!baseAllocator_) + ownBaseAllocator_ = baseAllocator_ = RAPIDJSON_NEW(BaseAllocator)(); + if (ChunkHeader* chunk = reinterpret_cast(baseAllocator_->Malloc(RAPIDJSON_ALIGN(sizeof(ChunkHeader)) + capacity))) { + chunk->capacity = capacity; + chunk->size = 0; + chunk->next = chunkHead_; + chunkHead_ = chunk; + return true; + } + else + return false; + } + + static const int kDefaultChunkCapacity = RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY; //!< Default chunk capacity. + + //! Chunk header for perpending to each chunk. + /*! Chunks are stored as a singly linked list. + */ + struct ChunkHeader { + size_t capacity; //!< Capacity of the chunk in bytes (excluding the header itself). + size_t size; //!< Current size of allocated memory in bytes. + ChunkHeader *next; //!< Next chunk in the linked list. + }; + + ChunkHeader *chunkHead_; //!< Head of the chunk linked-list. Only the head chunk serves allocation. + size_t chunk_capacity_; //!< The minimum capacity of chunk when they are allocated. + void *userBuffer_; //!< User supplied buffer. + BaseAllocator* baseAllocator_; //!< base allocator for allocating memory chunks. + BaseAllocator* ownBaseAllocator_; //!< base allocator created by this object. +}; + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_ENCODINGS_H_ diff --git a/external/rlottie/src/lottie/rapidjson/cursorstreamwrapper.h b/external/rlottie/src/lottie/rapidjson/cursorstreamwrapper.h new file mode 100644 index 000000000..52c11a7c0 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/cursorstreamwrapper.h @@ -0,0 +1,78 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_CURSORSTREAMWRAPPER_H_ +#define RAPIDJSON_CURSORSTREAMWRAPPER_H_ + +#include "stream.h" + +#if defined(__GNUC__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#if defined(_MSC_VER) && _MSC_VER <= 1800 +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4702) // unreachable code +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +RAPIDJSON_NAMESPACE_BEGIN + + +//! Cursor stream wrapper for counting line and column number if error exists. +/*! + \tparam InputStream Any stream that implements Stream Concept +*/ +template > +class CursorStreamWrapper : public GenericStreamWrapper { +public: + typedef typename Encoding::Ch Ch; + + CursorStreamWrapper(InputStream& is): + GenericStreamWrapper(is), line_(1), col_(0) {} + + // counting line and column number + Ch Take() { + Ch ch = this->is_.Take(); + if(ch == '\n') { + line_ ++; + col_ = 0; + } else { + col_ ++; + } + return ch; + } + + //! Get the error line number, if error exists. + size_t GetLine() const { return line_; } + //! Get the error column number, if error exists. + size_t GetColumn() const { return col_; } + +private: + size_t line_; //!< Current Line + size_t col_; //!< Current Column +}; + +#if defined(_MSC_VER) && _MSC_VER <= 1800 +RAPIDJSON_DIAG_POP +#endif + +#if defined(__GNUC__) +RAPIDJSON_DIAG_POP +#endif + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_CURSORSTREAMWRAPPER_H_ diff --git a/external/rlottie/src/lottie/rapidjson/document.h b/external/rlottie/src/lottie/rapidjson/document.h new file mode 100644 index 000000000..68aaae7e6 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/document.h @@ -0,0 +1,2732 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_DOCUMENT_H_ +#define RAPIDJSON_DOCUMENT_H_ + +/*! \file document.h */ + +#include "reader.h" +#include "internal/meta.h" +#include "internal/strfunc.h" +#include "memorystream.h" +#include "encodedstream.h" +#include // placement new +#include +#ifdef __cpp_lib_three_way_comparison +#include +#endif + +RAPIDJSON_DIAG_PUSH +#ifdef __clang__ +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(switch-enum) +RAPIDJSON_DIAG_OFF(c++98-compat) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant +RAPIDJSON_DIAG_OFF(4244) // conversion from kXxxFlags to 'uint16_t', possible loss of data +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_OFF(effc++) +#endif // __GNUC__ + +#ifndef RAPIDJSON_NOMEMBERITERATORCLASS +#include // std::random_access_iterator_tag +#endif + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS +#include // std::move +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +// Forward declaration. +template +class GenericValue; + +template +class GenericDocument; + +/*! \def RAPIDJSON_DEFAULT_ALLOCATOR + \ingroup RAPIDJSON_CONFIG + \brief Allows to choose default allocator. + + User can define this to use CrtAllocator or MemoryPoolAllocator. +*/ +#ifndef RAPIDJSON_DEFAULT_ALLOCATOR +#define RAPIDJSON_DEFAULT_ALLOCATOR MemoryPoolAllocator +#endif + +/*! \def RAPIDJSON_DEFAULT_STACK_ALLOCATOR + \ingroup RAPIDJSON_CONFIG + \brief Allows to choose default stack allocator for Document. + + User can define this to use CrtAllocator or MemoryPoolAllocator. +*/ +#ifndef RAPIDJSON_DEFAULT_STACK_ALLOCATOR +#define RAPIDJSON_DEFAULT_STACK_ALLOCATOR CrtAllocator +#endif + +/*! \def RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY + \ingroup RAPIDJSON_CONFIG + \brief User defined kDefaultObjectCapacity value. + + User can define this as any natural number. +*/ +#ifndef RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY +// number of objects that rapidjson::Value allocates memory for by default +#define RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY 16 +#endif + +/*! \def RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY + \ingroup RAPIDJSON_CONFIG + \brief User defined kDefaultArrayCapacity value. + + User can define this as any natural number. +*/ +#ifndef RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY +// number of array elements that rapidjson::Value allocates memory for by default +#define RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY 16 +#endif + +//! Name-value pair in a JSON object value. +/*! + This class was internal to GenericValue. It used to be a inner struct. + But a compiler (IBM XL C/C++ for AIX) have reported to have problem with that so it moved as a namespace scope struct. + https://code.google.com/p/rapidjson/issues/detail?id=64 +*/ +template +class GenericMember { +public: + GenericValue name; //!< name of member (must be a string) + GenericValue value; //!< value of member. + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move constructor in C++11 + GenericMember(GenericMember&& rhs) RAPIDJSON_NOEXCEPT + : name(std::move(rhs.name)), + value(std::move(rhs.value)) + { + } + + //! Move assignment in C++11 + GenericMember& operator=(GenericMember&& rhs) RAPIDJSON_NOEXCEPT { + return *this = static_cast(rhs); + } +#endif + + //! Assignment with move semantics. + /*! \param rhs Source of the assignment. Its name and value will become a null value after assignment. + */ + GenericMember& operator=(GenericMember& rhs) RAPIDJSON_NOEXCEPT { + if (RAPIDJSON_LIKELY(this != &rhs)) { + name = rhs.name; + value = rhs.value; + } + return *this; + } + + // swap() for std::sort() and other potential use in STL. + friend inline void swap(GenericMember& a, GenericMember& b) RAPIDJSON_NOEXCEPT { + a.name.Swap(b.name); + a.value.Swap(b.value); + } + +private: + //! Copy constructor is not permitted. + GenericMember(const GenericMember& rhs); +}; + +/////////////////////////////////////////////////////////////////////////////// +// GenericMemberIterator + +#ifndef RAPIDJSON_NOMEMBERITERATORCLASS + +//! (Constant) member iterator for a JSON object value +/*! + \tparam Const Is this a constant iterator? + \tparam Encoding Encoding of the value. (Even non-string values need to have the same encoding in a document) + \tparam Allocator Allocator type for allocating memory of object, array and string. + + This class implements a Random Access Iterator for GenericMember elements + of a GenericValue, see ISO/IEC 14882:2003(E) C++ standard, 24.1 [lib.iterator.requirements]. + + \note This iterator implementation is mainly intended to avoid implicit + conversions from iterator values to \c NULL, + e.g. from GenericValue::FindMember. + + \note Define \c RAPIDJSON_NOMEMBERITERATORCLASS to fall back to a + pointer-based implementation, if your platform doesn't provide + the C++ header. + + \see GenericMember, GenericValue::MemberIterator, GenericValue::ConstMemberIterator + */ +template +class GenericMemberIterator { + + friend class GenericValue; + template friend class GenericMemberIterator; + + typedef GenericMember PlainType; + typedef typename internal::MaybeAddConst::Type ValueType; + +public: + //! Iterator type itself + typedef GenericMemberIterator Iterator; + //! Constant iterator type + typedef GenericMemberIterator ConstIterator; + //! Non-constant iterator type + typedef GenericMemberIterator NonConstIterator; + + /** \name std::iterator_traits support */ + //@{ + typedef ValueType value_type; + typedef ValueType * pointer; + typedef ValueType & reference; + typedef std::ptrdiff_t difference_type; + typedef std::random_access_iterator_tag iterator_category; + //@} + + //! Pointer to (const) GenericMember + typedef pointer Pointer; + //! Reference to (const) GenericMember + typedef reference Reference; + //! Signed integer type (e.g. \c ptrdiff_t) + typedef difference_type DifferenceType; + + //! Default constructor (singular value) + /*! Creates an iterator pointing to no element. + \note All operations, except for comparisons, are undefined on such values. + */ + GenericMemberIterator() : ptr_() {} + + //! Iterator conversions to more const + /*! + \param it (Non-const) iterator to copy from + + Allows the creation of an iterator from another GenericMemberIterator + that is "less const". Especially, creating a non-constant iterator + from a constant iterator are disabled: + \li const -> non-const (not ok) + \li const -> const (ok) + \li non-const -> const (ok) + \li non-const -> non-const (ok) + + \note If the \c Const template parameter is already \c false, this + constructor effectively defines a regular copy-constructor. + Otherwise, the copy constructor is implicitly defined. + */ + GenericMemberIterator(const NonConstIterator & it) : ptr_(it.ptr_) {} + Iterator& operator=(const NonConstIterator & it) { ptr_ = it.ptr_; return *this; } + + //! @name stepping + //@{ + Iterator& operator++(){ ++ptr_; return *this; } + Iterator& operator--(){ --ptr_; return *this; } + Iterator operator++(int){ Iterator old(*this); ++ptr_; return old; } + Iterator operator--(int){ Iterator old(*this); --ptr_; return old; } + //@} + + //! @name increment/decrement + //@{ + Iterator operator+(DifferenceType n) const { return Iterator(ptr_+n); } + Iterator operator-(DifferenceType n) const { return Iterator(ptr_-n); } + + Iterator& operator+=(DifferenceType n) { ptr_+=n; return *this; } + Iterator& operator-=(DifferenceType n) { ptr_-=n; return *this; } + //@} + + //! @name relations + //@{ + template bool operator==(const GenericMemberIterator& that) const { return ptr_ == that.ptr_; } + template bool operator!=(const GenericMemberIterator& that) const { return ptr_ != that.ptr_; } + template bool operator<=(const GenericMemberIterator& that) const { return ptr_ <= that.ptr_; } + template bool operator>=(const GenericMemberIterator& that) const { return ptr_ >= that.ptr_; } + template bool operator< (const GenericMemberIterator& that) const { return ptr_ < that.ptr_; } + template bool operator> (const GenericMemberIterator& that) const { return ptr_ > that.ptr_; } + +#ifdef __cpp_lib_three_way_comparison + template std::strong_ordering operator<=>(const GenericMemberIterator& that) const { return ptr_ <=> that.ptr_; } +#endif + //@} + + //! @name dereference + //@{ + Reference operator*() const { return *ptr_; } + Pointer operator->() const { return ptr_; } + Reference operator[](DifferenceType n) const { return ptr_[n]; } + //@} + + //! Distance + DifferenceType operator-(ConstIterator that) const { return ptr_-that.ptr_; } + +private: + //! Internal constructor from plain pointer + explicit GenericMemberIterator(Pointer p) : ptr_(p) {} + + Pointer ptr_; //!< raw pointer +}; + +#else // RAPIDJSON_NOMEMBERITERATORCLASS + +// class-based member iterator implementation disabled, use plain pointers + +template +class GenericMemberIterator; + +//! non-const GenericMemberIterator +template +class GenericMemberIterator { + //! use plain pointer as iterator type + typedef GenericMember* Iterator; +}; +//! const GenericMemberIterator +template +class GenericMemberIterator { + //! use plain const pointer as iterator type + typedef const GenericMember* Iterator; +}; + +#endif // RAPIDJSON_NOMEMBERITERATORCLASS + +/////////////////////////////////////////////////////////////////////////////// +// GenericStringRef + +//! Reference to a constant string (not taking a copy) +/*! + \tparam CharType character type of the string + + This helper class is used to automatically infer constant string + references for string literals, especially from \c const \b (!) + character arrays. + + The main use is for creating JSON string values without copying the + source string via an \ref Allocator. This requires that the referenced + string pointers have a sufficient lifetime, which exceeds the lifetime + of the associated GenericValue. + + \b Example + \code + Value v("foo"); // ok, no need to copy & calculate length + const char foo[] = "foo"; + v.SetString(foo); // ok + + const char* bar = foo; + // Value x(bar); // not ok, can't rely on bar's lifetime + Value x(StringRef(bar)); // lifetime explicitly guaranteed by user + Value y(StringRef(bar, 3)); // ok, explicitly pass length + \endcode + + \see StringRef, GenericValue::SetString +*/ +template +struct GenericStringRef { + typedef CharType Ch; //!< character type of the string + + //! Create string reference from \c const character array +#ifndef __clang__ // -Wdocumentation + /*! + This constructor implicitly creates a constant string reference from + a \c const character array. It has better performance than + \ref StringRef(const CharType*) by inferring the string \ref length + from the array length, and also supports strings containing null + characters. + + \tparam N length of the string, automatically inferred + + \param str Constant character array, lifetime assumed to be longer + than the use of the string in e.g. a GenericValue + + \post \ref s == str + + \note Constant complexity. + \note There is a hidden, private overload to disallow references to + non-const character arrays to be created via this constructor. + By this, e.g. function-scope arrays used to be filled via + \c snprintf are excluded from consideration. + In such cases, the referenced string should be \b copied to the + GenericValue instead. + */ +#endif + template + GenericStringRef(const CharType (&str)[N]) RAPIDJSON_NOEXCEPT + : s(str), length(N-1) {} + + //! Explicitly create string reference from \c const character pointer +#ifndef __clang__ // -Wdocumentation + /*! + This constructor can be used to \b explicitly create a reference to + a constant string pointer. + + \see StringRef(const CharType*) + + \param str Constant character pointer, lifetime assumed to be longer + than the use of the string in e.g. a GenericValue + + \post \ref s == str + + \note There is a hidden, private overload to disallow references to + non-const character arrays to be created via this constructor. + By this, e.g. function-scope arrays used to be filled via + \c snprintf are excluded from consideration. + In such cases, the referenced string should be \b copied to the + GenericValue instead. + */ +#endif + explicit GenericStringRef(const CharType* str) + : s(str), length(NotNullStrLen(str)) {} + + //! Create constant string reference from pointer and length +#ifndef __clang__ // -Wdocumentation + /*! \param str constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue + \param len length of the string, excluding the trailing NULL terminator + + \post \ref s == str && \ref length == len + \note Constant complexity. + */ +#endif + GenericStringRef(const CharType* str, SizeType len) + : s(RAPIDJSON_LIKELY(str) ? str : emptyString), length(len) { RAPIDJSON_ASSERT(str != 0 || len == 0u); } + + GenericStringRef(const GenericStringRef& rhs) : s(rhs.s), length(rhs.length) {} + + //! implicit conversion to plain CharType pointer + operator const Ch *() const { return s; } + + const Ch* const s; //!< plain CharType pointer + const SizeType length; //!< length of the string (excluding the trailing NULL terminator) + +private: + SizeType NotNullStrLen(const CharType* str) { + RAPIDJSON_ASSERT(str != 0); + return internal::StrLen(str); + } + + /// Empty string - used when passing in a NULL pointer + static const Ch emptyString[]; + + //! Disallow construction from non-const array + template + GenericStringRef(CharType (&str)[N]) /* = delete */; + //! Copy assignment operator not permitted - immutable type + GenericStringRef& operator=(const GenericStringRef& rhs) /* = delete */; +}; + +template +const CharType GenericStringRef::emptyString[] = { CharType() }; + +//! Mark a character pointer as constant string +/*! Mark a plain character pointer as a "string literal". This function + can be used to avoid copying a character string to be referenced as a + value in a JSON GenericValue object, if the string's lifetime is known + to be valid long enough. + \tparam CharType Character type of the string + \param str Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue + \return GenericStringRef string reference object + \relatesalso GenericStringRef + + \see GenericValue::GenericValue(StringRefType), GenericValue::operator=(StringRefType), GenericValue::SetString(StringRefType), GenericValue::PushBack(StringRefType, Allocator&), GenericValue::AddMember +*/ +template +inline GenericStringRef StringRef(const CharType* str) { + return GenericStringRef(str); +} + +//! Mark a character pointer as constant string +/*! Mark a plain character pointer as a "string literal". This function + can be used to avoid copying a character string to be referenced as a + value in a JSON GenericValue object, if the string's lifetime is known + to be valid long enough. + + This version has better performance with supplied length, and also + supports string containing null characters. + + \tparam CharType character type of the string + \param str Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue + \param length The length of source string. + \return GenericStringRef string reference object + \relatesalso GenericStringRef +*/ +template +inline GenericStringRef StringRef(const CharType* str, size_t length) { + return GenericStringRef(str, SizeType(length)); +} + +#if RAPIDJSON_HAS_STDSTRING +//! Mark a string object as constant string +/*! Mark a string object (e.g. \c std::string) as a "string literal". + This function can be used to avoid copying a string to be referenced as a + value in a JSON GenericValue object, if the string's lifetime is known + to be valid long enough. + + \tparam CharType character type of the string + \param str Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue + \return GenericStringRef string reference object + \relatesalso GenericStringRef + \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. +*/ +template +inline GenericStringRef StringRef(const std::basic_string& str) { + return GenericStringRef(str.data(), SizeType(str.size())); +} +#endif + +/////////////////////////////////////////////////////////////////////////////// +// GenericValue type traits +namespace internal { + +template +struct IsGenericValueImpl : FalseType {}; + +// select candidates according to nested encoding and allocator types +template struct IsGenericValueImpl::Type, typename Void::Type> + : IsBaseOf, T>::Type {}; + +// helper to match arbitrary GenericValue instantiations, including derived classes +template struct IsGenericValue : IsGenericValueImpl::Type {}; + +} // namespace internal + +/////////////////////////////////////////////////////////////////////////////// +// TypeHelper + +namespace internal { + +template +struct TypeHelper {}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsBool(); } + static bool Get(const ValueType& v) { return v.GetBool(); } + static ValueType& Set(ValueType& v, bool data) { return v.SetBool(data); } + static ValueType& Set(ValueType& v, bool data, typename ValueType::AllocatorType&) { return v.SetBool(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsInt(); } + static int Get(const ValueType& v) { return v.GetInt(); } + static ValueType& Set(ValueType& v, int data) { return v.SetInt(data); } + static ValueType& Set(ValueType& v, int data, typename ValueType::AllocatorType&) { return v.SetInt(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsUint(); } + static unsigned Get(const ValueType& v) { return v.GetUint(); } + static ValueType& Set(ValueType& v, unsigned data) { return v.SetUint(data); } + static ValueType& Set(ValueType& v, unsigned data, typename ValueType::AllocatorType&) { return v.SetUint(data); } +}; + +#ifdef _MSC_VER +RAPIDJSON_STATIC_ASSERT(sizeof(long) == sizeof(int)); +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsInt(); } + static long Get(const ValueType& v) { return v.GetInt(); } + static ValueType& Set(ValueType& v, long data) { return v.SetInt(data); } + static ValueType& Set(ValueType& v, long data, typename ValueType::AllocatorType&) { return v.SetInt(data); } +}; + +RAPIDJSON_STATIC_ASSERT(sizeof(unsigned long) == sizeof(unsigned)); +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsUint(); } + static unsigned long Get(const ValueType& v) { return v.GetUint(); } + static ValueType& Set(ValueType& v, unsigned long data) { return v.SetUint(data); } + static ValueType& Set(ValueType& v, unsigned long data, typename ValueType::AllocatorType&) { return v.SetUint(data); } +}; +#endif + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsInt64(); } + static int64_t Get(const ValueType& v) { return v.GetInt64(); } + static ValueType& Set(ValueType& v, int64_t data) { return v.SetInt64(data); } + static ValueType& Set(ValueType& v, int64_t data, typename ValueType::AllocatorType&) { return v.SetInt64(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsUint64(); } + static uint64_t Get(const ValueType& v) { return v.GetUint64(); } + static ValueType& Set(ValueType& v, uint64_t data) { return v.SetUint64(data); } + static ValueType& Set(ValueType& v, uint64_t data, typename ValueType::AllocatorType&) { return v.SetUint64(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsDouble(); } + static double Get(const ValueType& v) { return v.GetDouble(); } + static ValueType& Set(ValueType& v, double data) { return v.SetDouble(data); } + static ValueType& Set(ValueType& v, double data, typename ValueType::AllocatorType&) { return v.SetDouble(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsFloat(); } + static float Get(const ValueType& v) { return v.GetFloat(); } + static ValueType& Set(ValueType& v, float data) { return v.SetFloat(data); } + static ValueType& Set(ValueType& v, float data, typename ValueType::AllocatorType&) { return v.SetFloat(data); } +}; + +template +struct TypeHelper { + typedef const typename ValueType::Ch* StringType; + static bool Is(const ValueType& v) { return v.IsString(); } + static StringType Get(const ValueType& v) { return v.GetString(); } + static ValueType& Set(ValueType& v, const StringType data) { return v.SetString(typename ValueType::StringRefType(data)); } + static ValueType& Set(ValueType& v, const StringType data, typename ValueType::AllocatorType& a) { return v.SetString(data, a); } +}; + +#if RAPIDJSON_HAS_STDSTRING +template +struct TypeHelper > { + typedef std::basic_string StringType; + static bool Is(const ValueType& v) { return v.IsString(); } + static StringType Get(const ValueType& v) { return StringType(v.GetString(), v.GetStringLength()); } + static ValueType& Set(ValueType& v, const StringType& data, typename ValueType::AllocatorType& a) { return v.SetString(data, a); } +}; +#endif + +template +struct TypeHelper { + typedef typename ValueType::Array ArrayType; + static bool Is(const ValueType& v) { return v.IsArray(); } + static ArrayType Get(ValueType& v) { return v.GetArray(); } + static ValueType& Set(ValueType& v, ArrayType data) { return v = data; } + static ValueType& Set(ValueType& v, ArrayType data, typename ValueType::AllocatorType&) { return v = data; } +}; + +template +struct TypeHelper { + typedef typename ValueType::ConstArray ArrayType; + static bool Is(const ValueType& v) { return v.IsArray(); } + static ArrayType Get(const ValueType& v) { return v.GetArray(); } +}; + +template +struct TypeHelper { + typedef typename ValueType::Object ObjectType; + static bool Is(const ValueType& v) { return v.IsObject(); } + static ObjectType Get(ValueType& v) { return v.GetObject(); } + static ValueType& Set(ValueType& v, ObjectType data) { return v = data; } + static ValueType& Set(ValueType& v, ObjectType data, typename ValueType::AllocatorType&) { return v = data; } +}; + +template +struct TypeHelper { + typedef typename ValueType::ConstObject ObjectType; + static bool Is(const ValueType& v) { return v.IsObject(); } + static ObjectType Get(const ValueType& v) { return v.GetObject(); } +}; + +} // namespace internal + +// Forward declarations +template class GenericArray; +template class GenericObject; + +/////////////////////////////////////////////////////////////////////////////// +// GenericValue + +//! Represents a JSON value. Use Value for UTF8 encoding and default allocator. +/*! + A JSON value can be one of 7 types. This class is a variant type supporting + these types. + + Use the Value if UTF8 and default allocator + + \tparam Encoding Encoding of the value. (Even non-string values need to have the same encoding in a document) + \tparam Allocator Allocator type for allocating memory of object, array and string. +*/ +template +class GenericValue { +public: + //! Name-value pair in an object. + typedef GenericMember Member; + typedef Encoding EncodingType; //!< Encoding type from template parameter. + typedef Allocator AllocatorType; //!< Allocator type from template parameter. + typedef typename Encoding::Ch Ch; //!< Character type derived from Encoding. + typedef GenericStringRef StringRefType; //!< Reference to a constant string + typedef typename GenericMemberIterator::Iterator MemberIterator; //!< Member iterator for iterating in object. + typedef typename GenericMemberIterator::Iterator ConstMemberIterator; //!< Constant member iterator for iterating in object. + typedef GenericValue* ValueIterator; //!< Value iterator for iterating in array. + typedef const GenericValue* ConstValueIterator; //!< Constant value iterator for iterating in array. + typedef GenericValue ValueType; //!< Value type of itself. + typedef GenericArray Array; + typedef GenericArray ConstArray; + typedef GenericObject Object; + typedef GenericObject ConstObject; + + //!@name Constructors and destructor. + //@{ + + //! Default constructor creates a null value. + GenericValue() RAPIDJSON_NOEXCEPT : data_() { data_.f.flags = kNullFlag; } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move constructor in C++11 + GenericValue(GenericValue&& rhs) RAPIDJSON_NOEXCEPT : data_(rhs.data_) { + rhs.data_.f.flags = kNullFlag; // give up contents + } +#endif + +private: + //! Copy constructor is not permitted. + GenericValue(const GenericValue& rhs); + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Moving from a GenericDocument is not permitted. + template + GenericValue(GenericDocument&& rhs); + + //! Move assignment from a GenericDocument is not permitted. + template + GenericValue& operator=(GenericDocument&& rhs); +#endif + +public: + + //! Constructor with JSON value type. + /*! This creates a Value of specified type with default content. + \param type Type of the value. + \note Default content for number is zero. + */ + explicit GenericValue(Type type) RAPIDJSON_NOEXCEPT : data_() { + static const uint16_t defaultFlags[] = { + kNullFlag, kFalseFlag, kTrueFlag, kObjectFlag, kArrayFlag, kShortStringFlag, + kNumberAnyFlag + }; + RAPIDJSON_NOEXCEPT_ASSERT(type >= kNullType && type <= kNumberType); + data_.f.flags = defaultFlags[type]; + + // Use ShortString to store empty string. + if (type == kStringType) + data_.ss.SetLength(0); + } + + //! Explicit copy constructor (with allocator) + /*! Creates a copy of a Value by using the given Allocator + \tparam SourceAllocator allocator of \c rhs + \param rhs Value to copy from (read-only) + \param allocator Allocator for allocating copied elements and buffers. Commonly use GenericDocument::GetAllocator(). + \param copyConstStrings Force copying of constant strings (e.g. referencing an in-situ buffer) + \see CopyFrom() + */ + template + GenericValue(const GenericValue& rhs, Allocator& allocator, bool copyConstStrings = false) { + switch (rhs.GetType()) { + case kObjectType: { + SizeType count = rhs.data_.o.size; + Member* lm = reinterpret_cast(allocator.Malloc(count * sizeof(Member))); + const typename GenericValue::Member* rm = rhs.GetMembersPointer(); + for (SizeType i = 0; i < count; i++) { + new (&lm[i].name) GenericValue(rm[i].name, allocator, copyConstStrings); + new (&lm[i].value) GenericValue(rm[i].value, allocator, copyConstStrings); + } + data_.f.flags = kObjectFlag; + data_.o.size = data_.o.capacity = count; + SetMembersPointer(lm); + } + break; + case kArrayType: { + SizeType count = rhs.data_.a.size; + GenericValue* le = reinterpret_cast(allocator.Malloc(count * sizeof(GenericValue))); + const GenericValue* re = rhs.GetElementsPointer(); + for (SizeType i = 0; i < count; i++) + new (&le[i]) GenericValue(re[i], allocator, copyConstStrings); + data_.f.flags = kArrayFlag; + data_.a.size = data_.a.capacity = count; + SetElementsPointer(le); + } + break; + case kStringType: + if (rhs.data_.f.flags == kConstStringFlag && !copyConstStrings) { + data_.f.flags = rhs.data_.f.flags; + data_ = *reinterpret_cast(&rhs.data_); + } + else + SetStringRaw(StringRef(rhs.GetString(), rhs.GetStringLength()), allocator); + break; + default: + data_.f.flags = rhs.data_.f.flags; + data_ = *reinterpret_cast(&rhs.data_); + break; + } + } + + //! Constructor for boolean value. + /*! \param b Boolean value + \note This constructor is limited to \em real boolean values and rejects + implicitly converted types like arbitrary pointers. Use an explicit cast + to \c bool, if you want to construct a boolean JSON value in such cases. + */ +#ifndef RAPIDJSON_DOXYGEN_RUNNING // hide SFINAE from Doxygen + template + explicit GenericValue(T b, RAPIDJSON_ENABLEIF((internal::IsSame))) RAPIDJSON_NOEXCEPT // See #472 +#else + explicit GenericValue(bool b) RAPIDJSON_NOEXCEPT +#endif + : data_() { + // safe-guard against failing SFINAE + RAPIDJSON_STATIC_ASSERT((internal::IsSame::Value)); + data_.f.flags = b ? kTrueFlag : kFalseFlag; + } + + //! Constructor for int value. + explicit GenericValue(int i) RAPIDJSON_NOEXCEPT : data_() { + data_.n.i64 = i; + data_.f.flags = (i >= 0) ? (kNumberIntFlag | kUintFlag | kUint64Flag) : kNumberIntFlag; + } + + //! Constructor for unsigned value. + explicit GenericValue(unsigned u) RAPIDJSON_NOEXCEPT : data_() { + data_.n.u64 = u; + data_.f.flags = (u & 0x80000000) ? kNumberUintFlag : (kNumberUintFlag | kIntFlag | kInt64Flag); + } + + //! Constructor for int64_t value. + explicit GenericValue(int64_t i64) RAPIDJSON_NOEXCEPT : data_() { + data_.n.i64 = i64; + data_.f.flags = kNumberInt64Flag; + if (i64 >= 0) { + data_.f.flags |= kNumberUint64Flag; + if (!(static_cast(i64) & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x00000000))) + data_.f.flags |= kUintFlag; + if (!(static_cast(i64) & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x80000000))) + data_.f.flags |= kIntFlag; + } + else if (i64 >= static_cast(RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x80000000))) + data_.f.flags |= kIntFlag; + } + + //! Constructor for uint64_t value. + explicit GenericValue(uint64_t u64) RAPIDJSON_NOEXCEPT : data_() { + data_.n.u64 = u64; + data_.f.flags = kNumberUint64Flag; + if (!(u64 & RAPIDJSON_UINT64_C2(0x80000000, 0x00000000))) + data_.f.flags |= kInt64Flag; + if (!(u64 & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x00000000))) + data_.f.flags |= kUintFlag; + if (!(u64 & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x80000000))) + data_.f.flags |= kIntFlag; + } + + //! Constructor for double value. + explicit GenericValue(double d) RAPIDJSON_NOEXCEPT : data_() { data_.n.d = d; data_.f.flags = kNumberDoubleFlag; } + + //! Constructor for float value. + explicit GenericValue(float f) RAPIDJSON_NOEXCEPT : data_() { data_.n.d = static_cast(f); data_.f.flags = kNumberDoubleFlag; } + + //! Constructor for constant string (i.e. do not make a copy of string) + GenericValue(const Ch* s, SizeType length) RAPIDJSON_NOEXCEPT : data_() { SetStringRaw(StringRef(s, length)); } + + //! Constructor for constant string (i.e. do not make a copy of string) + explicit GenericValue(StringRefType s) RAPIDJSON_NOEXCEPT : data_() { SetStringRaw(s); } + + //! Constructor for copy-string (i.e. do make a copy of string) + GenericValue(const Ch* s, SizeType length, Allocator& allocator) : data_() { SetStringRaw(StringRef(s, length), allocator); } + + //! Constructor for copy-string (i.e. do make a copy of string) + GenericValue(const Ch*s, Allocator& allocator) : data_() { SetStringRaw(StringRef(s), allocator); } + +#if RAPIDJSON_HAS_STDSTRING + //! Constructor for copy-string from a string object (i.e. do make a copy of string) + /*! \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. + */ + GenericValue(const std::basic_string& s, Allocator& allocator) : data_() { SetStringRaw(StringRef(s), allocator); } +#endif + + //! Constructor for Array. + /*! + \param a An array obtained by \c GetArray(). + \note \c Array is always pass-by-value. + \note the source array is moved into this value and the sourec array becomes empty. + */ + GenericValue(Array a) RAPIDJSON_NOEXCEPT : data_(a.value_.data_) { + a.value_.data_ = Data(); + a.value_.data_.f.flags = kArrayFlag; + } + + //! Constructor for Object. + /*! + \param o An object obtained by \c GetObject(). + \note \c Object is always pass-by-value. + \note the source object is moved into this value and the sourec object becomes empty. + */ + GenericValue(Object o) RAPIDJSON_NOEXCEPT : data_(o.value_.data_) { + o.value_.data_ = Data(); + o.value_.data_.f.flags = kObjectFlag; + } + + //! Destructor. + /*! Need to destruct elements of array, members of object, or copy-string. + */ + ~GenericValue() { + if (Allocator::kNeedFree) { // Shortcut by Allocator's trait + switch(data_.f.flags) { + case kArrayFlag: + { + GenericValue* e = GetElementsPointer(); + for (GenericValue* v = e; v != e + data_.a.size; ++v) + v->~GenericValue(); + Allocator::Free(e); + } + break; + + case kObjectFlag: + for (MemberIterator m = MemberBegin(); m != MemberEnd(); ++m) + m->~Member(); + Allocator::Free(GetMembersPointer()); + break; + + case kCopyStringFlag: + Allocator::Free(const_cast(GetStringPointer())); + break; + + default: + break; // Do nothing for other types. + } + } + } + + //@} + + //!@name Assignment operators + //@{ + + //! Assignment with move semantics. + /*! \param rhs Source of the assignment. It will become a null value after assignment. + */ + GenericValue& operator=(GenericValue& rhs) RAPIDJSON_NOEXCEPT { + if (RAPIDJSON_LIKELY(this != &rhs)) { + this->~GenericValue(); + RawAssign(rhs); + } + return *this; + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move assignment in C++11 + GenericValue& operator=(GenericValue&& rhs) RAPIDJSON_NOEXCEPT { + return *this = rhs.Move(); + } +#endif + + //! Assignment of constant string reference (no copy) + /*! \param str Constant string reference to be assigned + \note This overload is needed to avoid clashes with the generic primitive type assignment overload below. + \see GenericStringRef, operator=(T) + */ + GenericValue& operator=(StringRefType str) RAPIDJSON_NOEXCEPT { + GenericValue s(str); + return *this = s; + } + + //! Assignment with primitive types. + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t + \param value The value to be assigned. + + \note The source type \c T explicitly disallows all pointer types, + especially (\c const) \ref Ch*. This helps avoiding implicitly + referencing character strings with insufficient lifetime, use + \ref SetString(const Ch*, Allocator&) (for copying) or + \ref StringRef() (to explicitly mark the pointer as constant) instead. + All other pointer types would implicitly convert to \c bool, + use \ref SetBool() instead. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::IsPointer), (GenericValue&)) + operator=(T value) { + GenericValue v(value); + return *this = v; + } + + //! Deep-copy assignment from Value + /*! Assigns a \b copy of the Value to the current Value object + \tparam SourceAllocator Allocator type of \c rhs + \param rhs Value to copy from (read-only) + \param allocator Allocator to use for copying + \param copyConstStrings Force copying of constant strings (e.g. referencing an in-situ buffer) + */ + template + GenericValue& CopyFrom(const GenericValue& rhs, Allocator& allocator, bool copyConstStrings = false) { + RAPIDJSON_ASSERT(static_cast(this) != static_cast(&rhs)); + this->~GenericValue(); + new (this) GenericValue(rhs, allocator, copyConstStrings); + return *this; + } + + //! Exchange the contents of this value with those of other. + /*! + \param other Another value. + \note Constant complexity. + */ + GenericValue& Swap(GenericValue& other) RAPIDJSON_NOEXCEPT { + GenericValue temp; + temp.RawAssign(*this); + RawAssign(other); + other.RawAssign(temp); + return *this; + } + + //! free-standing swap function helper + /*! + Helper function to enable support for common swap implementation pattern based on \c std::swap: + \code + void swap(MyClass& a, MyClass& b) { + using std::swap; + swap(a.value, b.value); + // ... + } + \endcode + \see Swap() + */ + friend inline void swap(GenericValue& a, GenericValue& b) RAPIDJSON_NOEXCEPT { a.Swap(b); } + + //! Prepare Value for move semantics + /*! \return *this */ + GenericValue& Move() RAPIDJSON_NOEXCEPT { return *this; } + //@} + + //!@name Equal-to and not-equal-to operators + //@{ + //! Equal-to operator + /*! + \note If an object contains duplicated named member, comparing equality with any object is always \c false. + \note Complexity is quadratic in Object's member number and linear for the rest (number of all values in the subtree and total lengths of all strings). + */ + template + bool operator==(const GenericValue& rhs) const { + typedef GenericValue RhsType; + if (GetType() != rhs.GetType()) + return false; + + switch (GetType()) { + case kObjectType: // Warning: O(n^2) inner-loop + if (data_.o.size != rhs.data_.o.size) + return false; + for (ConstMemberIterator lhsMemberItr = MemberBegin(); lhsMemberItr != MemberEnd(); ++lhsMemberItr) { + typename RhsType::ConstMemberIterator rhsMemberItr = rhs.FindMember(lhsMemberItr->name); + if (rhsMemberItr == rhs.MemberEnd() || lhsMemberItr->value != rhsMemberItr->value) + return false; + } + return true; + + case kArrayType: + if (data_.a.size != rhs.data_.a.size) + return false; + for (SizeType i = 0; i < data_.a.size; i++) + if ((*this)[i] != rhs[i]) + return false; + return true; + + case kStringType: + return StringEqual(rhs); + + case kNumberType: + if (IsDouble() || rhs.IsDouble()) { + double a = GetDouble(); // May convert from integer to double. + double b = rhs.GetDouble(); // Ditto + return a >= b && a <= b; // Prevent -Wfloat-equal + } + else + return data_.n.u64 == rhs.data_.n.u64; + + default: + return true; + } + } + + //! Equal-to operator with const C-string pointer + bool operator==(const Ch* rhs) const { return *this == GenericValue(StringRef(rhs)); } + +#if RAPIDJSON_HAS_STDSTRING + //! Equal-to operator with string object + /*! \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. + */ + bool operator==(const std::basic_string& rhs) const { return *this == GenericValue(StringRef(rhs)); } +#endif + + //! Equal-to operator with primitive types + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c double, \c true, \c false + */ + template RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr,internal::IsGenericValue >), (bool)) operator==(const T& rhs) const { return *this == GenericValue(rhs); } + + //! Not-equal-to operator + /*! \return !(*this == rhs) + */ + template + bool operator!=(const GenericValue& rhs) const { return !(*this == rhs); } + + //! Not-equal-to operator with const C-string pointer + bool operator!=(const Ch* rhs) const { return !(*this == rhs); } + + //! Not-equal-to operator with arbitrary types + /*! \return !(*this == rhs) + */ + template RAPIDJSON_DISABLEIF_RETURN((internal::IsGenericValue), (bool)) operator!=(const T& rhs) const { return !(*this == rhs); } + + //! Equal-to operator with arbitrary types (symmetric version) + /*! \return (rhs == lhs) + */ + template friend RAPIDJSON_DISABLEIF_RETURN((internal::IsGenericValue), (bool)) operator==(const T& lhs, const GenericValue& rhs) { return rhs == lhs; } + + //! Not-Equal-to operator with arbitrary types (symmetric version) + /*! \return !(rhs == lhs) + */ + template friend RAPIDJSON_DISABLEIF_RETURN((internal::IsGenericValue), (bool)) operator!=(const T& lhs, const GenericValue& rhs) { return !(rhs == lhs); } + //@} + + //!@name Type + //@{ + + Type GetType() const { return static_cast(data_.f.flags & kTypeMask); } + bool IsNull() const { return data_.f.flags == kNullFlag; } + bool IsFalse() const { return data_.f.flags == kFalseFlag; } + bool IsTrue() const { return data_.f.flags == kTrueFlag; } + bool IsBool() const { return (data_.f.flags & kBoolFlag) != 0; } + bool IsObject() const { return data_.f.flags == kObjectFlag; } + bool IsArray() const { return data_.f.flags == kArrayFlag; } + bool IsNumber() const { return (data_.f.flags & kNumberFlag) != 0; } + bool IsInt() const { return (data_.f.flags & kIntFlag) != 0; } + bool IsUint() const { return (data_.f.flags & kUintFlag) != 0; } + bool IsInt64() const { return (data_.f.flags & kInt64Flag) != 0; } + bool IsUint64() const { return (data_.f.flags & kUint64Flag) != 0; } + bool IsDouble() const { return (data_.f.flags & kDoubleFlag) != 0; } + bool IsString() const { return (data_.f.flags & kStringFlag) != 0; } + + // Checks whether a number can be losslessly converted to a double. + bool IsLosslessDouble() const { + if (!IsNumber()) return false; + if (IsUint64()) { + uint64_t u = GetUint64(); + volatile double d = static_cast(u); + return (d >= 0.0) + && (d < static_cast((std::numeric_limits::max)())) + && (u == static_cast(d)); + } + if (IsInt64()) { + int64_t i = GetInt64(); + volatile double d = static_cast(i); + return (d >= static_cast((std::numeric_limits::min)())) + && (d < static_cast((std::numeric_limits::max)())) + && (i == static_cast(d)); + } + return true; // double, int, uint are always lossless + } + + // Checks whether a number is a float (possible lossy). + bool IsFloat() const { + if ((data_.f.flags & kDoubleFlag) == 0) + return false; + double d = GetDouble(); + return d >= -3.4028234e38 && d <= 3.4028234e38; + } + // Checks whether a number can be losslessly converted to a float. + bool IsLosslessFloat() const { + if (!IsNumber()) return false; + double a = GetDouble(); + if (a < static_cast(-(std::numeric_limits::max)()) + || a > static_cast((std::numeric_limits::max)())) + return false; + double b = static_cast(static_cast(a)); + return a >= b && a <= b; // Prevent -Wfloat-equal + } + + //@} + + //!@name Null + //@{ + + GenericValue& SetNull() { this->~GenericValue(); new (this) GenericValue(); return *this; } + + //@} + + //!@name Bool + //@{ + + bool GetBool() const { RAPIDJSON_ASSERT(IsBool()); return data_.f.flags == kTrueFlag; } + //!< Set boolean value + /*! \post IsBool() == true */ + GenericValue& SetBool(bool b) { this->~GenericValue(); new (this) GenericValue(b); return *this; } + + //@} + + //!@name Object + //@{ + + //! Set this value as an empty object. + /*! \post IsObject() == true */ + GenericValue& SetObject() { this->~GenericValue(); new (this) GenericValue(kObjectType); return *this; } + + //! Get the number of members in the object. + SizeType MemberCount() const { RAPIDJSON_ASSERT(IsObject()); return data_.o.size; } + + //! Get the capacity of object. + SizeType MemberCapacity() const { RAPIDJSON_ASSERT(IsObject()); return data_.o.capacity; } + + //! Check whether the object is empty. + bool ObjectEmpty() const { RAPIDJSON_ASSERT(IsObject()); return data_.o.size == 0; } + + //! Get a value from an object associated with the name. + /*! \pre IsObject() == true + \tparam T Either \c Ch or \c const \c Ch (template used for disambiguation with \ref operator[](SizeType)) + \note In version 0.1x, if the member is not found, this function returns a null value. This makes issue 7. + Since 0.2, if the name is not correct, it will assert. + If user is unsure whether a member exists, user should use HasMember() first. + A better approach is to use FindMember(). + \note Linear time complexity. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::NotExpr::Type, Ch> >),(GenericValue&)) operator[](T* name) { + GenericValue n(StringRef(name)); + return (*this)[n]; + } + template + RAPIDJSON_DISABLEIF_RETURN((internal::NotExpr::Type, Ch> >),(const GenericValue&)) operator[](T* name) const { return const_cast(*this)[name]; } + + //! Get a value from an object associated with the name. + /*! \pre IsObject() == true + \tparam SourceAllocator Allocator of the \c name value + + \note Compared to \ref operator[](T*), this version is faster because it does not need a StrLen(). + And it can also handle strings with embedded null characters. + + \note Linear time complexity. + */ + template + GenericValue& operator[](const GenericValue& name) { + MemberIterator member = FindMember(name); + if (member != MemberEnd()) + return member->value; + else { + RAPIDJSON_ASSERT(false); // see above note + + // This will generate -Wexit-time-destructors in clang + // static GenericValue NullValue; + // return NullValue; + + // Use static buffer and placement-new to prevent destruction + static char buffer[sizeof(GenericValue)]; + return *new (buffer) GenericValue(); + } + } + template + const GenericValue& operator[](const GenericValue& name) const { return const_cast(*this)[name]; } + +#if RAPIDJSON_HAS_STDSTRING + //! Get a value from an object associated with name (string object). + GenericValue& operator[](const std::basic_string& name) { return (*this)[GenericValue(StringRef(name))]; } + const GenericValue& operator[](const std::basic_string& name) const { return (*this)[GenericValue(StringRef(name))]; } +#endif + + //! Const member iterator + /*! \pre IsObject() == true */ + ConstMemberIterator MemberBegin() const { RAPIDJSON_ASSERT(IsObject()); return ConstMemberIterator(GetMembersPointer()); } + //! Const \em past-the-end member iterator + /*! \pre IsObject() == true */ + ConstMemberIterator MemberEnd() const { RAPIDJSON_ASSERT(IsObject()); return ConstMemberIterator(GetMembersPointer() + data_.o.size); } + //! Member iterator + /*! \pre IsObject() == true */ + MemberIterator MemberBegin() { RAPIDJSON_ASSERT(IsObject()); return MemberIterator(GetMembersPointer()); } + //! \em Past-the-end member iterator + /*! \pre IsObject() == true */ + MemberIterator MemberEnd() { RAPIDJSON_ASSERT(IsObject()); return MemberIterator(GetMembersPointer() + data_.o.size); } + + //! Request the object to have enough capacity to store members. + /*! \param newCapacity The capacity that the object at least need to have. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \note Linear time complexity. + */ + GenericValue& MemberReserve(SizeType newCapacity, Allocator &allocator) { + RAPIDJSON_ASSERT(IsObject()); + if (newCapacity > data_.o.capacity) { + SetMembersPointer(reinterpret_cast(allocator.Realloc(GetMembersPointer(), data_.o.capacity * sizeof(Member), newCapacity * sizeof(Member)))); + data_.o.capacity = newCapacity; + } + return *this; + } + + //! Check whether a member exists in the object. + /*! + \param name Member name to be searched. + \pre IsObject() == true + \return Whether a member with that name exists. + \note It is better to use FindMember() directly if you need the obtain the value as well. + \note Linear time complexity. + */ + bool HasMember(const Ch* name) const { return FindMember(name) != MemberEnd(); } + +#if RAPIDJSON_HAS_STDSTRING + //! Check whether a member exists in the object with string object. + /*! + \param name Member name to be searched. + \pre IsObject() == true + \return Whether a member with that name exists. + \note It is better to use FindMember() directly if you need the obtain the value as well. + \note Linear time complexity. + */ + bool HasMember(const std::basic_string& name) const { return FindMember(name) != MemberEnd(); } +#endif + + //! Check whether a member exists in the object with GenericValue name. + /*! + This version is faster because it does not need a StrLen(). It can also handle string with null character. + \param name Member name to be searched. + \pre IsObject() == true + \return Whether a member with that name exists. + \note It is better to use FindMember() directly if you need the obtain the value as well. + \note Linear time complexity. + */ + template + bool HasMember(const GenericValue& name) const { return FindMember(name) != MemberEnd(); } + + //! Find member by name. + /*! + \param name Member name to be searched. + \pre IsObject() == true + \return Iterator to member, if it exists. + Otherwise returns \ref MemberEnd(). + + \note Earlier versions of Rapidjson returned a \c NULL pointer, in case + the requested member doesn't exist. For consistency with e.g. + \c std::map, this has been changed to MemberEnd() now. + \note Linear time complexity. + */ + MemberIterator FindMember(const Ch* name) { + GenericValue n(StringRef(name)); + return FindMember(n); + } + + ConstMemberIterator FindMember(const Ch* name) const { return const_cast(*this).FindMember(name); } + + //! Find member by name. + /*! + This version is faster because it does not need a StrLen(). It can also handle string with null character. + \param name Member name to be searched. + \pre IsObject() == true + \return Iterator to member, if it exists. + Otherwise returns \ref MemberEnd(). + + \note Earlier versions of Rapidjson returned a \c NULL pointer, in case + the requested member doesn't exist. For consistency with e.g. + \c std::map, this has been changed to MemberEnd() now. + \note Linear time complexity. + */ + template + MemberIterator FindMember(const GenericValue& name) { + RAPIDJSON_ASSERT(IsObject()); + RAPIDJSON_ASSERT(name.IsString()); + MemberIterator member = MemberBegin(); + for ( ; member != MemberEnd(); ++member) + if (name.StringEqual(member->name)) + break; + return member; + } + template ConstMemberIterator FindMember(const GenericValue& name) const { return const_cast(*this).FindMember(name); } + +#if RAPIDJSON_HAS_STDSTRING + //! Find member by string object name. + /*! + \param name Member name to be searched. + \pre IsObject() == true + \return Iterator to member, if it exists. + Otherwise returns \ref MemberEnd(). + */ + MemberIterator FindMember(const std::basic_string& name) { return FindMember(GenericValue(StringRef(name))); } + ConstMemberIterator FindMember(const std::basic_string& name) const { return FindMember(GenericValue(StringRef(name))); } +#endif + + //! Add a member (name-value pair) to the object. + /*! \param name A string value as name of member. + \param value Value of any type. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \note The ownership of \c name and \c value will be transferred to this object on success. + \pre IsObject() && name.IsString() + \post name.IsNull() && value.IsNull() + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(GenericValue& name, GenericValue& value, Allocator& allocator) { + RAPIDJSON_ASSERT(IsObject()); + RAPIDJSON_ASSERT(name.IsString()); + + ObjectData& o = data_.o; + if (o.size >= o.capacity) + MemberReserve(o.capacity == 0 ? kDefaultObjectCapacity : (o.capacity + (o.capacity + 1) / 2), allocator); + Member* members = GetMembersPointer(); + members[o.size].name.RawAssign(name); + members[o.size].value.RawAssign(value); + o.size++; + return *this; + } + + //! Add a constant string value as member (name-value pair) to the object. + /*! \param name A string value as name of member. + \param value constant string reference as value of member. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + \note This overload is needed to avoid clashes with the generic primitive type AddMember(GenericValue&,T,Allocator&) overload below. + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(GenericValue& name, StringRefType value, Allocator& allocator) { + GenericValue v(value); + return AddMember(name, v, allocator); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Add a string object as member (name-value pair) to the object. + /*! \param name A string value as name of member. + \param value constant string reference as value of member. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + \note This overload is needed to avoid clashes with the generic primitive type AddMember(GenericValue&,T,Allocator&) overload below. + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(GenericValue& name, std::basic_string& value, Allocator& allocator) { + GenericValue v(value, allocator); + return AddMember(name, v, allocator); + } +#endif + + //! Add any primitive value as member (name-value pair) to the object. + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t + \param name A string value as name of member. + \param value Value of primitive type \c T as value of member + \param allocator Allocator for reallocating memory. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + + \note The source type \c T explicitly disallows all pointer types, + especially (\c const) \ref Ch*. This helps avoiding implicitly + referencing character strings with insufficient lifetime, use + \ref AddMember(StringRefType, GenericValue&, Allocator&) or \ref + AddMember(StringRefType, StringRefType, Allocator&). + All other pointer types would implicitly convert to \c bool, + use an explicit cast instead, if needed. + \note Amortized Constant time complexity. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (GenericValue&)) + AddMember(GenericValue& name, T value, Allocator& allocator) { + GenericValue v(value); + return AddMember(name, v, allocator); + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericValue& AddMember(GenericValue&& name, GenericValue&& value, Allocator& allocator) { + return AddMember(name, value, allocator); + } + GenericValue& AddMember(GenericValue&& name, GenericValue& value, Allocator& allocator) { + return AddMember(name, value, allocator); + } + GenericValue& AddMember(GenericValue& name, GenericValue&& value, Allocator& allocator) { + return AddMember(name, value, allocator); + } + GenericValue& AddMember(StringRefType name, GenericValue&& value, Allocator& allocator) { + GenericValue n(name); + return AddMember(n, value, allocator); + } +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + + + //! Add a member (name-value pair) to the object. + /*! \param name A constant string reference as name of member. + \param value Value of any type. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \note The ownership of \c value will be transferred to this object on success. + \pre IsObject() + \post value.IsNull() + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(StringRefType name, GenericValue& value, Allocator& allocator) { + GenericValue n(name); + return AddMember(n, value, allocator); + } + + //! Add a constant string value as member (name-value pair) to the object. + /*! \param name A constant string reference as name of member. + \param value constant string reference as value of member. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + \note This overload is needed to avoid clashes with the generic primitive type AddMember(StringRefType,T,Allocator&) overload below. + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(StringRefType name, StringRefType value, Allocator& allocator) { + GenericValue v(value); + return AddMember(name, v, allocator); + } + + //! Add any primitive value as member (name-value pair) to the object. + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t + \param name A constant string reference as name of member. + \param value Value of primitive type \c T as value of member + \param allocator Allocator for reallocating memory. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + + \note The source type \c T explicitly disallows all pointer types, + especially (\c const) \ref Ch*. This helps avoiding implicitly + referencing character strings with insufficient lifetime, use + \ref AddMember(StringRefType, GenericValue&, Allocator&) or \ref + AddMember(StringRefType, StringRefType, Allocator&). + All other pointer types would implicitly convert to \c bool, + use an explicit cast instead, if needed. + \note Amortized Constant time complexity. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (GenericValue&)) + AddMember(StringRefType name, T value, Allocator& allocator) { + GenericValue n(name); + return AddMember(n, value, allocator); + } + + //! Remove all members in the object. + /*! This function do not deallocate memory in the object, i.e. the capacity is unchanged. + \note Linear time complexity. + */ + void RemoveAllMembers() { + RAPIDJSON_ASSERT(IsObject()); + for (MemberIterator m = MemberBegin(); m != MemberEnd(); ++m) + m->~Member(); + data_.o.size = 0; + } + + //! Remove a member in object by its name. + /*! \param name Name of member to be removed. + \return Whether the member existed. + \note This function may reorder the object members. Use \ref + EraseMember(ConstMemberIterator) if you need to preserve the + relative order of the remaining members. + \note Linear time complexity. + */ + bool RemoveMember(const Ch* name) { + GenericValue n(StringRef(name)); + return RemoveMember(n); + } + +#if RAPIDJSON_HAS_STDSTRING + bool RemoveMember(const std::basic_string& name) { return RemoveMember(GenericValue(StringRef(name))); } +#endif + + template + bool RemoveMember(const GenericValue& name) { + MemberIterator m = FindMember(name); + if (m != MemberEnd()) { + RemoveMember(m); + return true; + } + else + return false; + } + + //! Remove a member in object by iterator. + /*! \param m member iterator (obtained by FindMember() or MemberBegin()). + \return the new iterator after removal. + \note This function may reorder the object members. Use \ref + EraseMember(ConstMemberIterator) if you need to preserve the + relative order of the remaining members. + \note Constant time complexity. + */ + MemberIterator RemoveMember(MemberIterator m) { + RAPIDJSON_ASSERT(IsObject()); + RAPIDJSON_ASSERT(data_.o.size > 0); + RAPIDJSON_ASSERT(GetMembersPointer() != 0); + RAPIDJSON_ASSERT(m >= MemberBegin() && m < MemberEnd()); + + MemberIterator last(GetMembersPointer() + (data_.o.size - 1)); + if (data_.o.size > 1 && m != last) + *m = *last; // Move the last one to this place + else + m->~Member(); // Only one left, just destroy + --data_.o.size; + return m; + } + + //! Remove a member from an object by iterator. + /*! \param pos iterator to the member to remove + \pre IsObject() == true && \ref MemberBegin() <= \c pos < \ref MemberEnd() + \return Iterator following the removed element. + If the iterator \c pos refers to the last element, the \ref MemberEnd() iterator is returned. + \note This function preserves the relative order of the remaining object + members. If you do not need this, use the more efficient \ref RemoveMember(MemberIterator). + \note Linear time complexity. + */ + MemberIterator EraseMember(ConstMemberIterator pos) { + return EraseMember(pos, pos +1); + } + + //! Remove members in the range [first, last) from an object. + /*! \param first iterator to the first member to remove + \param last iterator following the last member to remove + \pre IsObject() == true && \ref MemberBegin() <= \c first <= \c last <= \ref MemberEnd() + \return Iterator following the last removed element. + \note This function preserves the relative order of the remaining object + members. + \note Linear time complexity. + */ + MemberIterator EraseMember(ConstMemberIterator first, ConstMemberIterator last) { + RAPIDJSON_ASSERT(IsObject()); + RAPIDJSON_ASSERT(data_.o.size > 0); + RAPIDJSON_ASSERT(GetMembersPointer() != 0); + RAPIDJSON_ASSERT(first >= MemberBegin()); + RAPIDJSON_ASSERT(first <= last); + RAPIDJSON_ASSERT(last <= MemberEnd()); + + MemberIterator pos = MemberBegin() + (first - MemberBegin()); + for (MemberIterator itr = pos; itr != last; ++itr) + itr->~Member(); + std::memmove(static_cast(&*pos), &*last, static_cast(MemberEnd() - last) * sizeof(Member)); + data_.o.size -= static_cast(last - first); + return pos; + } + + //! Erase a member in object by its name. + /*! \param name Name of member to be removed. + \return Whether the member existed. + \note Linear time complexity. + */ + bool EraseMember(const Ch* name) { + GenericValue n(StringRef(name)); + return EraseMember(n); + } + +#if RAPIDJSON_HAS_STDSTRING + bool EraseMember(const std::basic_string& name) { return EraseMember(GenericValue(StringRef(name))); } +#endif + + template + bool EraseMember(const GenericValue& name) { + MemberIterator m = FindMember(name); + if (m != MemberEnd()) { + EraseMember(m); + return true; + } + else + return false; + } + + Object GetObject() { RAPIDJSON_ASSERT(IsObject()); return Object(*this); } + ConstObject GetObject() const { RAPIDJSON_ASSERT(IsObject()); return ConstObject(*this); } + + //@} + + //!@name Array + //@{ + + //! Set this value as an empty array. + /*! \post IsArray == true */ + GenericValue& SetArray() { this->~GenericValue(); new (this) GenericValue(kArrayType); return *this; } + + //! Get the number of elements in array. + SizeType Size() const { RAPIDJSON_ASSERT(IsArray()); return data_.a.size; } + + //! Get the capacity of array. + SizeType Capacity() const { RAPIDJSON_ASSERT(IsArray()); return data_.a.capacity; } + + //! Check whether the array is empty. + bool Empty() const { RAPIDJSON_ASSERT(IsArray()); return data_.a.size == 0; } + + //! Remove all elements in the array. + /*! This function do not deallocate memory in the array, i.e. the capacity is unchanged. + \note Linear time complexity. + */ + void Clear() { + RAPIDJSON_ASSERT(IsArray()); + GenericValue* e = GetElementsPointer(); + for (GenericValue* v = e; v != e + data_.a.size; ++v) + v->~GenericValue(); + data_.a.size = 0; + } + + //! Get an element from array by index. + /*! \pre IsArray() == true + \param index Zero-based index of element. + \see operator[](T*) + */ + GenericValue& operator[](SizeType index) { + RAPIDJSON_ASSERT(IsArray()); + RAPIDJSON_ASSERT(index < data_.a.size); + return GetElementsPointer()[index]; + } + const GenericValue& operator[](SizeType index) const { return const_cast(*this)[index]; } + + //! Element iterator + /*! \pre IsArray() == true */ + ValueIterator Begin() { RAPIDJSON_ASSERT(IsArray()); return GetElementsPointer(); } + //! \em Past-the-end element iterator + /*! \pre IsArray() == true */ + ValueIterator End() { RAPIDJSON_ASSERT(IsArray()); return GetElementsPointer() + data_.a.size; } + //! Constant element iterator + /*! \pre IsArray() == true */ + ConstValueIterator Begin() const { return const_cast(*this).Begin(); } + //! Constant \em past-the-end element iterator + /*! \pre IsArray() == true */ + ConstValueIterator End() const { return const_cast(*this).End(); } + + //! Request the array to have enough capacity to store elements. + /*! \param newCapacity The capacity that the array at least need to have. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \note Linear time complexity. + */ + GenericValue& Reserve(SizeType newCapacity, Allocator &allocator) { + RAPIDJSON_ASSERT(IsArray()); + if (newCapacity > data_.a.capacity) { + SetElementsPointer(reinterpret_cast(allocator.Realloc(GetElementsPointer(), data_.a.capacity * sizeof(GenericValue), newCapacity * sizeof(GenericValue)))); + data_.a.capacity = newCapacity; + } + return *this; + } + + //! Append a GenericValue at the end of the array. + /*! \param value Value to be appended. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \pre IsArray() == true + \post value.IsNull() == true + \return The value itself for fluent API. + \note The ownership of \c value will be transferred to this array on success. + \note If the number of elements to be appended is known, calls Reserve() once first may be more efficient. + \note Amortized constant time complexity. + */ + GenericValue& PushBack(GenericValue& value, Allocator& allocator) { + RAPIDJSON_ASSERT(IsArray()); + if (data_.a.size >= data_.a.capacity) + Reserve(data_.a.capacity == 0 ? kDefaultArrayCapacity : (data_.a.capacity + (data_.a.capacity + 1) / 2), allocator); + GetElementsPointer()[data_.a.size++].RawAssign(value); + return *this; + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericValue& PushBack(GenericValue&& value, Allocator& allocator) { + return PushBack(value, allocator); + } +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + + //! Append a constant string reference at the end of the array. + /*! \param value Constant string reference to be appended. + \param allocator Allocator for reallocating memory. It must be the same one used previously. Commonly use GenericDocument::GetAllocator(). + \pre IsArray() == true + \return The value itself for fluent API. + \note If the number of elements to be appended is known, calls Reserve() once first may be more efficient. + \note Amortized constant time complexity. + \see GenericStringRef + */ + GenericValue& PushBack(StringRefType value, Allocator& allocator) { + return (*this).template PushBack(value, allocator); + } + + //! Append a primitive value at the end of the array. + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t + \param value Value of primitive type T to be appended. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \pre IsArray() == true + \return The value itself for fluent API. + \note If the number of elements to be appended is known, calls Reserve() once first may be more efficient. + + \note The source type \c T explicitly disallows all pointer types, + especially (\c const) \ref Ch*. This helps avoiding implicitly + referencing character strings with insufficient lifetime, use + \ref PushBack(GenericValue&, Allocator&) or \ref + PushBack(StringRefType, Allocator&). + All other pointer types would implicitly convert to \c bool, + use an explicit cast instead, if needed. + \note Amortized constant time complexity. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (GenericValue&)) + PushBack(T value, Allocator& allocator) { + GenericValue v(value); + return PushBack(v, allocator); + } + + //! Remove the last element in the array. + /*! + \note Constant time complexity. + */ + GenericValue& PopBack() { + RAPIDJSON_ASSERT(IsArray()); + RAPIDJSON_ASSERT(!Empty()); + GetElementsPointer()[--data_.a.size].~GenericValue(); + return *this; + } + + //! Remove an element of array by iterator. + /*! + \param pos iterator to the element to remove + \pre IsArray() == true && \ref Begin() <= \c pos < \ref End() + \return Iterator following the removed element. If the iterator pos refers to the last element, the End() iterator is returned. + \note Linear time complexity. + */ + ValueIterator Erase(ConstValueIterator pos) { + return Erase(pos, pos + 1); + } + + //! Remove elements in the range [first, last) of the array. + /*! + \param first iterator to the first element to remove + \param last iterator following the last element to remove + \pre IsArray() == true && \ref Begin() <= \c first <= \c last <= \ref End() + \return Iterator following the last removed element. + \note Linear time complexity. + */ + ValueIterator Erase(ConstValueIterator first, ConstValueIterator last) { + RAPIDJSON_ASSERT(IsArray()); + RAPIDJSON_ASSERT(data_.a.size > 0); + RAPIDJSON_ASSERT(GetElementsPointer() != 0); + RAPIDJSON_ASSERT(first >= Begin()); + RAPIDJSON_ASSERT(first <= last); + RAPIDJSON_ASSERT(last <= End()); + ValueIterator pos = Begin() + (first - Begin()); + for (ValueIterator itr = pos; itr != last; ++itr) + itr->~GenericValue(); + std::memmove(static_cast(pos), last, static_cast(End() - last) * sizeof(GenericValue)); + data_.a.size -= static_cast(last - first); + return pos; + } + + Array GetArray() { RAPIDJSON_ASSERT(IsArray()); return Array(*this); } + ConstArray GetArray() const { RAPIDJSON_ASSERT(IsArray()); return ConstArray(*this); } + + //@} + + //!@name Number + //@{ + + int GetInt() const { RAPIDJSON_ASSERT(data_.f.flags & kIntFlag); return data_.n.i.i; } + unsigned GetUint() const { RAPIDJSON_ASSERT(data_.f.flags & kUintFlag); return data_.n.u.u; } + int64_t GetInt64() const { RAPIDJSON_ASSERT(data_.f.flags & kInt64Flag); return data_.n.i64; } + uint64_t GetUint64() const { RAPIDJSON_ASSERT(data_.f.flags & kUint64Flag); return data_.n.u64; } + + //! Get the value as double type. + /*! \note If the value is 64-bit integer type, it may lose precision. Use \c IsLosslessDouble() to check whether the converison is lossless. + */ + double GetDouble() const { + RAPIDJSON_ASSERT(IsNumber()); + if ((data_.f.flags & kDoubleFlag) != 0) return data_.n.d; // exact type, no conversion. + if ((data_.f.flags & kIntFlag) != 0) return data_.n.i.i; // int -> double + if ((data_.f.flags & kUintFlag) != 0) return data_.n.u.u; // unsigned -> double + if ((data_.f.flags & kInt64Flag) != 0) return static_cast(data_.n.i64); // int64_t -> double (may lose precision) + RAPIDJSON_ASSERT((data_.f.flags & kUint64Flag) != 0); return static_cast(data_.n.u64); // uint64_t -> double (may lose precision) + } + + //! Get the value as float type. + /*! \note If the value is 64-bit integer type, it may lose precision. Use \c IsLosslessFloat() to check whether the converison is lossless. + */ + float GetFloat() const { + return static_cast(GetDouble()); + } + + GenericValue& SetInt(int i) { this->~GenericValue(); new (this) GenericValue(i); return *this; } + GenericValue& SetUint(unsigned u) { this->~GenericValue(); new (this) GenericValue(u); return *this; } + GenericValue& SetInt64(int64_t i64) { this->~GenericValue(); new (this) GenericValue(i64); return *this; } + GenericValue& SetUint64(uint64_t u64) { this->~GenericValue(); new (this) GenericValue(u64); return *this; } + GenericValue& SetDouble(double d) { this->~GenericValue(); new (this) GenericValue(d); return *this; } + GenericValue& SetFloat(float f) { this->~GenericValue(); new (this) GenericValue(static_cast(f)); return *this; } + + //@} + + //!@name String + //@{ + + const Ch* GetString() const { RAPIDJSON_ASSERT(IsString()); return (data_.f.flags & kInlineStrFlag) ? data_.ss.str : GetStringPointer(); } + + //! Get the length of string. + /*! Since rapidjson permits "\\u0000" in the json string, strlen(v.GetString()) may not equal to v.GetStringLength(). + */ + SizeType GetStringLength() const { RAPIDJSON_ASSERT(IsString()); return ((data_.f.flags & kInlineStrFlag) ? (data_.ss.GetLength()) : data_.s.length); } + + //! Set this value as a string without copying source string. + /*! This version has better performance with supplied length, and also support string containing null character. + \param s source string pointer. + \param length The length of source string, excluding the trailing null terminator. + \return The value itself for fluent API. + \post IsString() == true && GetString() == s && GetStringLength() == length + \see SetString(StringRefType) + */ + GenericValue& SetString(const Ch* s, SizeType length) { return SetString(StringRef(s, length)); } + + //! Set this value as a string without copying source string. + /*! \param s source string reference + \return The value itself for fluent API. + \post IsString() == true && GetString() == s && GetStringLength() == s.length + */ + GenericValue& SetString(StringRefType s) { this->~GenericValue(); SetStringRaw(s); return *this; } + + //! Set this value as a string by copying from source string. + /*! This version has better performance with supplied length, and also support string containing null character. + \param s source string. + \param length The length of source string, excluding the trailing null terminator. + \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \post IsString() == true && GetString() != s && strcmp(GetString(),s) == 0 && GetStringLength() == length + */ + GenericValue& SetString(const Ch* s, SizeType length, Allocator& allocator) { return SetString(StringRef(s, length), allocator); } + + //! Set this value as a string by copying from source string. + /*! \param s source string. + \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \post IsString() == true && GetString() != s && strcmp(GetString(),s) == 0 && GetStringLength() == length + */ + GenericValue& SetString(const Ch* s, Allocator& allocator) { return SetString(StringRef(s), allocator); } + + //! Set this value as a string by copying from source string. + /*! \param s source string reference + \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \post IsString() == true && GetString() != s.s && strcmp(GetString(),s) == 0 && GetStringLength() == length + */ + GenericValue& SetString(StringRefType s, Allocator& allocator) { this->~GenericValue(); SetStringRaw(s, allocator); return *this; } + +#if RAPIDJSON_HAS_STDSTRING + //! Set this value as a string by copying from source string. + /*! \param s source string. + \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \post IsString() == true && GetString() != s.data() && strcmp(GetString(),s.data() == 0 && GetStringLength() == s.size() + \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. + */ + GenericValue& SetString(const std::basic_string& s, Allocator& allocator) { return SetString(StringRef(s), allocator); } +#endif + + //@} + + //!@name Array + //@{ + + //! Templated version for checking whether this value is type T. + /*! + \tparam T Either \c bool, \c int, \c unsigned, \c int64_t, \c uint64_t, \c double, \c float, \c const \c char*, \c std::basic_string + */ + template + bool Is() const { return internal::TypeHelper::Is(*this); } + + template + T Get() const { return internal::TypeHelper::Get(*this); } + + template + T Get() { return internal::TypeHelper::Get(*this); } + + template + ValueType& Set(const T& data) { return internal::TypeHelper::Set(*this, data); } + + template + ValueType& Set(const T& data, AllocatorType& allocator) { return internal::TypeHelper::Set(*this, data, allocator); } + + //@} + + //! Generate events of this value to a Handler. + /*! This function adopts the GoF visitor pattern. + Typical usage is to output this JSON value as JSON text via Writer, which is a Handler. + It can also be used to deep clone this value via GenericDocument, which is also a Handler. + \tparam Handler type of handler. + \param handler An object implementing concept Handler. + */ + template + bool Accept(Handler& handler) const { + switch(GetType()) { + case kNullType: return handler.Null(); + case kFalseType: return handler.Bool(false); + case kTrueType: return handler.Bool(true); + + case kObjectType: + if (RAPIDJSON_UNLIKELY(!handler.StartObject())) + return false; + for (ConstMemberIterator m = MemberBegin(); m != MemberEnd(); ++m) { + RAPIDJSON_ASSERT(m->name.IsString()); // User may change the type of name by MemberIterator. + if (RAPIDJSON_UNLIKELY(!handler.Key(m->name.GetString(), m->name.GetStringLength(), (m->name.data_.f.flags & kCopyFlag) != 0))) + return false; + if (RAPIDJSON_UNLIKELY(!m->value.Accept(handler))) + return false; + } + return handler.EndObject(data_.o.size); + + case kArrayType: + if (RAPIDJSON_UNLIKELY(!handler.StartArray())) + return false; + for (const GenericValue* v = Begin(); v != End(); ++v) + if (RAPIDJSON_UNLIKELY(!v->Accept(handler))) + return false; + return handler.EndArray(data_.a.size); + + case kStringType: + return handler.String(GetString(), GetStringLength(), (data_.f.flags & kCopyFlag) != 0); + + default: + RAPIDJSON_ASSERT(GetType() == kNumberType); + if (IsDouble()) return handler.Double(data_.n.d); + else if (IsInt()) return handler.Int(data_.n.i.i); + else if (IsUint()) return handler.Uint(data_.n.u.u); + else if (IsInt64()) return handler.Int64(data_.n.i64); + else return handler.Uint64(data_.n.u64); + } + } + +private: + template friend class GenericValue; + template friend class GenericDocument; + + enum { + kBoolFlag = 0x0008, + kNumberFlag = 0x0010, + kIntFlag = 0x0020, + kUintFlag = 0x0040, + kInt64Flag = 0x0080, + kUint64Flag = 0x0100, + kDoubleFlag = 0x0200, + kStringFlag = 0x0400, + kCopyFlag = 0x0800, + kInlineStrFlag = 0x1000, + + // Initial flags of different types. + kNullFlag = kNullType, + kTrueFlag = kTrueType | kBoolFlag, + kFalseFlag = kFalseType | kBoolFlag, + kNumberIntFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag, + kNumberUintFlag = kNumberType | kNumberFlag | kUintFlag | kUint64Flag | kInt64Flag, + kNumberInt64Flag = kNumberType | kNumberFlag | kInt64Flag, + kNumberUint64Flag = kNumberType | kNumberFlag | kUint64Flag, + kNumberDoubleFlag = kNumberType | kNumberFlag | kDoubleFlag, + kNumberAnyFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag | kUintFlag | kUint64Flag | kDoubleFlag, + kConstStringFlag = kStringType | kStringFlag, + kCopyStringFlag = kStringType | kStringFlag | kCopyFlag, + kShortStringFlag = kStringType | kStringFlag | kCopyFlag | kInlineStrFlag, + kObjectFlag = kObjectType, + kArrayFlag = kArrayType, + + kTypeMask = 0x07 + }; + + static const SizeType kDefaultArrayCapacity = RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY; + static const SizeType kDefaultObjectCapacity = RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY; + + struct Flag { +#if RAPIDJSON_48BITPOINTER_OPTIMIZATION + char payload[sizeof(SizeType) * 2 + 6]; // 2 x SizeType + lower 48-bit pointer +#elif RAPIDJSON_64BIT + char payload[sizeof(SizeType) * 2 + sizeof(void*) + 6]; // 6 padding bytes +#else + char payload[sizeof(SizeType) * 2 + sizeof(void*) + 2]; // 2 padding bytes +#endif + uint16_t flags; + }; + + struct String { + SizeType length; + SizeType hashcode; //!< reserved + const Ch* str; + }; // 12 bytes in 32-bit mode, 16 bytes in 64-bit mode + + // implementation detail: ShortString can represent zero-terminated strings up to MaxSize chars + // (excluding the terminating zero) and store a value to determine the length of the contained + // string in the last character str[LenPos] by storing "MaxSize - length" there. If the string + // to store has the maximal length of MaxSize then str[LenPos] will be 0 and therefore act as + // the string terminator as well. For getting the string length back from that value just use + // "MaxSize - str[LenPos]". + // This allows to store 13-chars strings in 32-bit mode, 21-chars strings in 64-bit mode, + // 13-chars strings for RAPIDJSON_48BITPOINTER_OPTIMIZATION=1 inline (for `UTF8`-encoded strings). + struct ShortString { + enum { MaxChars = sizeof(static_cast(0)->payload) / sizeof(Ch), MaxSize = MaxChars - 1, LenPos = MaxSize }; + Ch str[MaxChars]; + + inline static bool Usable(SizeType len) { return (MaxSize >= len); } + inline void SetLength(SizeType len) { str[LenPos] = static_cast(MaxSize - len); } + inline SizeType GetLength() const { return static_cast(MaxSize - str[LenPos]); } + }; // at most as many bytes as "String" above => 12 bytes in 32-bit mode, 16 bytes in 64-bit mode + + // By using proper binary layout, retrieval of different integer types do not need conversions. + union Number { +#if RAPIDJSON_ENDIAN == RAPIDJSON_LITTLEENDIAN + struct I { + int i; + char padding[4]; + }i; + struct U { + unsigned u; + char padding2[4]; + }u; +#else + struct I { + char padding[4]; + int i; + }i; + struct U { + char padding2[4]; + unsigned u; + }u; +#endif + int64_t i64; + uint64_t u64; + double d; + }; // 8 bytes + + struct ObjectData { + SizeType size; + SizeType capacity; + Member* members; + }; // 12 bytes in 32-bit mode, 16 bytes in 64-bit mode + + struct ArrayData { + SizeType size; + SizeType capacity; + GenericValue* elements; + }; // 12 bytes in 32-bit mode, 16 bytes in 64-bit mode + + union Data { + String s; + ShortString ss; + Number n; + ObjectData o; + ArrayData a; + Flag f; + }; // 16 bytes in 32-bit mode, 24 bytes in 64-bit mode, 16 bytes in 64-bit with RAPIDJSON_48BITPOINTER_OPTIMIZATION + + RAPIDJSON_FORCEINLINE const Ch* GetStringPointer() const { return RAPIDJSON_GETPOINTER(Ch, data_.s.str); } + RAPIDJSON_FORCEINLINE const Ch* SetStringPointer(const Ch* str) { return RAPIDJSON_SETPOINTER(Ch, data_.s.str, str); } + RAPIDJSON_FORCEINLINE GenericValue* GetElementsPointer() const { return RAPIDJSON_GETPOINTER(GenericValue, data_.a.elements); } + RAPIDJSON_FORCEINLINE GenericValue* SetElementsPointer(GenericValue* elements) { return RAPIDJSON_SETPOINTER(GenericValue, data_.a.elements, elements); } + RAPIDJSON_FORCEINLINE Member* GetMembersPointer() const { return RAPIDJSON_GETPOINTER(Member, data_.o.members); } + RAPIDJSON_FORCEINLINE Member* SetMembersPointer(Member* members) { return RAPIDJSON_SETPOINTER(Member, data_.o.members, members); } + + // Initialize this value as array with initial data, without calling destructor. + void SetArrayRaw(GenericValue* values, SizeType count, Allocator& allocator) { + data_.f.flags = kArrayFlag; + if (count) { + GenericValue* e = static_cast(allocator.Malloc(count * sizeof(GenericValue))); + SetElementsPointer(e); + std::memcpy(static_cast(e), values, count * sizeof(GenericValue)); + } + else + SetElementsPointer(0); + data_.a.size = data_.a.capacity = count; + } + + //! Initialize this value as object with initial data, without calling destructor. + void SetObjectRaw(Member* members, SizeType count, Allocator& allocator) { + data_.f.flags = kObjectFlag; + if (count) { + Member* m = static_cast(allocator.Malloc(count * sizeof(Member))); + SetMembersPointer(m); + std::memcpy(static_cast(m), members, count * sizeof(Member)); + } + else + SetMembersPointer(0); + data_.o.size = data_.o.capacity = count; + } + + //! Initialize this value as constant string, without calling destructor. + void SetStringRaw(StringRefType s) RAPIDJSON_NOEXCEPT { + data_.f.flags = kConstStringFlag; + SetStringPointer(s); + data_.s.length = s.length; + } + + //! Initialize this value as copy string with initial data, without calling destructor. + void SetStringRaw(StringRefType s, Allocator& allocator) { + Ch* str = 0; + if (ShortString::Usable(s.length)) { + data_.f.flags = kShortStringFlag; + data_.ss.SetLength(s.length); + str = data_.ss.str; + } else { + data_.f.flags = kCopyStringFlag; + data_.s.length = s.length; + str = static_cast(allocator.Malloc((s.length + 1) * sizeof(Ch))); + SetStringPointer(str); + } + std::memcpy(str, s, s.length * sizeof(Ch)); + str[s.length] = '\0'; + } + + //! Assignment without calling destructor + void RawAssign(GenericValue& rhs) RAPIDJSON_NOEXCEPT { + data_ = rhs.data_; + // data_.f.flags = rhs.data_.f.flags; + rhs.data_.f.flags = kNullFlag; + } + + template + bool StringEqual(const GenericValue& rhs) const { + RAPIDJSON_ASSERT(IsString()); + RAPIDJSON_ASSERT(rhs.IsString()); + + const SizeType len1 = GetStringLength(); + const SizeType len2 = rhs.GetStringLength(); + if(len1 != len2) { return false; } + + const Ch* const str1 = GetString(); + const Ch* const str2 = rhs.GetString(); + if(str1 == str2) { return true; } // fast path for constant string + + return (std::memcmp(str1, str2, sizeof(Ch) * len1) == 0); + } + + Data data_; +}; + +//! GenericValue with UTF8 encoding +typedef GenericValue > Value; + +/////////////////////////////////////////////////////////////////////////////// +// GenericDocument + +//! A document for parsing JSON text as DOM. +/*! + \note implements Handler concept + \tparam Encoding Encoding for both parsing and string storage. + \tparam Allocator Allocator for allocating memory for the DOM + \tparam StackAllocator Allocator for allocating memory for stack during parsing. + \warning Although GenericDocument inherits from GenericValue, the API does \b not provide any virtual functions, especially no virtual destructor. To avoid memory leaks, do not \c delete a GenericDocument object via a pointer to a GenericValue. +*/ +template +class GenericDocument : public GenericValue { +public: + typedef typename Encoding::Ch Ch; //!< Character type derived from Encoding. + typedef GenericValue ValueType; //!< Value type of the document. + typedef Allocator AllocatorType; //!< Allocator type from template parameter. + + //! Constructor + /*! Creates an empty document of specified type. + \param type Mandatory type of object to create. + \param allocator Optional allocator for allocating memory. + \param stackCapacity Optional initial capacity of stack in bytes. + \param stackAllocator Optional allocator for allocating memory for stack. + */ + explicit GenericDocument(Type type, Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) : + GenericValue(type), allocator_(allocator), ownAllocator_(0), stack_(stackAllocator, stackCapacity), parseResult_() + { + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + } + + //! Constructor + /*! Creates an empty document which type is Null. + \param allocator Optional allocator for allocating memory. + \param stackCapacity Optional initial capacity of stack in bytes. + \param stackAllocator Optional allocator for allocating memory for stack. + */ + GenericDocument(Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) : + allocator_(allocator), ownAllocator_(0), stack_(stackAllocator, stackCapacity), parseResult_() + { + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move constructor in C++11 + GenericDocument(GenericDocument&& rhs) RAPIDJSON_NOEXCEPT + : ValueType(std::forward(rhs)), // explicit cast to avoid prohibited move from Document + allocator_(rhs.allocator_), + ownAllocator_(rhs.ownAllocator_), + stack_(std::move(rhs.stack_)), + parseResult_(rhs.parseResult_) + { + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.parseResult_ = ParseResult(); + } +#endif + + ~GenericDocument() { + Destroy(); + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move assignment in C++11 + GenericDocument& operator=(GenericDocument&& rhs) RAPIDJSON_NOEXCEPT + { + // The cast to ValueType is necessary here, because otherwise it would + // attempt to call GenericValue's templated assignment operator. + ValueType::operator=(std::forward(rhs)); + + // Calling the destructor here would prematurely call stack_'s destructor + Destroy(); + + allocator_ = rhs.allocator_; + ownAllocator_ = rhs.ownAllocator_; + stack_ = std::move(rhs.stack_); + parseResult_ = rhs.parseResult_; + + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.parseResult_ = ParseResult(); + + return *this; + } +#endif + + //! Exchange the contents of this document with those of another. + /*! + \param rhs Another document. + \note Constant complexity. + \see GenericValue::Swap + */ + GenericDocument& Swap(GenericDocument& rhs) RAPIDJSON_NOEXCEPT { + ValueType::Swap(rhs); + stack_.Swap(rhs.stack_); + internal::Swap(allocator_, rhs.allocator_); + internal::Swap(ownAllocator_, rhs.ownAllocator_); + internal::Swap(parseResult_, rhs.parseResult_); + return *this; + } + + // Allow Swap with ValueType. + // Refer to Effective C++ 3rd Edition/Item 33: Avoid hiding inherited names. + using ValueType::Swap; + + //! free-standing swap function helper + /*! + Helper function to enable support for common swap implementation pattern based on \c std::swap: + \code + void swap(MyClass& a, MyClass& b) { + using std::swap; + swap(a.doc, b.doc); + // ... + } + \endcode + \see Swap() + */ + friend inline void swap(GenericDocument& a, GenericDocument& b) RAPIDJSON_NOEXCEPT { a.Swap(b); } + + //! Populate this document by a generator which produces SAX events. + /*! \tparam Generator A functor with bool f(Handler) prototype. + \param g Generator functor which sends SAX events to the parameter. + \return The document itself for fluent API. + */ + template + GenericDocument& Populate(Generator& g) { + ClearStackOnExit scope(*this); + if (g(*this)) { + RAPIDJSON_ASSERT(stack_.GetSize() == sizeof(ValueType)); // Got one and only one root object + ValueType::operator=(*stack_.template Pop(1));// Move value from stack to document + } + return *this; + } + + //!@name Parse from stream + //!@{ + + //! Parse JSON text from an input stream (with Encoding conversion) + /*! \tparam parseFlags Combination of \ref ParseFlag. + \tparam SourceEncoding Encoding of input stream + \tparam InputStream Type of input stream, implementing Stream concept + \param is Input stream to be parsed. + \return The document itself for fluent API. + */ + template + GenericDocument& ParseStream(InputStream& is) { + GenericReader reader( + stack_.HasAllocator() ? &stack_.GetAllocator() : 0); + ClearStackOnExit scope(*this); + parseResult_ = reader.template Parse(is, *this); + if (parseResult_) { + RAPIDJSON_ASSERT(stack_.GetSize() == sizeof(ValueType)); // Got one and only one root object + ValueType::operator=(*stack_.template Pop(1));// Move value from stack to document + } + return *this; + } + + //! Parse JSON text from an input stream + /*! \tparam parseFlags Combination of \ref ParseFlag. + \tparam InputStream Type of input stream, implementing Stream concept + \param is Input stream to be parsed. + \return The document itself for fluent API. + */ + template + GenericDocument& ParseStream(InputStream& is) { + return ParseStream(is); + } + + //! Parse JSON text from an input stream (with \ref kParseDefaultFlags) + /*! \tparam InputStream Type of input stream, implementing Stream concept + \param is Input stream to be parsed. + \return The document itself for fluent API. + */ + template + GenericDocument& ParseStream(InputStream& is) { + return ParseStream(is); + } + //!@} + + //!@name Parse in-place from mutable string + //!@{ + + //! Parse JSON text from a mutable string + /*! \tparam parseFlags Combination of \ref ParseFlag. + \param str Mutable zero-terminated string to be parsed. + \return The document itself for fluent API. + */ + template + GenericDocument& ParseInsitu(Ch* str) { + GenericInsituStringStream s(str); + return ParseStream(s); + } + + //! Parse JSON text from a mutable string (with \ref kParseDefaultFlags) + /*! \param str Mutable zero-terminated string to be parsed. + \return The document itself for fluent API. + */ + GenericDocument& ParseInsitu(Ch* str) { + return ParseInsitu(str); + } + //!@} + + //!@name Parse from read-only string + //!@{ + + //! Parse JSON text from a read-only string (with Encoding conversion) + /*! \tparam parseFlags Combination of \ref ParseFlag (must not contain \ref kParseInsituFlag). + \tparam SourceEncoding Transcoding from input Encoding + \param str Read-only zero-terminated string to be parsed. + */ + template + GenericDocument& Parse(const typename SourceEncoding::Ch* str) { + RAPIDJSON_ASSERT(!(parseFlags & kParseInsituFlag)); + GenericStringStream s(str); + return ParseStream(s); + } + + //! Parse JSON text from a read-only string + /*! \tparam parseFlags Combination of \ref ParseFlag (must not contain \ref kParseInsituFlag). + \param str Read-only zero-terminated string to be parsed. + */ + template + GenericDocument& Parse(const Ch* str) { + return Parse(str); + } + + //! Parse JSON text from a read-only string (with \ref kParseDefaultFlags) + /*! \param str Read-only zero-terminated string to be parsed. + */ + GenericDocument& Parse(const Ch* str) { + return Parse(str); + } + + template + GenericDocument& Parse(const typename SourceEncoding::Ch* str, size_t length) { + RAPIDJSON_ASSERT(!(parseFlags & kParseInsituFlag)); + MemoryStream ms(reinterpret_cast(str), length * sizeof(typename SourceEncoding::Ch)); + EncodedInputStream is(ms); + ParseStream(is); + return *this; + } + + template + GenericDocument& Parse(const Ch* str, size_t length) { + return Parse(str, length); + } + + GenericDocument& Parse(const Ch* str, size_t length) { + return Parse(str, length); + } + +#if RAPIDJSON_HAS_STDSTRING + template + GenericDocument& Parse(const std::basic_string& str) { + // c_str() is constant complexity according to standard. Should be faster than Parse(const char*, size_t) + return Parse(str.c_str()); + } + + template + GenericDocument& Parse(const std::basic_string& str) { + return Parse(str.c_str()); + } + + GenericDocument& Parse(const std::basic_string& str) { + return Parse(str); + } +#endif // RAPIDJSON_HAS_STDSTRING + + //!@} + + //!@name Handling parse errors + //!@{ + + //! Whether a parse error has occurred in the last parsing. + bool HasParseError() const { return parseResult_.IsError(); } + + //! Get the \ref ParseErrorCode of last parsing. + ParseErrorCode GetParseError() const { return parseResult_.Code(); } + + //! Get the position of last parsing error in input, 0 otherwise. + size_t GetErrorOffset() const { return parseResult_.Offset(); } + + //! Implicit conversion to get the last parse result +#ifndef __clang // -Wdocumentation + /*! \return \ref ParseResult of the last parse operation + + \code + Document doc; + ParseResult ok = doc.Parse(json); + if (!ok) + printf( "JSON parse error: %s (%u)\n", GetParseError_En(ok.Code()), ok.Offset()); + \endcode + */ +#endif + operator ParseResult() const { return parseResult_; } + //!@} + + //! Get the allocator of this document. + Allocator& GetAllocator() { + RAPIDJSON_ASSERT(allocator_); + return *allocator_; + } + + //! Get the capacity of stack in bytes. + size_t GetStackCapacity() const { return stack_.GetCapacity(); } + +private: + // clear stack on any exit from ParseStream, e.g. due to exception + struct ClearStackOnExit { + explicit ClearStackOnExit(GenericDocument& d) : d_(d) {} + ~ClearStackOnExit() { d_.ClearStack(); } + private: + ClearStackOnExit(const ClearStackOnExit&); + ClearStackOnExit& operator=(const ClearStackOnExit&); + GenericDocument& d_; + }; + + // callers of the following private Handler functions + // template friend class GenericReader; // for parsing + template friend class GenericValue; // for deep copying + +public: + // Implementation of Handler + bool Null() { new (stack_.template Push()) ValueType(); return true; } + bool Bool(bool b) { new (stack_.template Push()) ValueType(b); return true; } + bool Int(int i) { new (stack_.template Push()) ValueType(i); return true; } + bool Uint(unsigned i) { new (stack_.template Push()) ValueType(i); return true; } + bool Int64(int64_t i) { new (stack_.template Push()) ValueType(i); return true; } + bool Uint64(uint64_t i) { new (stack_.template Push()) ValueType(i); return true; } + bool Double(double d) { new (stack_.template Push()) ValueType(d); return true; } + + bool RawNumber(const Ch* str, SizeType length, bool copy) { + if (copy) + new (stack_.template Push()) ValueType(str, length, GetAllocator()); + else + new (stack_.template Push()) ValueType(str, length); + return true; + } + + bool String(const Ch* str, SizeType length, bool copy) { + if (copy) + new (stack_.template Push()) ValueType(str, length, GetAllocator()); + else + new (stack_.template Push()) ValueType(str, length); + return true; + } + + bool StartObject() { new (stack_.template Push()) ValueType(kObjectType); return true; } + + bool Key(const Ch* str, SizeType length, bool copy) { return String(str, length, copy); } + + bool EndObject(SizeType memberCount) { + typename ValueType::Member* members = stack_.template Pop(memberCount); + stack_.template Top()->SetObjectRaw(members, memberCount, GetAllocator()); + return true; + } + + bool StartArray() { new (stack_.template Push()) ValueType(kArrayType); return true; } + + bool EndArray(SizeType elementCount) { + ValueType* elements = stack_.template Pop(elementCount); + stack_.template Top()->SetArrayRaw(elements, elementCount, GetAllocator()); + return true; + } + +private: + //! Prohibit copying + GenericDocument(const GenericDocument&); + //! Prohibit assignment + GenericDocument& operator=(const GenericDocument&); + + void ClearStack() { + if (Allocator::kNeedFree) + while (stack_.GetSize() > 0) // Here assumes all elements in stack array are GenericValue (Member is actually 2 GenericValue objects) + (stack_.template Pop(1))->~ValueType(); + else + stack_.Clear(); + stack_.ShrinkToFit(); + } + + void Destroy() { + RAPIDJSON_DELETE(ownAllocator_); + } + + static const size_t kDefaultStackCapacity = 1024; + Allocator* allocator_; + Allocator* ownAllocator_; + internal::Stack stack_; + ParseResult parseResult_; +}; + +//! GenericDocument with UTF8 encoding +typedef GenericDocument > Document; + + +//! Helper class for accessing Value of array type. +/*! + Instance of this helper class is obtained by \c GenericValue::GetArray(). + In addition to all APIs for array type, it provides range-based for loop if \c RAPIDJSON_HAS_CXX11_RANGE_FOR=1. +*/ +template +class GenericArray { +public: + typedef GenericArray ConstArray; + typedef GenericArray Array; + typedef ValueT PlainType; + typedef typename internal::MaybeAddConst::Type ValueType; + typedef ValueType* ValueIterator; // This may be const or non-const iterator + typedef const ValueT* ConstValueIterator; + typedef typename ValueType::AllocatorType AllocatorType; + typedef typename ValueType::StringRefType StringRefType; + + template + friend class GenericValue; + + GenericArray(const GenericArray& rhs) : value_(rhs.value_) {} + GenericArray& operator=(const GenericArray& rhs) { value_ = rhs.value_; return *this; } + ~GenericArray() {} + + SizeType Size() const { return value_.Size(); } + SizeType Capacity() const { return value_.Capacity(); } + bool Empty() const { return value_.Empty(); } + void Clear() const { value_.Clear(); } + ValueType& operator[](SizeType index) const { return value_[index]; } + ValueIterator Begin() const { return value_.Begin(); } + ValueIterator End() const { return value_.End(); } + GenericArray Reserve(SizeType newCapacity, AllocatorType &allocator) const { value_.Reserve(newCapacity, allocator); return *this; } + GenericArray PushBack(ValueType& value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; } +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericArray PushBack(ValueType&& value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; } +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericArray PushBack(StringRefType value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; } + template RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (const GenericArray&)) PushBack(T value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; } + GenericArray PopBack() const { value_.PopBack(); return *this; } + ValueIterator Erase(ConstValueIterator pos) const { return value_.Erase(pos); } + ValueIterator Erase(ConstValueIterator first, ConstValueIterator last) const { return value_.Erase(first, last); } + +#if RAPIDJSON_HAS_CXX11_RANGE_FOR + ValueIterator begin() const { return value_.Begin(); } + ValueIterator end() const { return value_.End(); } +#endif + +private: + GenericArray(); + GenericArray(ValueType& value) : value_(value) {} + ValueType& value_; +}; + +//! Helper class for accessing Value of object type. +/*! + Instance of this helper class is obtained by \c GenericValue::GetObject(). + In addition to all APIs for array type, it provides range-based for loop if \c RAPIDJSON_HAS_CXX11_RANGE_FOR=1. +*/ +template +class GenericObject { +public: + typedef GenericObject ConstObject; + typedef GenericObject Object; + typedef ValueT PlainType; + typedef typename internal::MaybeAddConst::Type ValueType; + typedef GenericMemberIterator MemberIterator; // This may be const or non-const iterator + typedef GenericMemberIterator ConstMemberIterator; + typedef typename ValueType::AllocatorType AllocatorType; + typedef typename ValueType::StringRefType StringRefType; + typedef typename ValueType::EncodingType EncodingType; + typedef typename ValueType::Ch Ch; + + template + friend class GenericValue; + + GenericObject(const GenericObject& rhs) : value_(rhs.value_) {} + GenericObject& operator=(const GenericObject& rhs) { value_ = rhs.value_; return *this; } + ~GenericObject() {} + + SizeType MemberCount() const { return value_.MemberCount(); } + SizeType MemberCapacity() const { return value_.MemberCapacity(); } + bool ObjectEmpty() const { return value_.ObjectEmpty(); } + template ValueType& operator[](T* name) const { return value_[name]; } + template ValueType& operator[](const GenericValue& name) const { return value_[name]; } +#if RAPIDJSON_HAS_STDSTRING + ValueType& operator[](const std::basic_string& name) const { return value_[name]; } +#endif + MemberIterator MemberBegin() const { return value_.MemberBegin(); } + MemberIterator MemberEnd() const { return value_.MemberEnd(); } + GenericObject MemberReserve(SizeType newCapacity, AllocatorType &allocator) const { value_.MemberReserve(newCapacity, allocator); return *this; } + bool HasMember(const Ch* name) const { return value_.HasMember(name); } +#if RAPIDJSON_HAS_STDSTRING + bool HasMember(const std::basic_string& name) const { return value_.HasMember(name); } +#endif + template bool HasMember(const GenericValue& name) const { return value_.HasMember(name); } + MemberIterator FindMember(const Ch* name) const { return value_.FindMember(name); } + template MemberIterator FindMember(const GenericValue& name) const { return value_.FindMember(name); } +#if RAPIDJSON_HAS_STDSTRING + MemberIterator FindMember(const std::basic_string& name) const { return value_.FindMember(name); } +#endif + GenericObject AddMember(ValueType& name, ValueType& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(ValueType& name, StringRefType value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } +#if RAPIDJSON_HAS_STDSTRING + GenericObject AddMember(ValueType& name, std::basic_string& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } +#endif + template RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) AddMember(ValueType& name, T value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericObject AddMember(ValueType&& name, ValueType&& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(ValueType&& name, ValueType& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(ValueType& name, ValueType&& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(StringRefType name, ValueType&& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericObject AddMember(StringRefType name, ValueType& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(StringRefType name, StringRefType value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + template RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (GenericObject)) AddMember(StringRefType name, T value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + void RemoveAllMembers() { value_.RemoveAllMembers(); } + bool RemoveMember(const Ch* name) const { return value_.RemoveMember(name); } +#if RAPIDJSON_HAS_STDSTRING + bool RemoveMember(const std::basic_string& name) const { return value_.RemoveMember(name); } +#endif + template bool RemoveMember(const GenericValue& name) const { return value_.RemoveMember(name); } + MemberIterator RemoveMember(MemberIterator m) const { return value_.RemoveMember(m); } + MemberIterator EraseMember(ConstMemberIterator pos) const { return value_.EraseMember(pos); } + MemberIterator EraseMember(ConstMemberIterator first, ConstMemberIterator last) const { return value_.EraseMember(first, last); } + bool EraseMember(const Ch* name) const { return value_.EraseMember(name); } +#if RAPIDJSON_HAS_STDSTRING + bool EraseMember(const std::basic_string& name) const { return EraseMember(ValueType(StringRef(name))); } +#endif + template bool EraseMember(const GenericValue& name) const { return value_.EraseMember(name); } + +#if RAPIDJSON_HAS_CXX11_RANGE_FOR + MemberIterator begin() const { return value_.MemberBegin(); } + MemberIterator end() const { return value_.MemberEnd(); } +#endif + +private: + GenericObject(); + GenericObject(ValueType& value) : value_(value) {} + ValueType& value_; +}; + +RAPIDJSON_NAMESPACE_END +RAPIDJSON_DIAG_POP + +#endif // RAPIDJSON_DOCUMENT_H_ diff --git a/external/rlottie/src/lottie/rapidjson/encodedstream.h b/external/rlottie/src/lottie/rapidjson/encodedstream.h new file mode 100644 index 000000000..223601c05 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/encodedstream.h @@ -0,0 +1,299 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_ENCODEDSTREAM_H_ +#define RAPIDJSON_ENCODEDSTREAM_H_ + +#include "stream.h" +#include "memorystream.h" + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Input byte stream wrapper with a statically bound encoding. +/*! + \tparam Encoding The interpretation of encoding of the stream. Either UTF8, UTF16LE, UTF16BE, UTF32LE, UTF32BE. + \tparam InputByteStream Type of input byte stream. For example, FileReadStream. +*/ +template +class EncodedInputStream { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); +public: + typedef typename Encoding::Ch Ch; + + EncodedInputStream(InputByteStream& is) : is_(is) { + current_ = Encoding::TakeBOM(is_); + } + + Ch Peek() const { return current_; } + Ch Take() { Ch c = current_; current_ = Encoding::Take(is_); return c; } + size_t Tell() const { return is_.Tell(); } + + // Not implemented + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + EncodedInputStream(const EncodedInputStream&); + EncodedInputStream& operator=(const EncodedInputStream&); + + InputByteStream& is_; + Ch current_; +}; + +//! Specialized for UTF8 MemoryStream. +template <> +class EncodedInputStream, MemoryStream> { +public: + typedef UTF8<>::Ch Ch; + + EncodedInputStream(MemoryStream& is) : is_(is) { + if (static_cast(is_.Peek()) == 0xEFu) is_.Take(); + if (static_cast(is_.Peek()) == 0xBBu) is_.Take(); + if (static_cast(is_.Peek()) == 0xBFu) is_.Take(); + } + Ch Peek() const { return is_.Peek(); } + Ch Take() { return is_.Take(); } + size_t Tell() const { return is_.Tell(); } + + // Not implemented + void Put(Ch) {} + void Flush() {} + Ch* PutBegin() { return 0; } + size_t PutEnd(Ch*) { return 0; } + + MemoryStream& is_; + +private: + EncodedInputStream(const EncodedInputStream&); + EncodedInputStream& operator=(const EncodedInputStream&); +}; + +//! Output byte stream wrapper with statically bound encoding. +/*! + \tparam Encoding The interpretation of encoding of the stream. Either UTF8, UTF16LE, UTF16BE, UTF32LE, UTF32BE. + \tparam OutputByteStream Type of input byte stream. For example, FileWriteStream. +*/ +template +class EncodedOutputStream { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); +public: + typedef typename Encoding::Ch Ch; + + EncodedOutputStream(OutputByteStream& os, bool putBOM = true) : os_(os) { + if (putBOM) + Encoding::PutBOM(os_); + } + + void Put(Ch c) { Encoding::Put(os_, c); } + void Flush() { os_.Flush(); } + + // Not implemented + Ch Peek() const { RAPIDJSON_ASSERT(false); return 0;} + Ch Take() { RAPIDJSON_ASSERT(false); return 0;} + size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + EncodedOutputStream(const EncodedOutputStream&); + EncodedOutputStream& operator=(const EncodedOutputStream&); + + OutputByteStream& os_; +}; + +#define RAPIDJSON_ENCODINGS_FUNC(x) UTF8::x, UTF16LE::x, UTF16BE::x, UTF32LE::x, UTF32BE::x + +//! Input stream wrapper with dynamically bound encoding and automatic encoding detection. +/*! + \tparam CharType Type of character for reading. + \tparam InputByteStream type of input byte stream to be wrapped. +*/ +template +class AutoUTFInputStream { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); +public: + typedef CharType Ch; + + //! Constructor. + /*! + \param is input stream to be wrapped. + \param type UTF encoding type if it is not detected from the stream. + */ + AutoUTFInputStream(InputByteStream& is, UTFType type = kUTF8) : is_(&is), type_(type), hasBOM_(false) { + RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE); + DetectType(); + static const TakeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Take) }; + takeFunc_ = f[type_]; + current_ = takeFunc_(*is_); + } + + UTFType GetType() const { return type_; } + bool HasBOM() const { return hasBOM_; } + + Ch Peek() const { return current_; } + Ch Take() { Ch c = current_; current_ = takeFunc_(*is_); return c; } + size_t Tell() const { return is_->Tell(); } + + // Not implemented + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + AutoUTFInputStream(const AutoUTFInputStream&); + AutoUTFInputStream& operator=(const AutoUTFInputStream&); + + // Detect encoding type with BOM or RFC 4627 + void DetectType() { + // BOM (Byte Order Mark): + // 00 00 FE FF UTF-32BE + // FF FE 00 00 UTF-32LE + // FE FF UTF-16BE + // FF FE UTF-16LE + // EF BB BF UTF-8 + + const unsigned char* c = reinterpret_cast(is_->Peek4()); + if (!c) + return; + + unsigned bom = static_cast(c[0] | (c[1] << 8) | (c[2] << 16) | (c[3] << 24)); + hasBOM_ = false; + if (bom == 0xFFFE0000) { type_ = kUTF32BE; hasBOM_ = true; is_->Take(); is_->Take(); is_->Take(); is_->Take(); } + else if (bom == 0x0000FEFF) { type_ = kUTF32LE; hasBOM_ = true; is_->Take(); is_->Take(); is_->Take(); is_->Take(); } + else if ((bom & 0xFFFF) == 0xFFFE) { type_ = kUTF16BE; hasBOM_ = true; is_->Take(); is_->Take(); } + else if ((bom & 0xFFFF) == 0xFEFF) { type_ = kUTF16LE; hasBOM_ = true; is_->Take(); is_->Take(); } + else if ((bom & 0xFFFFFF) == 0xBFBBEF) { type_ = kUTF8; hasBOM_ = true; is_->Take(); is_->Take(); is_->Take(); } + + // RFC 4627: Section 3 + // "Since the first two characters of a JSON text will always be ASCII + // characters [RFC0020], it is possible to determine whether an octet + // stream is UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE) by looking + // at the pattern of nulls in the first four octets." + // 00 00 00 xx UTF-32BE + // 00 xx 00 xx UTF-16BE + // xx 00 00 00 UTF-32LE + // xx 00 xx 00 UTF-16LE + // xx xx xx xx UTF-8 + + if (!hasBOM_) { + int pattern = (c[0] ? 1 : 0) | (c[1] ? 2 : 0) | (c[2] ? 4 : 0) | (c[3] ? 8 : 0); + switch (pattern) { + case 0x08: type_ = kUTF32BE; break; + case 0x0A: type_ = kUTF16BE; break; + case 0x01: type_ = kUTF32LE; break; + case 0x05: type_ = kUTF16LE; break; + case 0x0F: type_ = kUTF8; break; + default: break; // Use type defined by user. + } + } + + // Runtime check whether the size of character type is sufficient. It only perform checks with assertion. + if (type_ == kUTF16LE || type_ == kUTF16BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 2); + if (type_ == kUTF32LE || type_ == kUTF32BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 4); + } + + typedef Ch (*TakeFunc)(InputByteStream& is); + InputByteStream* is_; + UTFType type_; + Ch current_; + TakeFunc takeFunc_; + bool hasBOM_; +}; + +//! Output stream wrapper with dynamically bound encoding and automatic encoding detection. +/*! + \tparam CharType Type of character for writing. + \tparam OutputByteStream type of output byte stream to be wrapped. +*/ +template +class AutoUTFOutputStream { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); +public: + typedef CharType Ch; + + //! Constructor. + /*! + \param os output stream to be wrapped. + \param type UTF encoding type. + \param putBOM Whether to write BOM at the beginning of the stream. + */ + AutoUTFOutputStream(OutputByteStream& os, UTFType type, bool putBOM) : os_(&os), type_(type) { + RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE); + + // Runtime check whether the size of character type is sufficient. It only perform checks with assertion. + if (type_ == kUTF16LE || type_ == kUTF16BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 2); + if (type_ == kUTF32LE || type_ == kUTF32BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 4); + + static const PutFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Put) }; + putFunc_ = f[type_]; + + if (putBOM) + PutBOM(); + } + + UTFType GetType() const { return type_; } + + void Put(Ch c) { putFunc_(*os_, c); } + void Flush() { os_->Flush(); } + + // Not implemented + Ch Peek() const { RAPIDJSON_ASSERT(false); return 0;} + Ch Take() { RAPIDJSON_ASSERT(false); return 0;} + size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + AutoUTFOutputStream(const AutoUTFOutputStream&); + AutoUTFOutputStream& operator=(const AutoUTFOutputStream&); + + void PutBOM() { + typedef void (*PutBOMFunc)(OutputByteStream&); + static const PutBOMFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(PutBOM) }; + f[type_](*os_); + } + + typedef void (*PutFunc)(OutputByteStream&, Ch); + + OutputByteStream* os_; + UTFType type_; + PutFunc putFunc_; +}; + +#undef RAPIDJSON_ENCODINGS_FUNC + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_FILESTREAM_H_ diff --git a/external/rlottie/src/lottie/rapidjson/encodings.h b/external/rlottie/src/lottie/rapidjson/encodings.h new file mode 100644 index 000000000..0b2446795 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/encodings.h @@ -0,0 +1,716 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_ENCODINGS_H_ +#define RAPIDJSON_ENCODINGS_H_ + +#include "rapidjson.h" + +#if defined(_MSC_VER) && !defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4244) // conversion from 'type1' to 'type2', possible loss of data +RAPIDJSON_DIAG_OFF(4702) // unreachable code +#elif defined(__GNUC__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +RAPIDJSON_DIAG_OFF(overflow) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// Encoding + +/*! \class rapidjson::Encoding + \brief Concept for encoding of Unicode characters. + +\code +concept Encoding { + typename Ch; //! Type of character. A "character" is actually a code unit in unicode's definition. + + enum { supportUnicode = 1 }; // or 0 if not supporting unicode + + //! \brief Encode a Unicode codepoint to an output stream. + //! \param os Output stream. + //! \param codepoint An unicode codepoint, ranging from 0x0 to 0x10FFFF inclusively. + template + static void Encode(OutputStream& os, unsigned codepoint); + + //! \brief Decode a Unicode codepoint from an input stream. + //! \param is Input stream. + //! \param codepoint Output of the unicode codepoint. + //! \return true if a valid codepoint can be decoded from the stream. + template + static bool Decode(InputStream& is, unsigned* codepoint); + + //! \brief Validate one Unicode codepoint from an encoded stream. + //! \param is Input stream to obtain codepoint. + //! \param os Output for copying one codepoint. + //! \return true if it is valid. + //! \note This function just validating and copying the codepoint without actually decode it. + template + static bool Validate(InputStream& is, OutputStream& os); + + // The following functions are deal with byte streams. + + //! Take a character from input byte stream, skip BOM if exist. + template + static CharType TakeBOM(InputByteStream& is); + + //! Take a character from input byte stream. + template + static Ch Take(InputByteStream& is); + + //! Put BOM to output byte stream. + template + static void PutBOM(OutputByteStream& os); + + //! Put a character to output byte stream. + template + static void Put(OutputByteStream& os, Ch c); +}; +\endcode +*/ + +/////////////////////////////////////////////////////////////////////////////// +// UTF8 + +//! UTF-8 encoding. +/*! http://en.wikipedia.org/wiki/UTF-8 + http://tools.ietf.org/html/rfc3629 + \tparam CharType Code unit for storing 8-bit UTF-8 data. Default is char. + \note implements Encoding concept +*/ +template +struct UTF8 { + typedef CharType Ch; + + enum { supportUnicode = 1 }; + + template + static void Encode(OutputStream& os, unsigned codepoint) { + if (codepoint <= 0x7F) + os.Put(static_cast(codepoint & 0xFF)); + else if (codepoint <= 0x7FF) { + os.Put(static_cast(0xC0 | ((codepoint >> 6) & 0xFF))); + os.Put(static_cast(0x80 | ((codepoint & 0x3F)))); + } + else if (codepoint <= 0xFFFF) { + os.Put(static_cast(0xE0 | ((codepoint >> 12) & 0xFF))); + os.Put(static_cast(0x80 | ((codepoint >> 6) & 0x3F))); + os.Put(static_cast(0x80 | (codepoint & 0x3F))); + } + else { + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + os.Put(static_cast(0xF0 | ((codepoint >> 18) & 0xFF))); + os.Put(static_cast(0x80 | ((codepoint >> 12) & 0x3F))); + os.Put(static_cast(0x80 | ((codepoint >> 6) & 0x3F))); + os.Put(static_cast(0x80 | (codepoint & 0x3F))); + } + } + + template + static void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + if (codepoint <= 0x7F) + PutUnsafe(os, static_cast(codepoint & 0xFF)); + else if (codepoint <= 0x7FF) { + PutUnsafe(os, static_cast(0xC0 | ((codepoint >> 6) & 0xFF))); + PutUnsafe(os, static_cast(0x80 | ((codepoint & 0x3F)))); + } + else if (codepoint <= 0xFFFF) { + PutUnsafe(os, static_cast(0xE0 | ((codepoint >> 12) & 0xFF))); + PutUnsafe(os, static_cast(0x80 | ((codepoint >> 6) & 0x3F))); + PutUnsafe(os, static_cast(0x80 | (codepoint & 0x3F))); + } + else { + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + PutUnsafe(os, static_cast(0xF0 | ((codepoint >> 18) & 0xFF))); + PutUnsafe(os, static_cast(0x80 | ((codepoint >> 12) & 0x3F))); + PutUnsafe(os, static_cast(0x80 | ((codepoint >> 6) & 0x3F))); + PutUnsafe(os, static_cast(0x80 | (codepoint & 0x3F))); + } + } + + template + static bool Decode(InputStream& is, unsigned* codepoint) { +#define RAPIDJSON_COPY() c = is.Take(); *codepoint = (*codepoint << 6) | (static_cast(c) & 0x3Fu) +#define RAPIDJSON_TRANS(mask) result &= ((GetRange(static_cast(c)) & mask) != 0) +#define RAPIDJSON_TAIL() RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x70) + typename InputStream::Ch c = is.Take(); + if (!(c & 0x80)) { + *codepoint = static_cast(c); + return true; + } + + unsigned char type = GetRange(static_cast(c)); + if (type >= 32) { + *codepoint = 0; + } else { + *codepoint = (0xFFu >> type) & static_cast(c); + } + bool result = true; + switch (type) { + case 2: RAPIDJSON_TAIL(); return result; + case 3: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 4: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x50); RAPIDJSON_TAIL(); return result; + case 5: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x10); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 6: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 10: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x20); RAPIDJSON_TAIL(); return result; + case 11: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x60); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + default: return false; + } +#undef RAPIDJSON_COPY +#undef RAPIDJSON_TRANS +#undef RAPIDJSON_TAIL + } + + template + static bool Validate(InputStream& is, OutputStream& os) { +#define RAPIDJSON_COPY() os.Put(c = is.Take()) +#define RAPIDJSON_TRANS(mask) result &= ((GetRange(static_cast(c)) & mask) != 0) +#define RAPIDJSON_TAIL() RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x70) + Ch c; + RAPIDJSON_COPY(); + if (!(c & 0x80)) + return true; + + bool result = true; + switch (GetRange(static_cast(c))) { + case 2: RAPIDJSON_TAIL(); return result; + case 3: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 4: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x50); RAPIDJSON_TAIL(); return result; + case 5: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x10); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 6: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 10: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x20); RAPIDJSON_TAIL(); return result; + case 11: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x60); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + default: return false; + } +#undef RAPIDJSON_COPY +#undef RAPIDJSON_TRANS +#undef RAPIDJSON_TAIL + } + + static unsigned char GetRange(unsigned char c) { + // Referring to DFA of http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ + // With new mapping 1 -> 0x10, 7 -> 0x20, 9 -> 0x40, such that AND operation can test multiple types. + static const unsigned char type[] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8, + }; + return type[c]; + } + + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + typename InputByteStream::Ch c = Take(is); + if (static_cast(c) != 0xEFu) return c; + c = is.Take(); + if (static_cast(c) != 0xBBu) return c; + c = is.Take(); + if (static_cast(c) != 0xBFu) return c; + c = is.Take(); + return c; + } + + template + static Ch Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + return static_cast(is.Take()); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0xEFu)); + os.Put(static_cast(0xBBu)); + os.Put(static_cast(0xBFu)); + } + + template + static void Put(OutputByteStream& os, Ch c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(c)); + } +}; + +/////////////////////////////////////////////////////////////////////////////// +// UTF16 + +//! UTF-16 encoding. +/*! http://en.wikipedia.org/wiki/UTF-16 + http://tools.ietf.org/html/rfc2781 + \tparam CharType Type for storing 16-bit UTF-16 data. Default is wchar_t. C++11 may use char16_t instead. + \note implements Encoding concept + + \note For in-memory access, no need to concern endianness. The code units and code points are represented by CPU's endianness. + For streaming, use UTF16LE and UTF16BE, which handle endianness. +*/ +template +struct UTF16 { + typedef CharType Ch; + RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >= 2); + + enum { supportUnicode = 1 }; + + template + static void Encode(OutputStream& os, unsigned codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2); + if (codepoint <= 0xFFFF) { + RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair + os.Put(static_cast(codepoint)); + } + else { + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + unsigned v = codepoint - 0x10000; + os.Put(static_cast((v >> 10) | 0xD800)); + os.Put(static_cast((v & 0x3FF) | 0xDC00)); + } + } + + + template + static void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2); + if (codepoint <= 0xFFFF) { + RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair + PutUnsafe(os, static_cast(codepoint)); + } + else { + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + unsigned v = codepoint - 0x10000; + PutUnsafe(os, static_cast((v >> 10) | 0xD800)); + PutUnsafe(os, static_cast((v & 0x3FF) | 0xDC00)); + } + } + + template + static bool Decode(InputStream& is, unsigned* codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 2); + typename InputStream::Ch c = is.Take(); + if (c < 0xD800 || c > 0xDFFF) { + *codepoint = static_cast(c); + return true; + } + else if (c <= 0xDBFF) { + *codepoint = (static_cast(c) & 0x3FF) << 10; + c = is.Take(); + *codepoint |= (static_cast(c) & 0x3FF); + *codepoint += 0x10000; + return c >= 0xDC00 && c <= 0xDFFF; + } + return false; + } + + template + static bool Validate(InputStream& is, OutputStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 2); + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2); + typename InputStream::Ch c; + os.Put(static_cast(c = is.Take())); + if (c < 0xD800 || c > 0xDFFF) + return true; + else if (c <= 0xDBFF) { + os.Put(c = is.Take()); + return c >= 0xDC00 && c <= 0xDFFF; + } + return false; + } +}; + +//! UTF-16 little endian encoding. +template +struct UTF16LE : UTF16 { + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + CharType c = Take(is); + return static_cast(c) == 0xFEFFu ? Take(is) : c; + } + + template + static CharType Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + unsigned c = static_cast(is.Take()); + c |= static_cast(static_cast(is.Take())) << 8; + return static_cast(c); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0xFFu)); + os.Put(static_cast(0xFEu)); + } + + template + static void Put(OutputByteStream& os, CharType c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(static_cast(c) & 0xFFu)); + os.Put(static_cast((static_cast(c) >> 8) & 0xFFu)); + } +}; + +//! UTF-16 big endian encoding. +template +struct UTF16BE : UTF16 { + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + CharType c = Take(is); + return static_cast(c) == 0xFEFFu ? Take(is) : c; + } + + template + static CharType Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + unsigned c = static_cast(static_cast(is.Take())) << 8; + c |= static_cast(static_cast(is.Take())); + return static_cast(c); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0xFEu)); + os.Put(static_cast(0xFFu)); + } + + template + static void Put(OutputByteStream& os, CharType c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast((static_cast(c) >> 8) & 0xFFu)); + os.Put(static_cast(static_cast(c) & 0xFFu)); + } +}; + +/////////////////////////////////////////////////////////////////////////////// +// UTF32 + +//! UTF-32 encoding. +/*! http://en.wikipedia.org/wiki/UTF-32 + \tparam CharType Type for storing 32-bit UTF-32 data. Default is unsigned. C++11 may use char32_t instead. + \note implements Encoding concept + + \note For in-memory access, no need to concern endianness. The code units and code points are represented by CPU's endianness. + For streaming, use UTF32LE and UTF32BE, which handle endianness. +*/ +template +struct UTF32 { + typedef CharType Ch; + RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >= 4); + + enum { supportUnicode = 1 }; + + template + static void Encode(OutputStream& os, unsigned codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 4); + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + os.Put(codepoint); + } + + template + static void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 4); + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + PutUnsafe(os, codepoint); + } + + template + static bool Decode(InputStream& is, unsigned* codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 4); + Ch c = is.Take(); + *codepoint = c; + return c <= 0x10FFFF; + } + + template + static bool Validate(InputStream& is, OutputStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 4); + Ch c; + os.Put(c = is.Take()); + return c <= 0x10FFFF; + } +}; + +//! UTF-32 little endian enocoding. +template +struct UTF32LE : UTF32 { + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + CharType c = Take(is); + return static_cast(c) == 0x0000FEFFu ? Take(is) : c; + } + + template + static CharType Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + unsigned c = static_cast(is.Take()); + c |= static_cast(static_cast(is.Take())) << 8; + c |= static_cast(static_cast(is.Take())) << 16; + c |= static_cast(static_cast(is.Take())) << 24; + return static_cast(c); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0xFFu)); + os.Put(static_cast(0xFEu)); + os.Put(static_cast(0x00u)); + os.Put(static_cast(0x00u)); + } + + template + static void Put(OutputByteStream& os, CharType c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(c & 0xFFu)); + os.Put(static_cast((c >> 8) & 0xFFu)); + os.Put(static_cast((c >> 16) & 0xFFu)); + os.Put(static_cast((c >> 24) & 0xFFu)); + } +}; + +//! UTF-32 big endian encoding. +template +struct UTF32BE : UTF32 { + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + CharType c = Take(is); + return static_cast(c) == 0x0000FEFFu ? Take(is) : c; + } + + template + static CharType Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + unsigned c = static_cast(static_cast(is.Take())) << 24; + c |= static_cast(static_cast(is.Take())) << 16; + c |= static_cast(static_cast(is.Take())) << 8; + c |= static_cast(static_cast(is.Take())); + return static_cast(c); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0x00u)); + os.Put(static_cast(0x00u)); + os.Put(static_cast(0xFEu)); + os.Put(static_cast(0xFFu)); + } + + template + static void Put(OutputByteStream& os, CharType c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast((c >> 24) & 0xFFu)); + os.Put(static_cast((c >> 16) & 0xFFu)); + os.Put(static_cast((c >> 8) & 0xFFu)); + os.Put(static_cast(c & 0xFFu)); + } +}; + +/////////////////////////////////////////////////////////////////////////////// +// ASCII + +//! ASCII encoding. +/*! http://en.wikipedia.org/wiki/ASCII + \tparam CharType Code unit for storing 7-bit ASCII data. Default is char. + \note implements Encoding concept +*/ +template +struct ASCII { + typedef CharType Ch; + + enum { supportUnicode = 0 }; + + template + static void Encode(OutputStream& os, unsigned codepoint) { + RAPIDJSON_ASSERT(codepoint <= 0x7F); + os.Put(static_cast(codepoint & 0xFF)); + } + + template + static void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + RAPIDJSON_ASSERT(codepoint <= 0x7F); + PutUnsafe(os, static_cast(codepoint & 0xFF)); + } + + template + static bool Decode(InputStream& is, unsigned* codepoint) { + uint8_t c = static_cast(is.Take()); + *codepoint = c; + return c <= 0X7F; + } + + template + static bool Validate(InputStream& is, OutputStream& os) { + uint8_t c = static_cast(is.Take()); + os.Put(static_cast(c)); + return c <= 0x7F; + } + + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + uint8_t c = static_cast(Take(is)); + return static_cast(c); + } + + template + static Ch Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + return static_cast(is.Take()); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + (void)os; + } + + template + static void Put(OutputByteStream& os, Ch c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(c)); + } +}; + +/////////////////////////////////////////////////////////////////////////////// +// AutoUTF + +//! Runtime-specified UTF encoding type of a stream. +enum UTFType { + kUTF8 = 0, //!< UTF-8. + kUTF16LE = 1, //!< UTF-16 little endian. + kUTF16BE = 2, //!< UTF-16 big endian. + kUTF32LE = 3, //!< UTF-32 little endian. + kUTF32BE = 4 //!< UTF-32 big endian. +}; + +//! Dynamically select encoding according to stream's runtime-specified UTF encoding type. +/*! \note This class can be used with AutoUTFInputtStream and AutoUTFOutputStream, which provides GetType(). +*/ +template +struct AutoUTF { + typedef CharType Ch; + + enum { supportUnicode = 1 }; + +#define RAPIDJSON_ENCODINGS_FUNC(x) UTF8::x, UTF16LE::x, UTF16BE::x, UTF32LE::x, UTF32BE::x + + template + static RAPIDJSON_FORCEINLINE void Encode(OutputStream& os, unsigned codepoint) { + typedef void (*EncodeFunc)(OutputStream&, unsigned); + static const EncodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Encode) }; + (*f[os.GetType()])(os, codepoint); + } + + template + static RAPIDJSON_FORCEINLINE void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + typedef void (*EncodeFunc)(OutputStream&, unsigned); + static const EncodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(EncodeUnsafe) }; + (*f[os.GetType()])(os, codepoint); + } + + template + static RAPIDJSON_FORCEINLINE bool Decode(InputStream& is, unsigned* codepoint) { + typedef bool (*DecodeFunc)(InputStream&, unsigned*); + static const DecodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Decode) }; + return (*f[is.GetType()])(is, codepoint); + } + + template + static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) { + typedef bool (*ValidateFunc)(InputStream&, OutputStream&); + static const ValidateFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Validate) }; + return (*f[is.GetType()])(is, os); + } + +#undef RAPIDJSON_ENCODINGS_FUNC +}; + +/////////////////////////////////////////////////////////////////////////////// +// Transcoder + +//! Encoding conversion. +template +struct Transcoder { + //! Take one Unicode codepoint from source encoding, convert it to target encoding and put it to the output stream. + template + static RAPIDJSON_FORCEINLINE bool Transcode(InputStream& is, OutputStream& os) { + unsigned codepoint; + if (!SourceEncoding::Decode(is, &codepoint)) + return false; + TargetEncoding::Encode(os, codepoint); + return true; + } + + template + static RAPIDJSON_FORCEINLINE bool TranscodeUnsafe(InputStream& is, OutputStream& os) { + unsigned codepoint; + if (!SourceEncoding::Decode(is, &codepoint)) + return false; + TargetEncoding::EncodeUnsafe(os, codepoint); + return true; + } + + //! Validate one Unicode codepoint from an encoded stream. + template + static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) { + return Transcode(is, os); // Since source/target encoding is different, must transcode. + } +}; + +// Forward declaration. +template +inline void PutUnsafe(Stream& stream, typename Stream::Ch c); + +//! Specialization of Transcoder with same source and target encoding. +template +struct Transcoder { + template + static RAPIDJSON_FORCEINLINE bool Transcode(InputStream& is, OutputStream& os) { + os.Put(is.Take()); // Just copy one code unit. This semantic is different from primary template class. + return true; + } + + template + static RAPIDJSON_FORCEINLINE bool TranscodeUnsafe(InputStream& is, OutputStream& os) { + PutUnsafe(os, is.Take()); // Just copy one code unit. This semantic is different from primary template class. + return true; + } + + template + static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) { + return Encoding::Validate(is, os); // source/target encoding are the same + } +}; + +RAPIDJSON_NAMESPACE_END + +#if defined(__GNUC__) || (defined(_MSC_VER) && !defined(__clang__)) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_ENCODINGS_H_ diff --git a/external/rlottie/src/lottie/rapidjson/error/en.h b/external/rlottie/src/lottie/rapidjson/error/en.h new file mode 100644 index 000000000..2db838bff --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/error/en.h @@ -0,0 +1,74 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_ERROR_EN_H_ +#define RAPIDJSON_ERROR_EN_H_ + +#include "error.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(switch-enum) +RAPIDJSON_DIAG_OFF(covered-switch-default) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Maps error code of parsing into error message. +/*! + \ingroup RAPIDJSON_ERRORS + \param parseErrorCode Error code obtained in parsing. + \return the error message. + \note User can make a copy of this function for localization. + Using switch-case is safer for future modification of error codes. +*/ +inline const RAPIDJSON_ERROR_CHARTYPE* GetParseError_En(ParseErrorCode parseErrorCode) { + switch (parseErrorCode) { + case kParseErrorNone: return RAPIDJSON_ERROR_STRING("No error."); + + case kParseErrorDocumentEmpty: return RAPIDJSON_ERROR_STRING("The document is empty."); + case kParseErrorDocumentRootNotSingular: return RAPIDJSON_ERROR_STRING("The document root must not be followed by other values."); + + case kParseErrorValueInvalid: return RAPIDJSON_ERROR_STRING("Invalid value."); + + case kParseErrorObjectMissName: return RAPIDJSON_ERROR_STRING("Missing a name for object member."); + case kParseErrorObjectMissColon: return RAPIDJSON_ERROR_STRING("Missing a colon after a name of object member."); + case kParseErrorObjectMissCommaOrCurlyBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or '}' after an object member."); + + case kParseErrorArrayMissCommaOrSquareBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or ']' after an array element."); + + case kParseErrorStringUnicodeEscapeInvalidHex: return RAPIDJSON_ERROR_STRING("Incorrect hex digit after \\u escape in string."); + case kParseErrorStringUnicodeSurrogateInvalid: return RAPIDJSON_ERROR_STRING("The surrogate pair in string is invalid."); + case kParseErrorStringEscapeInvalid: return RAPIDJSON_ERROR_STRING("Invalid escape character in string."); + case kParseErrorStringMissQuotationMark: return RAPIDJSON_ERROR_STRING("Missing a closing quotation mark in string."); + case kParseErrorStringInvalidEncoding: return RAPIDJSON_ERROR_STRING("Invalid encoding in string."); + + case kParseErrorNumberTooBig: return RAPIDJSON_ERROR_STRING("Number too big to be stored in double."); + case kParseErrorNumberMissFraction: return RAPIDJSON_ERROR_STRING("Miss fraction part in number."); + case kParseErrorNumberMissExponent: return RAPIDJSON_ERROR_STRING("Miss exponent in number."); + + case kParseErrorTermination: return RAPIDJSON_ERROR_STRING("Terminate parsing due to Handler error."); + case kParseErrorUnspecificSyntaxError: return RAPIDJSON_ERROR_STRING("Unspecific syntax error."); + + default: return RAPIDJSON_ERROR_STRING("Unknown error."); + } +} + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_ERROR_EN_H_ diff --git a/external/rlottie/src/lottie/rapidjson/error/error.h b/external/rlottie/src/lottie/rapidjson/error/error.h new file mode 100644 index 000000000..9311d2f03 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/error/error.h @@ -0,0 +1,161 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_ERROR_ERROR_H_ +#define RAPIDJSON_ERROR_ERROR_H_ + +#include "../rapidjson.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#endif + +/*! \file error.h */ + +/*! \defgroup RAPIDJSON_ERRORS RapidJSON error handling */ + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ERROR_CHARTYPE + +//! Character type of error messages. +/*! \ingroup RAPIDJSON_ERRORS + The default character type is \c char. + On Windows, user can define this macro as \c TCHAR for supporting both + unicode/non-unicode settings. +*/ +#ifndef RAPIDJSON_ERROR_CHARTYPE +#define RAPIDJSON_ERROR_CHARTYPE char +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ERROR_STRING + +//! Macro for converting string literial to \ref RAPIDJSON_ERROR_CHARTYPE[]. +/*! \ingroup RAPIDJSON_ERRORS + By default this conversion macro does nothing. + On Windows, user can define this macro as \c _T(x) for supporting both + unicode/non-unicode settings. +*/ +#ifndef RAPIDJSON_ERROR_STRING +#define RAPIDJSON_ERROR_STRING(x) x +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// ParseErrorCode + +//! Error code of parsing. +/*! \ingroup RAPIDJSON_ERRORS + \see GenericReader::Parse, GenericReader::GetParseErrorCode +*/ +enum ParseErrorCode { + kParseErrorNone = 0, //!< No error. + + kParseErrorDocumentEmpty, //!< The document is empty. + kParseErrorDocumentRootNotSingular, //!< The document root must not follow by other values. + + kParseErrorValueInvalid, //!< Invalid value. + + kParseErrorObjectMissName, //!< Missing a name for object member. + kParseErrorObjectMissColon, //!< Missing a colon after a name of object member. + kParseErrorObjectMissCommaOrCurlyBracket, //!< Missing a comma or '}' after an object member. + + kParseErrorArrayMissCommaOrSquareBracket, //!< Missing a comma or ']' after an array element. + + kParseErrorStringUnicodeEscapeInvalidHex, //!< Incorrect hex digit after \\u escape in string. + kParseErrorStringUnicodeSurrogateInvalid, //!< The surrogate pair in string is invalid. + kParseErrorStringEscapeInvalid, //!< Invalid escape character in string. + kParseErrorStringMissQuotationMark, //!< Missing a closing quotation mark in string. + kParseErrorStringInvalidEncoding, //!< Invalid encoding in string. + + kParseErrorNumberTooBig, //!< Number too big to be stored in double. + kParseErrorNumberMissFraction, //!< Miss fraction part in number. + kParseErrorNumberMissExponent, //!< Miss exponent in number. + + kParseErrorTermination, //!< Parsing was terminated. + kParseErrorUnspecificSyntaxError //!< Unspecific syntax error. +}; + +//! Result of parsing (wraps ParseErrorCode) +/*! + \ingroup RAPIDJSON_ERRORS + \code + Document doc; + ParseResult ok = doc.Parse("[42]"); + if (!ok) { + fprintf(stderr, "JSON parse error: %s (%u)", + GetParseError_En(ok.Code()), ok.Offset()); + exit(EXIT_FAILURE); + } + \endcode + \see GenericReader::Parse, GenericDocument::Parse +*/ +struct ParseResult { + //!! Unspecified boolean type + typedef bool (ParseResult::*BooleanType)() const; +public: + //! Default constructor, no error. + ParseResult() : code_(kParseErrorNone), offset_(0) {} + //! Constructor to set an error. + ParseResult(ParseErrorCode code, size_t offset) : code_(code), offset_(offset) {} + + //! Get the error code. + ParseErrorCode Code() const { return code_; } + //! Get the error offset, if \ref IsError(), 0 otherwise. + size_t Offset() const { return offset_; } + + //! Explicit conversion to \c bool, returns \c true, iff !\ref IsError(). + operator BooleanType() const { return !IsError() ? &ParseResult::IsError : NULL; } + //! Whether the result is an error. + bool IsError() const { return code_ != kParseErrorNone; } + + bool operator==(const ParseResult& that) const { return code_ == that.code_; } + bool operator==(ParseErrorCode code) const { return code_ == code; } + friend bool operator==(ParseErrorCode code, const ParseResult & err) { return code == err.code_; } + + bool operator!=(const ParseResult& that) const { return !(*this == that); } + bool operator!=(ParseErrorCode code) const { return !(*this == code); } + friend bool operator!=(ParseErrorCode code, const ParseResult & err) { return err != code; } + + //! Reset error code. + void Clear() { Set(kParseErrorNone); } + //! Update error code and offset. + void Set(ParseErrorCode code, size_t offset = 0) { code_ = code; offset_ = offset; } + +private: + ParseErrorCode code_; + size_t offset_; +}; + +//! Function pointer type of GetParseError(). +/*! \ingroup RAPIDJSON_ERRORS + + This is the prototype for \c GetParseError_X(), where \c X is a locale. + User can dynamically change locale in runtime, e.g.: +\code + GetParseErrorFunc GetParseError = GetParseError_En; // or whatever + const RAPIDJSON_ERROR_CHARTYPE* s = GetParseError(document.GetParseErrorCode()); +\endcode +*/ +typedef const RAPIDJSON_ERROR_CHARTYPE* (*GetParseErrorFunc)(ParseErrorCode); + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_ERROR_ERROR_H_ diff --git a/external/rlottie/src/lottie/rapidjson/filereadstream.h b/external/rlottie/src/lottie/rapidjson/filereadstream.h new file mode 100644 index 000000000..6b343707a --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/filereadstream.h @@ -0,0 +1,99 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_FILEREADSTREAM_H_ +#define RAPIDJSON_FILEREADSTREAM_H_ + +#include "stream.h" +#include + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(unreachable-code) +RAPIDJSON_DIAG_OFF(missing-noreturn) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! File byte stream for input using fread(). +/*! + \note implements Stream concept +*/ +class FileReadStream { +public: + typedef char Ch; //!< Character type (byte). + + //! Constructor. + /*! + \param fp File pointer opened for read. + \param buffer user-supplied buffer. + \param bufferSize size of buffer in bytes. Must >=4 bytes. + */ + FileReadStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) { + RAPIDJSON_ASSERT(fp_ != 0); + RAPIDJSON_ASSERT(bufferSize >= 4); + Read(); + } + + Ch Peek() const { return *current_; } + Ch Take() { Ch c = *current_; Read(); return c; } + size_t Tell() const { return count_ + static_cast(current_ - buffer_); } + + // Not implemented + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + + // For encoding detection only. + const Ch* Peek4() const { + return (current_ + 4 - !eof_ <= bufferLast_) ? current_ : 0; + } + +private: + void Read() { + if (current_ < bufferLast_) + ++current_; + else if (!eof_) { + count_ += readCount_; + readCount_ = std::fread(buffer_, 1, bufferSize_, fp_); + bufferLast_ = buffer_ + readCount_ - 1; + current_ = buffer_; + + if (readCount_ < bufferSize_) { + buffer_[readCount_] = '\0'; + ++bufferLast_; + eof_ = true; + } + } + } + + std::FILE* fp_; + Ch *buffer_; + size_t bufferSize_; + Ch *bufferLast_; + Ch *current_; + size_t readCount_; + size_t count_; //!< Number of characters read + bool eof_; +}; + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_FILESTREAM_H_ diff --git a/external/rlottie/src/lottie/rapidjson/filewritestream.h b/external/rlottie/src/lottie/rapidjson/filewritestream.h new file mode 100644 index 000000000..8b48fee19 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/filewritestream.h @@ -0,0 +1,104 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_FILEWRITESTREAM_H_ +#define RAPIDJSON_FILEWRITESTREAM_H_ + +#include "stream.h" +#include + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(unreachable-code) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Wrapper of C file stream for output using fwrite(). +/*! + \note implements Stream concept +*/ +class FileWriteStream { +public: + typedef char Ch; //!< Character type. Only support char. + + FileWriteStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferEnd_(buffer + bufferSize), current_(buffer_) { + RAPIDJSON_ASSERT(fp_ != 0); + } + + void Put(char c) { + if (current_ >= bufferEnd_) + Flush(); + + *current_++ = c; + } + + void PutN(char c, size_t n) { + size_t avail = static_cast(bufferEnd_ - current_); + while (n > avail) { + std::memset(current_, c, avail); + current_ += avail; + Flush(); + n -= avail; + avail = static_cast(bufferEnd_ - current_); + } + + if (n > 0) { + std::memset(current_, c, n); + current_ += n; + } + } + + void Flush() { + if (current_ != buffer_) { + size_t result = std::fwrite(buffer_, 1, static_cast(current_ - buffer_), fp_); + if (result < static_cast(current_ - buffer_)) { + // failure deliberately ignored at this time + // added to avoid warn_unused_result build errors + } + current_ = buffer_; + } + } + + // Not implemented + char Peek() const { RAPIDJSON_ASSERT(false); return 0; } + char Take() { RAPIDJSON_ASSERT(false); return 0; } + size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; } + char* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(char*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + // Prohibit copy constructor & assignment operator. + FileWriteStream(const FileWriteStream&); + FileWriteStream& operator=(const FileWriteStream&); + + std::FILE* fp_; + char *buffer_; + char *bufferEnd_; + char *current_; +}; + +//! Implement specialized version of PutN() with memset() for better performance. +template<> +inline void PutN(FileWriteStream& stream, char c, size_t n) { + stream.PutN(c, n); +} + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_FILESTREAM_H_ diff --git a/external/rlottie/src/lottie/rapidjson/fwd.h b/external/rlottie/src/lottie/rapidjson/fwd.h new file mode 100644 index 000000000..b74a2b819 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/fwd.h @@ -0,0 +1,151 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_FWD_H_ +#define RAPIDJSON_FWD_H_ + +#include "rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN + +// encodings.h + +template struct UTF8; +template struct UTF16; +template struct UTF16BE; +template struct UTF16LE; +template struct UTF32; +template struct UTF32BE; +template struct UTF32LE; +template struct ASCII; +template struct AutoUTF; + +template +struct Transcoder; + +// allocators.h + +class CrtAllocator; + +template +class MemoryPoolAllocator; + +// stream.h + +template +struct GenericStringStream; + +typedef GenericStringStream > StringStream; + +template +struct GenericInsituStringStream; + +typedef GenericInsituStringStream > InsituStringStream; + +// stringbuffer.h + +template +class GenericStringBuffer; + +typedef GenericStringBuffer, CrtAllocator> StringBuffer; + +// filereadstream.h + +class FileReadStream; + +// filewritestream.h + +class FileWriteStream; + +// memorybuffer.h + +template +struct GenericMemoryBuffer; + +typedef GenericMemoryBuffer MemoryBuffer; + +// memorystream.h + +struct MemoryStream; + +// reader.h + +template +struct BaseReaderHandler; + +template +class GenericReader; + +typedef GenericReader, UTF8, CrtAllocator> Reader; + +// writer.h + +template +class Writer; + +// prettywriter.h + +template +class PrettyWriter; + +// document.h + +template +class GenericMember; + +template +class GenericMemberIterator; + +template +struct GenericStringRef; + +template +class GenericValue; + +typedef GenericValue, MemoryPoolAllocator > Value; + +template +class GenericDocument; + +typedef GenericDocument, MemoryPoolAllocator, CrtAllocator> Document; + +// pointer.h + +template +class GenericPointer; + +typedef GenericPointer Pointer; + +// schema.h + +template +class IGenericRemoteSchemaDocumentProvider; + +template +class GenericSchemaDocument; + +typedef GenericSchemaDocument SchemaDocument; +typedef IGenericRemoteSchemaDocumentProvider IRemoteSchemaDocumentProvider; + +template < + typename SchemaDocumentType, + typename OutputHandler, + typename StateAllocator> +class GenericSchemaValidator; + +typedef GenericSchemaValidator, void>, CrtAllocator> SchemaValidator; + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_RAPIDJSONFWD_H_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/biginteger.h b/external/rlottie/src/lottie/rapidjson/internal/biginteger.h new file mode 100644 index 000000000..8eb87c7c0 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/biginteger.h @@ -0,0 +1,290 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_BIGINTEGER_H_ +#define RAPIDJSON_BIGINTEGER_H_ + +#include "../rapidjson.h" + +#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_M_AMD64) +#include // for _umul128 +#pragma intrinsic(_umul128) +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +class BigInteger { +public: + typedef uint64_t Type; + + BigInteger(const BigInteger& rhs) : count_(rhs.count_) { + std::memcpy(digits_, rhs.digits_, count_ * sizeof(Type)); + } + + explicit BigInteger(uint64_t u) : count_(1) { + digits_[0] = u; + } + + BigInteger(const char* decimals, size_t length) : count_(1) { + RAPIDJSON_ASSERT(length > 0); + digits_[0] = 0; + size_t i = 0; + const size_t kMaxDigitPerIteration = 19; // 2^64 = 18446744073709551616 > 10^19 + while (length >= kMaxDigitPerIteration) { + AppendDecimal64(decimals + i, decimals + i + kMaxDigitPerIteration); + length -= kMaxDigitPerIteration; + i += kMaxDigitPerIteration; + } + + if (length > 0) + AppendDecimal64(decimals + i, decimals + i + length); + } + + BigInteger& operator=(const BigInteger &rhs) + { + if (this != &rhs) { + count_ = rhs.count_; + std::memcpy(digits_, rhs.digits_, count_ * sizeof(Type)); + } + return *this; + } + + BigInteger& operator=(uint64_t u) { + digits_[0] = u; + count_ = 1; + return *this; + } + + BigInteger& operator+=(uint64_t u) { + Type backup = digits_[0]; + digits_[0] += u; + for (size_t i = 0; i < count_ - 1; i++) { + if (digits_[i] >= backup) + return *this; // no carry + backup = digits_[i + 1]; + digits_[i + 1] += 1; + } + + // Last carry + if (digits_[count_ - 1] < backup) + PushBack(1); + + return *this; + } + + BigInteger& operator*=(uint64_t u) { + if (u == 0) return *this = 0; + if (u == 1) return *this; + if (*this == 1) return *this = u; + + uint64_t k = 0; + for (size_t i = 0; i < count_; i++) { + uint64_t hi; + digits_[i] = MulAdd64(digits_[i], u, k, &hi); + k = hi; + } + + if (k > 0) + PushBack(k); + + return *this; + } + + BigInteger& operator*=(uint32_t u) { + if (u == 0) return *this = 0; + if (u == 1) return *this; + if (*this == 1) return *this = u; + + uint64_t k = 0; + for (size_t i = 0; i < count_; i++) { + const uint64_t c = digits_[i] >> 32; + const uint64_t d = digits_[i] & 0xFFFFFFFF; + const uint64_t uc = u * c; + const uint64_t ud = u * d; + const uint64_t p0 = ud + k; + const uint64_t p1 = uc + (p0 >> 32); + digits_[i] = (p0 & 0xFFFFFFFF) | (p1 << 32); + k = p1 >> 32; + } + + if (k > 0) + PushBack(k); + + return *this; + } + + BigInteger& operator<<=(size_t shift) { + if (IsZero() || shift == 0) return *this; + + size_t offset = shift / kTypeBit; + size_t interShift = shift % kTypeBit; + RAPIDJSON_ASSERT(count_ + offset <= kCapacity); + + if (interShift == 0) { + std::memmove(digits_ + offset, digits_, count_ * sizeof(Type)); + count_ += offset; + } + else { + digits_[count_] = 0; + for (size_t i = count_; i > 0; i--) + digits_[i + offset] = (digits_[i] << interShift) | (digits_[i - 1] >> (kTypeBit - interShift)); + digits_[offset] = digits_[0] << interShift; + count_ += offset; + if (digits_[count_]) + count_++; + } + + std::memset(digits_, 0, offset * sizeof(Type)); + + return *this; + } + + bool operator==(const BigInteger& rhs) const { + return count_ == rhs.count_ && std::memcmp(digits_, rhs.digits_, count_ * sizeof(Type)) == 0; + } + + bool operator==(const Type rhs) const { + return count_ == 1 && digits_[0] == rhs; + } + + BigInteger& MultiplyPow5(unsigned exp) { + static const uint32_t kPow5[12] = { + 5, + 5 * 5, + 5 * 5 * 5, + 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 + }; + if (exp == 0) return *this; + for (; exp >= 27; exp -= 27) *this *= RAPIDJSON_UINT64_C2(0X6765C793, 0XFA10079D); // 5^27 + for (; exp >= 13; exp -= 13) *this *= static_cast(1220703125u); // 5^13 + if (exp > 0) *this *= kPow5[exp - 1]; + return *this; + } + + // Compute absolute difference of this and rhs. + // Assume this != rhs + bool Difference(const BigInteger& rhs, BigInteger* out) const { + int cmp = Compare(rhs); + RAPIDJSON_ASSERT(cmp != 0); + const BigInteger *a, *b; // Makes a > b + bool ret; + if (cmp < 0) { a = &rhs; b = this; ret = true; } + else { a = this; b = &rhs; ret = false; } + + Type borrow = 0; + for (size_t i = 0; i < a->count_; i++) { + Type d = a->digits_[i] - borrow; + if (i < b->count_) + d -= b->digits_[i]; + borrow = (d > a->digits_[i]) ? 1 : 0; + out->digits_[i] = d; + if (d != 0) + out->count_ = i + 1; + } + + return ret; + } + + int Compare(const BigInteger& rhs) const { + if (count_ != rhs.count_) + return count_ < rhs.count_ ? -1 : 1; + + for (size_t i = count_; i-- > 0;) + if (digits_[i] != rhs.digits_[i]) + return digits_[i] < rhs.digits_[i] ? -1 : 1; + + return 0; + } + + size_t GetCount() const { return count_; } + Type GetDigit(size_t index) const { RAPIDJSON_ASSERT(index < count_); return digits_[index]; } + bool IsZero() const { return count_ == 1 && digits_[0] == 0; } + +private: + void AppendDecimal64(const char* begin, const char* end) { + uint64_t u = ParseUint64(begin, end); + if (IsZero()) + *this = u; + else { + unsigned exp = static_cast(end - begin); + (MultiplyPow5(exp) <<= exp) += u; // *this = *this * 10^exp + u + } + } + + void PushBack(Type digit) { + RAPIDJSON_ASSERT(count_ < kCapacity); + digits_[count_++] = digit; + } + + static uint64_t ParseUint64(const char* begin, const char* end) { + uint64_t r = 0; + for (const char* p = begin; p != end; ++p) { + RAPIDJSON_ASSERT(*p >= '0' && *p <= '9'); + r = r * 10u + static_cast(*p - '0'); + } + return r; + } + + // Assume a * b + k < 2^128 + static uint64_t MulAdd64(uint64_t a, uint64_t b, uint64_t k, uint64_t* outHigh) { +#if defined(_MSC_VER) && defined(_M_AMD64) + uint64_t low = _umul128(a, b, outHigh) + k; + if (low < k) + (*outHigh)++; + return low; +#elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(__x86_64__) + __extension__ typedef unsigned __int128 uint128; + uint128 p = static_cast(a) * static_cast(b); + p += k; + *outHigh = static_cast(p >> 64); + return static_cast(p); +#else + const uint64_t a0 = a & 0xFFFFFFFF, a1 = a >> 32, b0 = b & 0xFFFFFFFF, b1 = b >> 32; + uint64_t x0 = a0 * b0, x1 = a0 * b1, x2 = a1 * b0, x3 = a1 * b1; + x1 += (x0 >> 32); // can't give carry + x1 += x2; + if (x1 < x2) + x3 += (static_cast(1) << 32); + uint64_t lo = (x1 << 32) + (x0 & 0xFFFFFFFF); + uint64_t hi = x3 + (x1 >> 32); + + lo += k; + if (lo < k) + hi++; + *outHigh = hi; + return lo; +#endif + } + + static const size_t kBitCount = 3328; // 64bit * 54 > 10^1000 + static const size_t kCapacity = kBitCount / sizeof(Type); + static const size_t kTypeBit = sizeof(Type) * 8; + + Type digits_[kCapacity]; + size_t count_; +}; + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_BIGINTEGER_H_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/clzll.h b/external/rlottie/src/lottie/rapidjson/internal/clzll.h new file mode 100644 index 000000000..47bb7ab16 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/clzll.h @@ -0,0 +1,71 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_CLZLL_H_ +#define RAPIDJSON_CLZLL_H_ + +#include "../rapidjson.h" + +#if defined(_MSC_VER) && !defined(UNDER_CE) +#include +#if defined(_WIN64) +#pragma intrinsic(_BitScanReverse64) +#else +#pragma intrinsic(_BitScanReverse) +#endif +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +inline uint32_t clzll(uint64_t x) { + // Passing 0 to __builtin_clzll is UB in GCC and results in an + // infinite loop in the software implementation. + RAPIDJSON_ASSERT(x != 0); + +#if defined(_MSC_VER) && !defined(UNDER_CE) + unsigned long r = 0; +#if defined(_WIN64) + _BitScanReverse64(&r, x); +#else + // Scan the high 32 bits. + if (_BitScanReverse(&r, static_cast(x >> 32))) + return 63 - (r + 32); + + // Scan the low 32 bits. + _BitScanReverse(&r, static_cast(x & 0xFFFFFFFF)); +#endif // _WIN64 + + return 63 - r; +#elif (defined(__GNUC__) && __GNUC__ >= 4) || RAPIDJSON_HAS_BUILTIN(__builtin_clzll) + // __builtin_clzll wrapper + return static_cast(__builtin_clzll(x)); +#else + // naive version + uint32_t r = 0; + while (!(x & (static_cast(1) << 63))) { + x <<= 1; + ++r; + } + + return r; +#endif // _MSC_VER +} + +#define RAPIDJSON_CLZLL RAPIDJSON_NAMESPACE::internal::clzll + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_CLZLL_H_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/diyfp.h b/external/rlottie/src/lottie/rapidjson/internal/diyfp.h new file mode 100644 index 000000000..8f7d853a3 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/diyfp.h @@ -0,0 +1,257 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +// This is a C++ header-only implementation of Grisu2 algorithm from the publication: +// Loitsch, Florian. "Printing floating-point numbers quickly and accurately with +// integers." ACM Sigplan Notices 45.6 (2010): 233-243. + +#ifndef RAPIDJSON_DIYFP_H_ +#define RAPIDJSON_DIYFP_H_ + +#include "../rapidjson.h" +#include "clzll.h" +#include + +#if defined(_MSC_VER) && defined(_M_AMD64) && !defined(__INTEL_COMPILER) +#include +#pragma intrinsic(_umul128) +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#endif + +struct DiyFp { + DiyFp() : f(), e() {} + + DiyFp(uint64_t fp, int exp) : f(fp), e(exp) {} + + explicit DiyFp(double d) { + union { + double d; + uint64_t u64; + } u = { d }; + + int biased_e = static_cast((u.u64 & kDpExponentMask) >> kDpSignificandSize); + uint64_t significand = (u.u64 & kDpSignificandMask); + if (biased_e != 0) { + f = significand + kDpHiddenBit; + e = biased_e - kDpExponentBias; + } + else { + f = significand; + e = kDpMinExponent + 1; + } + } + + DiyFp operator-(const DiyFp& rhs) const { + return DiyFp(f - rhs.f, e); + } + + DiyFp operator*(const DiyFp& rhs) const { +#if defined(_MSC_VER) && defined(_M_AMD64) + uint64_t h; + uint64_t l = _umul128(f, rhs.f, &h); + if (l & (uint64_t(1) << 63)) // rounding + h++; + return DiyFp(h, e + rhs.e + 64); +#elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(__x86_64__) + __extension__ typedef unsigned __int128 uint128; + uint128 p = static_cast(f) * static_cast(rhs.f); + uint64_t h = static_cast(p >> 64); + uint64_t l = static_cast(p); + if (l & (uint64_t(1) << 63)) // rounding + h++; + return DiyFp(h, e + rhs.e + 64); +#else + const uint64_t M32 = 0xFFFFFFFF; + const uint64_t a = f >> 32; + const uint64_t b = f & M32; + const uint64_t c = rhs.f >> 32; + const uint64_t d = rhs.f & M32; + const uint64_t ac = a * c; + const uint64_t bc = b * c; + const uint64_t ad = a * d; + const uint64_t bd = b * d; + uint64_t tmp = (bd >> 32) + (ad & M32) + (bc & M32); + tmp += 1U << 31; /// mult_round + return DiyFp(ac + (ad >> 32) + (bc >> 32) + (tmp >> 32), e + rhs.e + 64); +#endif + } + + DiyFp Normalize() const { + int s = static_cast(clzll(f)); + return DiyFp(f << s, e - s); + } + + DiyFp NormalizeBoundary() const { + DiyFp res = *this; + while (!(res.f & (kDpHiddenBit << 1))) { + res.f <<= 1; + res.e--; + } + res.f <<= (kDiySignificandSize - kDpSignificandSize - 2); + res.e = res.e - (kDiySignificandSize - kDpSignificandSize - 2); + return res; + } + + void NormalizedBoundaries(DiyFp* minus, DiyFp* plus) const { + DiyFp pl = DiyFp((f << 1) + 1, e - 1).NormalizeBoundary(); + DiyFp mi = (f == kDpHiddenBit) ? DiyFp((f << 2) - 1, e - 2) : DiyFp((f << 1) - 1, e - 1); + mi.f <<= mi.e - pl.e; + mi.e = pl.e; + *plus = pl; + *minus = mi; + } + + double ToDouble() const { + union { + double d; + uint64_t u64; + }u; + RAPIDJSON_ASSERT(f <= kDpHiddenBit + kDpSignificandMask); + if (e < kDpDenormalExponent) { + // Underflow. + return 0.0; + } + if (e >= kDpMaxExponent) { + // Overflow. + return std::numeric_limits::infinity(); + } + const uint64_t be = (e == kDpDenormalExponent && (f & kDpHiddenBit) == 0) ? 0 : + static_cast(e + kDpExponentBias); + u.u64 = (f & kDpSignificandMask) | (be << kDpSignificandSize); + return u.d; + } + + static const int kDiySignificandSize = 64; + static const int kDpSignificandSize = 52; + static const int kDpExponentBias = 0x3FF + kDpSignificandSize; + static const int kDpMaxExponent = 0x7FF - kDpExponentBias; + static const int kDpMinExponent = -kDpExponentBias; + static const int kDpDenormalExponent = -kDpExponentBias + 1; + static const uint64_t kDpExponentMask = RAPIDJSON_UINT64_C2(0x7FF00000, 0x00000000); + static const uint64_t kDpSignificandMask = RAPIDJSON_UINT64_C2(0x000FFFFF, 0xFFFFFFFF); + static const uint64_t kDpHiddenBit = RAPIDJSON_UINT64_C2(0x00100000, 0x00000000); + + uint64_t f; + int e; +}; + +inline DiyFp GetCachedPowerByIndex(size_t index) { + // 10^-348, 10^-340, ..., 10^340 + static const uint64_t kCachedPowers_F[] = { + RAPIDJSON_UINT64_C2(0xfa8fd5a0, 0x081c0288), RAPIDJSON_UINT64_C2(0xbaaee17f, 0xa23ebf76), + RAPIDJSON_UINT64_C2(0x8b16fb20, 0x3055ac76), RAPIDJSON_UINT64_C2(0xcf42894a, 0x5dce35ea), + RAPIDJSON_UINT64_C2(0x9a6bb0aa, 0x55653b2d), RAPIDJSON_UINT64_C2(0xe61acf03, 0x3d1a45df), + RAPIDJSON_UINT64_C2(0xab70fe17, 0xc79ac6ca), RAPIDJSON_UINT64_C2(0xff77b1fc, 0xbebcdc4f), + RAPIDJSON_UINT64_C2(0xbe5691ef, 0x416bd60c), RAPIDJSON_UINT64_C2(0x8dd01fad, 0x907ffc3c), + RAPIDJSON_UINT64_C2(0xd3515c28, 0x31559a83), RAPIDJSON_UINT64_C2(0x9d71ac8f, 0xada6c9b5), + RAPIDJSON_UINT64_C2(0xea9c2277, 0x23ee8bcb), RAPIDJSON_UINT64_C2(0xaecc4991, 0x4078536d), + RAPIDJSON_UINT64_C2(0x823c1279, 0x5db6ce57), RAPIDJSON_UINT64_C2(0xc2109436, 0x4dfb5637), + RAPIDJSON_UINT64_C2(0x9096ea6f, 0x3848984f), RAPIDJSON_UINT64_C2(0xd77485cb, 0x25823ac7), + RAPIDJSON_UINT64_C2(0xa086cfcd, 0x97bf97f4), RAPIDJSON_UINT64_C2(0xef340a98, 0x172aace5), + RAPIDJSON_UINT64_C2(0xb23867fb, 0x2a35b28e), RAPIDJSON_UINT64_C2(0x84c8d4df, 0xd2c63f3b), + RAPIDJSON_UINT64_C2(0xc5dd4427, 0x1ad3cdba), RAPIDJSON_UINT64_C2(0x936b9fce, 0xbb25c996), + RAPIDJSON_UINT64_C2(0xdbac6c24, 0x7d62a584), RAPIDJSON_UINT64_C2(0xa3ab6658, 0x0d5fdaf6), + RAPIDJSON_UINT64_C2(0xf3e2f893, 0xdec3f126), RAPIDJSON_UINT64_C2(0xb5b5ada8, 0xaaff80b8), + RAPIDJSON_UINT64_C2(0x87625f05, 0x6c7c4a8b), RAPIDJSON_UINT64_C2(0xc9bcff60, 0x34c13053), + RAPIDJSON_UINT64_C2(0x964e858c, 0x91ba2655), RAPIDJSON_UINT64_C2(0xdff97724, 0x70297ebd), + RAPIDJSON_UINT64_C2(0xa6dfbd9f, 0xb8e5b88f), RAPIDJSON_UINT64_C2(0xf8a95fcf, 0x88747d94), + RAPIDJSON_UINT64_C2(0xb9447093, 0x8fa89bcf), RAPIDJSON_UINT64_C2(0x8a08f0f8, 0xbf0f156b), + RAPIDJSON_UINT64_C2(0xcdb02555, 0x653131b6), RAPIDJSON_UINT64_C2(0x993fe2c6, 0xd07b7fac), + RAPIDJSON_UINT64_C2(0xe45c10c4, 0x2a2b3b06), RAPIDJSON_UINT64_C2(0xaa242499, 0x697392d3), + RAPIDJSON_UINT64_C2(0xfd87b5f2, 0x8300ca0e), RAPIDJSON_UINT64_C2(0xbce50864, 0x92111aeb), + RAPIDJSON_UINT64_C2(0x8cbccc09, 0x6f5088cc), RAPIDJSON_UINT64_C2(0xd1b71758, 0xe219652c), + RAPIDJSON_UINT64_C2(0x9c400000, 0x00000000), RAPIDJSON_UINT64_C2(0xe8d4a510, 0x00000000), + RAPIDJSON_UINT64_C2(0xad78ebc5, 0xac620000), RAPIDJSON_UINT64_C2(0x813f3978, 0xf8940984), + RAPIDJSON_UINT64_C2(0xc097ce7b, 0xc90715b3), RAPIDJSON_UINT64_C2(0x8f7e32ce, 0x7bea5c70), + RAPIDJSON_UINT64_C2(0xd5d238a4, 0xabe98068), RAPIDJSON_UINT64_C2(0x9f4f2726, 0x179a2245), + RAPIDJSON_UINT64_C2(0xed63a231, 0xd4c4fb27), RAPIDJSON_UINT64_C2(0xb0de6538, 0x8cc8ada8), + RAPIDJSON_UINT64_C2(0x83c7088e, 0x1aab65db), RAPIDJSON_UINT64_C2(0xc45d1df9, 0x42711d9a), + RAPIDJSON_UINT64_C2(0x924d692c, 0xa61be758), RAPIDJSON_UINT64_C2(0xda01ee64, 0x1a708dea), + RAPIDJSON_UINT64_C2(0xa26da399, 0x9aef774a), RAPIDJSON_UINT64_C2(0xf209787b, 0xb47d6b85), + RAPIDJSON_UINT64_C2(0xb454e4a1, 0x79dd1877), RAPIDJSON_UINT64_C2(0x865b8692, 0x5b9bc5c2), + RAPIDJSON_UINT64_C2(0xc83553c5, 0xc8965d3d), RAPIDJSON_UINT64_C2(0x952ab45c, 0xfa97a0b3), + RAPIDJSON_UINT64_C2(0xde469fbd, 0x99a05fe3), RAPIDJSON_UINT64_C2(0xa59bc234, 0xdb398c25), + RAPIDJSON_UINT64_C2(0xf6c69a72, 0xa3989f5c), RAPIDJSON_UINT64_C2(0xb7dcbf53, 0x54e9bece), + RAPIDJSON_UINT64_C2(0x88fcf317, 0xf22241e2), RAPIDJSON_UINT64_C2(0xcc20ce9b, 0xd35c78a5), + RAPIDJSON_UINT64_C2(0x98165af3, 0x7b2153df), RAPIDJSON_UINT64_C2(0xe2a0b5dc, 0x971f303a), + RAPIDJSON_UINT64_C2(0xa8d9d153, 0x5ce3b396), RAPIDJSON_UINT64_C2(0xfb9b7cd9, 0xa4a7443c), + RAPIDJSON_UINT64_C2(0xbb764c4c, 0xa7a44410), RAPIDJSON_UINT64_C2(0x8bab8eef, 0xb6409c1a), + RAPIDJSON_UINT64_C2(0xd01fef10, 0xa657842c), RAPIDJSON_UINT64_C2(0x9b10a4e5, 0xe9913129), + RAPIDJSON_UINT64_C2(0xe7109bfb, 0xa19c0c9d), RAPIDJSON_UINT64_C2(0xac2820d9, 0x623bf429), + RAPIDJSON_UINT64_C2(0x80444b5e, 0x7aa7cf85), RAPIDJSON_UINT64_C2(0xbf21e440, 0x03acdd2d), + RAPIDJSON_UINT64_C2(0x8e679c2f, 0x5e44ff8f), RAPIDJSON_UINT64_C2(0xd433179d, 0x9c8cb841), + RAPIDJSON_UINT64_C2(0x9e19db92, 0xb4e31ba9), RAPIDJSON_UINT64_C2(0xeb96bf6e, 0xbadf77d9), + RAPIDJSON_UINT64_C2(0xaf87023b, 0x9bf0ee6b) + }; + static const int16_t kCachedPowers_E[] = { + -1220, -1193, -1166, -1140, -1113, -1087, -1060, -1034, -1007, -980, + -954, -927, -901, -874, -847, -821, -794, -768, -741, -715, + -688, -661, -635, -608, -582, -555, -529, -502, -475, -449, + -422, -396, -369, -343, -316, -289, -263, -236, -210, -183, + -157, -130, -103, -77, -50, -24, 3, 30, 56, 83, + 109, 136, 162, 189, 216, 242, 269, 295, 322, 348, + 375, 402, 428, 455, 481, 508, 534, 561, 588, 614, + 641, 667, 694, 720, 747, 774, 800, 827, 853, 880, + 907, 933, 960, 986, 1013, 1039, 1066 + }; + RAPIDJSON_ASSERT(index < 87); + return DiyFp(kCachedPowers_F[index], kCachedPowers_E[index]); +} + +inline DiyFp GetCachedPower(int e, int* K) { + + //int k = static_cast(ceil((-61 - e) * 0.30102999566398114)) + 374; + double dk = (-61 - e) * 0.30102999566398114 + 347; // dk must be positive, so can do ceiling in positive + int k = static_cast(dk); + if (dk - k > 0.0) + k++; + + unsigned index = static_cast((k >> 3) + 1); + *K = -(-348 + static_cast(index << 3)); // decimal exponent no need lookup table + + return GetCachedPowerByIndex(index); +} + +inline DiyFp GetCachedPower10(int exp, int *outExp) { + RAPIDJSON_ASSERT(exp >= -348); + unsigned index = static_cast(exp + 348) / 8u; + *outExp = -348 + static_cast(index) * 8; + return GetCachedPowerByIndex(index); +} + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +RAPIDJSON_DIAG_OFF(padded) +#endif + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_DIYFP_H_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/dtoa.h b/external/rlottie/src/lottie/rapidjson/internal/dtoa.h new file mode 100644 index 000000000..bf2e9b2e5 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/dtoa.h @@ -0,0 +1,245 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +// This is a C++ header-only implementation of Grisu2 algorithm from the publication: +// Loitsch, Florian. "Printing floating-point numbers quickly and accurately with +// integers." ACM Sigplan Notices 45.6 (2010): 233-243. + +#ifndef RAPIDJSON_DTOA_ +#define RAPIDJSON_DTOA_ + +#include "itoa.h" // GetDigitsLut() +#include "diyfp.h" +#include "ieee754.h" + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +RAPIDJSON_DIAG_OFF(array-bounds) // some gcc versions generate wrong warnings https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124 +#endif + +inline void GrisuRound(char* buffer, int len, uint64_t delta, uint64_t rest, uint64_t ten_kappa, uint64_t wp_w) { + while (rest < wp_w && delta - rest >= ten_kappa && + (rest + ten_kappa < wp_w || /// closer + wp_w - rest > rest + ten_kappa - wp_w)) { + buffer[len - 1]--; + rest += ten_kappa; + } +} + +inline int CountDecimalDigit32(uint32_t n) { + // Simple pure C++ implementation was faster than __builtin_clz version in this situation. + if (n < 10) return 1; + if (n < 100) return 2; + if (n < 1000) return 3; + if (n < 10000) return 4; + if (n < 100000) return 5; + if (n < 1000000) return 6; + if (n < 10000000) return 7; + if (n < 100000000) return 8; + // Will not reach 10 digits in DigitGen() + //if (n < 1000000000) return 9; + //return 10; + return 9; +} + +inline void DigitGen(const DiyFp& W, const DiyFp& Mp, uint64_t delta, char* buffer, int* len, int* K) { + static const uint32_t kPow10[] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000 }; + const DiyFp one(uint64_t(1) << -Mp.e, Mp.e); + const DiyFp wp_w = Mp - W; + uint32_t p1 = static_cast(Mp.f >> -one.e); + uint64_t p2 = Mp.f & (one.f - 1); + int kappa = CountDecimalDigit32(p1); // kappa in [0, 9] + *len = 0; + + while (kappa > 0) { + uint32_t d = 0; + switch (kappa) { + case 9: d = p1 / 100000000; p1 %= 100000000; break; + case 8: d = p1 / 10000000; p1 %= 10000000; break; + case 7: d = p1 / 1000000; p1 %= 1000000; break; + case 6: d = p1 / 100000; p1 %= 100000; break; + case 5: d = p1 / 10000; p1 %= 10000; break; + case 4: d = p1 / 1000; p1 %= 1000; break; + case 3: d = p1 / 100; p1 %= 100; break; + case 2: d = p1 / 10; p1 %= 10; break; + case 1: d = p1; p1 = 0; break; + default:; + } + if (d || *len) + buffer[(*len)++] = static_cast('0' + static_cast(d)); + kappa--; + uint64_t tmp = (static_cast(p1) << -one.e) + p2; + if (tmp <= delta) { + *K += kappa; + GrisuRound(buffer, *len, delta, tmp, static_cast(kPow10[kappa]) << -one.e, wp_w.f); + return; + } + } + + // kappa = 0 + for (;;) { + p2 *= 10; + delta *= 10; + char d = static_cast(p2 >> -one.e); + if (d || *len) + buffer[(*len)++] = static_cast('0' + d); + p2 &= one.f - 1; + kappa--; + if (p2 < delta) { + *K += kappa; + int index = -kappa; + GrisuRound(buffer, *len, delta, p2, one.f, wp_w.f * (index < 9 ? kPow10[index] : 0)); + return; + } + } +} + +inline void Grisu2(double value, char* buffer, int* length, int* K) { + const DiyFp v(value); + DiyFp w_m, w_p; + v.NormalizedBoundaries(&w_m, &w_p); + + const DiyFp c_mk = GetCachedPower(w_p.e, K); + const DiyFp W = v.Normalize() * c_mk; + DiyFp Wp = w_p * c_mk; + DiyFp Wm = w_m * c_mk; + Wm.f++; + Wp.f--; + DigitGen(W, Wp, Wp.f - Wm.f, buffer, length, K); +} + +inline char* WriteExponent(int K, char* buffer) { + if (K < 0) { + *buffer++ = '-'; + K = -K; + } + + if (K >= 100) { + *buffer++ = static_cast('0' + static_cast(K / 100)); + K %= 100; + const char* d = GetDigitsLut() + K * 2; + *buffer++ = d[0]; + *buffer++ = d[1]; + } + else if (K >= 10) { + const char* d = GetDigitsLut() + K * 2; + *buffer++ = d[0]; + *buffer++ = d[1]; + } + else + *buffer++ = static_cast('0' + static_cast(K)); + + return buffer; +} + +inline char* Prettify(char* buffer, int length, int k, int maxDecimalPlaces) { + const int kk = length + k; // 10^(kk-1) <= v < 10^kk + + if (0 <= k && kk <= 21) { + // 1234e7 -> 12340000000 + for (int i = length; i < kk; i++) + buffer[i] = '0'; + buffer[kk] = '.'; + buffer[kk + 1] = '0'; + return &buffer[kk + 2]; + } + else if (0 < kk && kk <= 21) { + // 1234e-2 -> 12.34 + std::memmove(&buffer[kk + 1], &buffer[kk], static_cast(length - kk)); + buffer[kk] = '.'; + if (0 > k + maxDecimalPlaces) { + // When maxDecimalPlaces = 2, 1.2345 -> 1.23, 1.102 -> 1.1 + // Remove extra trailing zeros (at least one) after truncation. + for (int i = kk + maxDecimalPlaces; i > kk + 1; i--) + if (buffer[i] != '0') + return &buffer[i + 1]; + return &buffer[kk + 2]; // Reserve one zero + } + else + return &buffer[length + 1]; + } + else if (-6 < kk && kk <= 0) { + // 1234e-6 -> 0.001234 + const int offset = 2 - kk; + std::memmove(&buffer[offset], &buffer[0], static_cast(length)); + buffer[0] = '0'; + buffer[1] = '.'; + for (int i = 2; i < offset; i++) + buffer[i] = '0'; + if (length - kk > maxDecimalPlaces) { + // When maxDecimalPlaces = 2, 0.123 -> 0.12, 0.102 -> 0.1 + // Remove extra trailing zeros (at least one) after truncation. + for (int i = maxDecimalPlaces + 1; i > 2; i--) + if (buffer[i] != '0') + return &buffer[i + 1]; + return &buffer[3]; // Reserve one zero + } + else + return &buffer[length + offset]; + } + else if (kk < -maxDecimalPlaces) { + // Truncate to zero + buffer[0] = '0'; + buffer[1] = '.'; + buffer[2] = '0'; + return &buffer[3]; + } + else if (length == 1) { + // 1e30 + buffer[1] = 'e'; + return WriteExponent(kk - 1, &buffer[2]); + } + else { + // 1234e30 -> 1.234e33 + std::memmove(&buffer[2], &buffer[1], static_cast(length - 1)); + buffer[1] = '.'; + buffer[length + 1] = 'e'; + return WriteExponent(kk - 1, &buffer[0 + length + 2]); + } +} + +inline char* dtoa(double value, char* buffer, int maxDecimalPlaces = 324) { + RAPIDJSON_ASSERT(maxDecimalPlaces >= 1); + Double d(value); + if (d.IsZero()) { + if (d.Sign()) + *buffer++ = '-'; // -0.0, Issue #289 + buffer[0] = '0'; + buffer[1] = '.'; + buffer[2] = '0'; + return &buffer[3]; + } + else { + if (value < 0) { + *buffer++ = '-'; + value = -value; + } + int length, K; + Grisu2(value, buffer, &length, &K); + return Prettify(buffer, length, K, maxDecimalPlaces); + } +} + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_DTOA_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/ieee754.h b/external/rlottie/src/lottie/rapidjson/internal/ieee754.h new file mode 100644 index 000000000..c2684ba2a --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/ieee754.h @@ -0,0 +1,78 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_IEEE754_ +#define RAPIDJSON_IEEE754_ + +#include "../rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +class Double { +public: + Double() {} + Double(double d) : d_(d) {} + Double(uint64_t u) : u_(u) {} + + double Value() const { return d_; } + uint64_t Uint64Value() const { return u_; } + + double NextPositiveDouble() const { + RAPIDJSON_ASSERT(!Sign()); + return Double(u_ + 1).Value(); + } + + bool Sign() const { return (u_ & kSignMask) != 0; } + uint64_t Significand() const { return u_ & kSignificandMask; } + int Exponent() const { return static_cast(((u_ & kExponentMask) >> kSignificandSize) - kExponentBias); } + + bool IsNan() const { return (u_ & kExponentMask) == kExponentMask && Significand() != 0; } + bool IsInf() const { return (u_ & kExponentMask) == kExponentMask && Significand() == 0; } + bool IsNanOrInf() const { return (u_ & kExponentMask) == kExponentMask; } + bool IsNormal() const { return (u_ & kExponentMask) != 0 || Significand() == 0; } + bool IsZero() const { return (u_ & (kExponentMask | kSignificandMask)) == 0; } + + uint64_t IntegerSignificand() const { return IsNormal() ? Significand() | kHiddenBit : Significand(); } + int IntegerExponent() const { return (IsNormal() ? Exponent() : kDenormalExponent) - kSignificandSize; } + uint64_t ToBias() const { return (u_ & kSignMask) ? ~u_ + 1 : u_ | kSignMask; } + + static int EffectiveSignificandSize(int order) { + if (order >= -1021) + return 53; + else if (order <= -1074) + return 0; + else + return order + 1074; + } + +private: + static const int kSignificandSize = 52; + static const int kExponentBias = 0x3FF; + static const int kDenormalExponent = 1 - kExponentBias; + static const uint64_t kSignMask = RAPIDJSON_UINT64_C2(0x80000000, 0x00000000); + static const uint64_t kExponentMask = RAPIDJSON_UINT64_C2(0x7FF00000, 0x00000000); + static const uint64_t kSignificandMask = RAPIDJSON_UINT64_C2(0x000FFFFF, 0xFFFFFFFF); + static const uint64_t kHiddenBit = RAPIDJSON_UINT64_C2(0x00100000, 0x00000000); + + union { + double d_; + uint64_t u_; + }; +}; + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_IEEE754_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/itoa.h b/external/rlottie/src/lottie/rapidjson/internal/itoa.h new file mode 100644 index 000000000..9b1c45cc1 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/itoa.h @@ -0,0 +1,308 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_ITOA_ +#define RAPIDJSON_ITOA_ + +#include "../rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +inline const char* GetDigitsLut() { + static const char cDigitsLut[200] = { + '0','0','0','1','0','2','0','3','0','4','0','5','0','6','0','7','0','8','0','9', + '1','0','1','1','1','2','1','3','1','4','1','5','1','6','1','7','1','8','1','9', + '2','0','2','1','2','2','2','3','2','4','2','5','2','6','2','7','2','8','2','9', + '3','0','3','1','3','2','3','3','3','4','3','5','3','6','3','7','3','8','3','9', + '4','0','4','1','4','2','4','3','4','4','4','5','4','6','4','7','4','8','4','9', + '5','0','5','1','5','2','5','3','5','4','5','5','5','6','5','7','5','8','5','9', + '6','0','6','1','6','2','6','3','6','4','6','5','6','6','6','7','6','8','6','9', + '7','0','7','1','7','2','7','3','7','4','7','5','7','6','7','7','7','8','7','9', + '8','0','8','1','8','2','8','3','8','4','8','5','8','6','8','7','8','8','8','9', + '9','0','9','1','9','2','9','3','9','4','9','5','9','6','9','7','9','8','9','9' + }; + return cDigitsLut; +} + +inline char* u32toa(uint32_t value, char* buffer) { + RAPIDJSON_ASSERT(buffer != 0); + + const char* cDigitsLut = GetDigitsLut(); + + if (value < 10000) { + const uint32_t d1 = (value / 100) << 1; + const uint32_t d2 = (value % 100) << 1; + + if (value >= 1000) + *buffer++ = cDigitsLut[d1]; + if (value >= 100) + *buffer++ = cDigitsLut[d1 + 1]; + if (value >= 10) + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + } + else if (value < 100000000) { + // value = bbbbcccc + const uint32_t b = value / 10000; + const uint32_t c = value % 10000; + + const uint32_t d1 = (b / 100) << 1; + const uint32_t d2 = (b % 100) << 1; + + const uint32_t d3 = (c / 100) << 1; + const uint32_t d4 = (c % 100) << 1; + + if (value >= 10000000) + *buffer++ = cDigitsLut[d1]; + if (value >= 1000000) + *buffer++ = cDigitsLut[d1 + 1]; + if (value >= 100000) + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + + *buffer++ = cDigitsLut[d3]; + *buffer++ = cDigitsLut[d3 + 1]; + *buffer++ = cDigitsLut[d4]; + *buffer++ = cDigitsLut[d4 + 1]; + } + else { + // value = aabbbbcccc in decimal + + const uint32_t a = value / 100000000; // 1 to 42 + value %= 100000000; + + if (a >= 10) { + const unsigned i = a << 1; + *buffer++ = cDigitsLut[i]; + *buffer++ = cDigitsLut[i + 1]; + } + else + *buffer++ = static_cast('0' + static_cast(a)); + + const uint32_t b = value / 10000; // 0 to 9999 + const uint32_t c = value % 10000; // 0 to 9999 + + const uint32_t d1 = (b / 100) << 1; + const uint32_t d2 = (b % 100) << 1; + + const uint32_t d3 = (c / 100) << 1; + const uint32_t d4 = (c % 100) << 1; + + *buffer++ = cDigitsLut[d1]; + *buffer++ = cDigitsLut[d1 + 1]; + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + *buffer++ = cDigitsLut[d3]; + *buffer++ = cDigitsLut[d3 + 1]; + *buffer++ = cDigitsLut[d4]; + *buffer++ = cDigitsLut[d4 + 1]; + } + return buffer; +} + +inline char* i32toa(int32_t value, char* buffer) { + RAPIDJSON_ASSERT(buffer != 0); + uint32_t u = static_cast(value); + if (value < 0) { + *buffer++ = '-'; + u = ~u + 1; + } + + return u32toa(u, buffer); +} + +inline char* u64toa(uint64_t value, char* buffer) { + RAPIDJSON_ASSERT(buffer != 0); + const char* cDigitsLut = GetDigitsLut(); + const uint64_t kTen8 = 100000000; + const uint64_t kTen9 = kTen8 * 10; + const uint64_t kTen10 = kTen8 * 100; + const uint64_t kTen11 = kTen8 * 1000; + const uint64_t kTen12 = kTen8 * 10000; + const uint64_t kTen13 = kTen8 * 100000; + const uint64_t kTen14 = kTen8 * 1000000; + const uint64_t kTen15 = kTen8 * 10000000; + const uint64_t kTen16 = kTen8 * kTen8; + + if (value < kTen8) { + uint32_t v = static_cast(value); + if (v < 10000) { + const uint32_t d1 = (v / 100) << 1; + const uint32_t d2 = (v % 100) << 1; + + if (v >= 1000) + *buffer++ = cDigitsLut[d1]; + if (v >= 100) + *buffer++ = cDigitsLut[d1 + 1]; + if (v >= 10) + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + } + else { + // value = bbbbcccc + const uint32_t b = v / 10000; + const uint32_t c = v % 10000; + + const uint32_t d1 = (b / 100) << 1; + const uint32_t d2 = (b % 100) << 1; + + const uint32_t d3 = (c / 100) << 1; + const uint32_t d4 = (c % 100) << 1; + + if (value >= 10000000) + *buffer++ = cDigitsLut[d1]; + if (value >= 1000000) + *buffer++ = cDigitsLut[d1 + 1]; + if (value >= 100000) + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + + *buffer++ = cDigitsLut[d3]; + *buffer++ = cDigitsLut[d3 + 1]; + *buffer++ = cDigitsLut[d4]; + *buffer++ = cDigitsLut[d4 + 1]; + } + } + else if (value < kTen16) { + const uint32_t v0 = static_cast(value / kTen8); + const uint32_t v1 = static_cast(value % kTen8); + + const uint32_t b0 = v0 / 10000; + const uint32_t c0 = v0 % 10000; + + const uint32_t d1 = (b0 / 100) << 1; + const uint32_t d2 = (b0 % 100) << 1; + + const uint32_t d3 = (c0 / 100) << 1; + const uint32_t d4 = (c0 % 100) << 1; + + const uint32_t b1 = v1 / 10000; + const uint32_t c1 = v1 % 10000; + + const uint32_t d5 = (b1 / 100) << 1; + const uint32_t d6 = (b1 % 100) << 1; + + const uint32_t d7 = (c1 / 100) << 1; + const uint32_t d8 = (c1 % 100) << 1; + + if (value >= kTen15) + *buffer++ = cDigitsLut[d1]; + if (value >= kTen14) + *buffer++ = cDigitsLut[d1 + 1]; + if (value >= kTen13) + *buffer++ = cDigitsLut[d2]; + if (value >= kTen12) + *buffer++ = cDigitsLut[d2 + 1]; + if (value >= kTen11) + *buffer++ = cDigitsLut[d3]; + if (value >= kTen10) + *buffer++ = cDigitsLut[d3 + 1]; + if (value >= kTen9) + *buffer++ = cDigitsLut[d4]; + + *buffer++ = cDigitsLut[d4 + 1]; + *buffer++ = cDigitsLut[d5]; + *buffer++ = cDigitsLut[d5 + 1]; + *buffer++ = cDigitsLut[d6]; + *buffer++ = cDigitsLut[d6 + 1]; + *buffer++ = cDigitsLut[d7]; + *buffer++ = cDigitsLut[d7 + 1]; + *buffer++ = cDigitsLut[d8]; + *buffer++ = cDigitsLut[d8 + 1]; + } + else { + const uint32_t a = static_cast(value / kTen16); // 1 to 1844 + value %= kTen16; + + if (a < 10) + *buffer++ = static_cast('0' + static_cast(a)); + else if (a < 100) { + const uint32_t i = a << 1; + *buffer++ = cDigitsLut[i]; + *buffer++ = cDigitsLut[i + 1]; + } + else if (a < 1000) { + *buffer++ = static_cast('0' + static_cast(a / 100)); + + const uint32_t i = (a % 100) << 1; + *buffer++ = cDigitsLut[i]; + *buffer++ = cDigitsLut[i + 1]; + } + else { + const uint32_t i = (a / 100) << 1; + const uint32_t j = (a % 100) << 1; + *buffer++ = cDigitsLut[i]; + *buffer++ = cDigitsLut[i + 1]; + *buffer++ = cDigitsLut[j]; + *buffer++ = cDigitsLut[j + 1]; + } + + const uint32_t v0 = static_cast(value / kTen8); + const uint32_t v1 = static_cast(value % kTen8); + + const uint32_t b0 = v0 / 10000; + const uint32_t c0 = v0 % 10000; + + const uint32_t d1 = (b0 / 100) << 1; + const uint32_t d2 = (b0 % 100) << 1; + + const uint32_t d3 = (c0 / 100) << 1; + const uint32_t d4 = (c0 % 100) << 1; + + const uint32_t b1 = v1 / 10000; + const uint32_t c1 = v1 % 10000; + + const uint32_t d5 = (b1 / 100) << 1; + const uint32_t d6 = (b1 % 100) << 1; + + const uint32_t d7 = (c1 / 100) << 1; + const uint32_t d8 = (c1 % 100) << 1; + + *buffer++ = cDigitsLut[d1]; + *buffer++ = cDigitsLut[d1 + 1]; + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + *buffer++ = cDigitsLut[d3]; + *buffer++ = cDigitsLut[d3 + 1]; + *buffer++ = cDigitsLut[d4]; + *buffer++ = cDigitsLut[d4 + 1]; + *buffer++ = cDigitsLut[d5]; + *buffer++ = cDigitsLut[d5 + 1]; + *buffer++ = cDigitsLut[d6]; + *buffer++ = cDigitsLut[d6 + 1]; + *buffer++ = cDigitsLut[d7]; + *buffer++ = cDigitsLut[d7 + 1]; + *buffer++ = cDigitsLut[d8]; + *buffer++ = cDigitsLut[d8 + 1]; + } + + return buffer; +} + +inline char* i64toa(int64_t value, char* buffer) { + RAPIDJSON_ASSERT(buffer != 0); + uint64_t u = static_cast(value); + if (value < 0) { + *buffer++ = '-'; + u = ~u + 1; + } + + return u64toa(u, buffer); +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_ITOA_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/meta.h b/external/rlottie/src/lottie/rapidjson/internal/meta.h new file mode 100644 index 000000000..d401edf85 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/meta.h @@ -0,0 +1,186 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_INTERNAL_META_H_ +#define RAPIDJSON_INTERNAL_META_H_ + +#include "../rapidjson.h" + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#if defined(_MSC_VER) && !defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(6334) +#endif + +#if RAPIDJSON_HAS_CXX11_TYPETRAITS +#include +#endif + +//@cond RAPIDJSON_INTERNAL +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +// Helper to wrap/convert arbitrary types to void, useful for arbitrary type matching +template struct Void { typedef void Type; }; + +/////////////////////////////////////////////////////////////////////////////// +// BoolType, TrueType, FalseType +// +template struct BoolType { + static const bool Value = Cond; + typedef BoolType Type; +}; +typedef BoolType TrueType; +typedef BoolType FalseType; + + +/////////////////////////////////////////////////////////////////////////////// +// SelectIf, BoolExpr, NotExpr, AndExpr, OrExpr +// + +template struct SelectIfImpl { template struct Apply { typedef T1 Type; }; }; +template <> struct SelectIfImpl { template struct Apply { typedef T2 Type; }; }; +template struct SelectIfCond : SelectIfImpl::template Apply {}; +template struct SelectIf : SelectIfCond {}; + +template struct AndExprCond : FalseType {}; +template <> struct AndExprCond : TrueType {}; +template struct OrExprCond : TrueType {}; +template <> struct OrExprCond : FalseType {}; + +template struct BoolExpr : SelectIf::Type {}; +template struct NotExpr : SelectIf::Type {}; +template struct AndExpr : AndExprCond::Type {}; +template struct OrExpr : OrExprCond::Type {}; + + +/////////////////////////////////////////////////////////////////////////////// +// AddConst, MaybeAddConst, RemoveConst +template struct AddConst { typedef const T Type; }; +template struct MaybeAddConst : SelectIfCond {}; +template struct RemoveConst { typedef T Type; }; +template struct RemoveConst { typedef T Type; }; + + +/////////////////////////////////////////////////////////////////////////////// +// IsSame, IsConst, IsMoreConst, IsPointer +// +template struct IsSame : FalseType {}; +template struct IsSame : TrueType {}; + +template struct IsConst : FalseType {}; +template struct IsConst : TrueType {}; + +template +struct IsMoreConst + : AndExpr::Type, typename RemoveConst::Type>, + BoolType::Value >= IsConst::Value> >::Type {}; + +template struct IsPointer : FalseType {}; +template struct IsPointer : TrueType {}; + +/////////////////////////////////////////////////////////////////////////////// +// IsBaseOf +// +#if RAPIDJSON_HAS_CXX11_TYPETRAITS + +template struct IsBaseOf + : BoolType< ::std::is_base_of::value> {}; + +#else // simplified version adopted from Boost + +template struct IsBaseOfImpl { + RAPIDJSON_STATIC_ASSERT(sizeof(B) != 0); + RAPIDJSON_STATIC_ASSERT(sizeof(D) != 0); + + typedef char (&Yes)[1]; + typedef char (&No) [2]; + + template + static Yes Check(const D*, T); + static No Check(const B*, int); + + struct Host { + operator const B*() const; + operator const D*(); + }; + + enum { Value = (sizeof(Check(Host(), 0)) == sizeof(Yes)) }; +}; + +template struct IsBaseOf + : OrExpr, BoolExpr > >::Type {}; + +#endif // RAPIDJSON_HAS_CXX11_TYPETRAITS + + +////////////////////////////////////////////////////////////////////////// +// EnableIf / DisableIf +// +template struct EnableIfCond { typedef T Type; }; +template struct EnableIfCond { /* empty */ }; + +template struct DisableIfCond { typedef T Type; }; +template struct DisableIfCond { /* empty */ }; + +template +struct EnableIf : EnableIfCond {}; + +template +struct DisableIf : DisableIfCond {}; + +// SFINAE helpers +struct SfinaeTag {}; +template struct RemoveSfinaeTag; +template struct RemoveSfinaeTag { typedef T Type; }; + +#define RAPIDJSON_REMOVEFPTR_(type) \ + typename ::RAPIDJSON_NAMESPACE::internal::RemoveSfinaeTag \ + < ::RAPIDJSON_NAMESPACE::internal::SfinaeTag&(*) type>::Type + +#define RAPIDJSON_ENABLEIF(cond) \ + typename ::RAPIDJSON_NAMESPACE::internal::EnableIf \ + ::Type * = NULL + +#define RAPIDJSON_DISABLEIF(cond) \ + typename ::RAPIDJSON_NAMESPACE::internal::DisableIf \ + ::Type * = NULL + +#define RAPIDJSON_ENABLEIF_RETURN(cond,returntype) \ + typename ::RAPIDJSON_NAMESPACE::internal::EnableIf \ + ::Type + +#define RAPIDJSON_DISABLEIF_RETURN(cond,returntype) \ + typename ::RAPIDJSON_NAMESPACE::internal::DisableIf \ + ::Type + +} // namespace internal +RAPIDJSON_NAMESPACE_END +//@endcond + +#if defined(_MSC_VER) && !defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_INTERNAL_META_H_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/pow10.h b/external/rlottie/src/lottie/rapidjson/internal/pow10.h new file mode 100644 index 000000000..02f475d70 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/pow10.h @@ -0,0 +1,55 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_POW10_ +#define RAPIDJSON_POW10_ + +#include "../rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +//! Computes integer powers of 10 in double (10.0^n). +/*! This function uses lookup table for fast and accurate results. + \param n non-negative exponent. Must <= 308. + \return 10.0^n +*/ +inline double Pow10(int n) { + static const double e[] = { // 1e-0...1e308: 309 * 8 bytes = 2472 bytes + 1e+0, + 1e+1, 1e+2, 1e+3, 1e+4, 1e+5, 1e+6, 1e+7, 1e+8, 1e+9, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20, + 1e+21, 1e+22, 1e+23, 1e+24, 1e+25, 1e+26, 1e+27, 1e+28, 1e+29, 1e+30, 1e+31, 1e+32, 1e+33, 1e+34, 1e+35, 1e+36, 1e+37, 1e+38, 1e+39, 1e+40, + 1e+41, 1e+42, 1e+43, 1e+44, 1e+45, 1e+46, 1e+47, 1e+48, 1e+49, 1e+50, 1e+51, 1e+52, 1e+53, 1e+54, 1e+55, 1e+56, 1e+57, 1e+58, 1e+59, 1e+60, + 1e+61, 1e+62, 1e+63, 1e+64, 1e+65, 1e+66, 1e+67, 1e+68, 1e+69, 1e+70, 1e+71, 1e+72, 1e+73, 1e+74, 1e+75, 1e+76, 1e+77, 1e+78, 1e+79, 1e+80, + 1e+81, 1e+82, 1e+83, 1e+84, 1e+85, 1e+86, 1e+87, 1e+88, 1e+89, 1e+90, 1e+91, 1e+92, 1e+93, 1e+94, 1e+95, 1e+96, 1e+97, 1e+98, 1e+99, 1e+100, + 1e+101,1e+102,1e+103,1e+104,1e+105,1e+106,1e+107,1e+108,1e+109,1e+110,1e+111,1e+112,1e+113,1e+114,1e+115,1e+116,1e+117,1e+118,1e+119,1e+120, + 1e+121,1e+122,1e+123,1e+124,1e+125,1e+126,1e+127,1e+128,1e+129,1e+130,1e+131,1e+132,1e+133,1e+134,1e+135,1e+136,1e+137,1e+138,1e+139,1e+140, + 1e+141,1e+142,1e+143,1e+144,1e+145,1e+146,1e+147,1e+148,1e+149,1e+150,1e+151,1e+152,1e+153,1e+154,1e+155,1e+156,1e+157,1e+158,1e+159,1e+160, + 1e+161,1e+162,1e+163,1e+164,1e+165,1e+166,1e+167,1e+168,1e+169,1e+170,1e+171,1e+172,1e+173,1e+174,1e+175,1e+176,1e+177,1e+178,1e+179,1e+180, + 1e+181,1e+182,1e+183,1e+184,1e+185,1e+186,1e+187,1e+188,1e+189,1e+190,1e+191,1e+192,1e+193,1e+194,1e+195,1e+196,1e+197,1e+198,1e+199,1e+200, + 1e+201,1e+202,1e+203,1e+204,1e+205,1e+206,1e+207,1e+208,1e+209,1e+210,1e+211,1e+212,1e+213,1e+214,1e+215,1e+216,1e+217,1e+218,1e+219,1e+220, + 1e+221,1e+222,1e+223,1e+224,1e+225,1e+226,1e+227,1e+228,1e+229,1e+230,1e+231,1e+232,1e+233,1e+234,1e+235,1e+236,1e+237,1e+238,1e+239,1e+240, + 1e+241,1e+242,1e+243,1e+244,1e+245,1e+246,1e+247,1e+248,1e+249,1e+250,1e+251,1e+252,1e+253,1e+254,1e+255,1e+256,1e+257,1e+258,1e+259,1e+260, + 1e+261,1e+262,1e+263,1e+264,1e+265,1e+266,1e+267,1e+268,1e+269,1e+270,1e+271,1e+272,1e+273,1e+274,1e+275,1e+276,1e+277,1e+278,1e+279,1e+280, + 1e+281,1e+282,1e+283,1e+284,1e+285,1e+286,1e+287,1e+288,1e+289,1e+290,1e+291,1e+292,1e+293,1e+294,1e+295,1e+296,1e+297,1e+298,1e+299,1e+300, + 1e+301,1e+302,1e+303,1e+304,1e+305,1e+306,1e+307,1e+308 + }; + RAPIDJSON_ASSERT(n >= 0 && n <= 308); + return e[n]; +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_POW10_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/regex.h b/external/rlottie/src/lottie/rapidjson/internal/regex.h new file mode 100644 index 000000000..af7e06de5 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/regex.h @@ -0,0 +1,739 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_INTERNAL_REGEX_H_ +#define RAPIDJSON_INTERNAL_REGEX_H_ + +#include "../allocators.h" +#include "../stream.h" +#include "stack.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(switch-enum) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#ifndef RAPIDJSON_REGEX_VERBOSE +#define RAPIDJSON_REGEX_VERBOSE 0 +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +/////////////////////////////////////////////////////////////////////////////// +// DecodedStream + +template +class DecodedStream { +public: + DecodedStream(SourceStream& ss) : ss_(ss), codepoint_() { Decode(); } + unsigned Peek() { return codepoint_; } + unsigned Take() { + unsigned c = codepoint_; + if (c) // No further decoding when '\0' + Decode(); + return c; + } + +private: + void Decode() { + if (!Encoding::Decode(ss_, &codepoint_)) + codepoint_ = 0; + } + + SourceStream& ss_; + unsigned codepoint_; +}; + +/////////////////////////////////////////////////////////////////////////////// +// GenericRegex + +static const SizeType kRegexInvalidState = ~SizeType(0); //!< Represents an invalid index in GenericRegex::State::out, out1 +static const SizeType kRegexInvalidRange = ~SizeType(0); + +template +class GenericRegexSearch; + +//! Regular expression engine with subset of ECMAscript grammar. +/*! + Supported regular expression syntax: + - \c ab Concatenation + - \c a|b Alternation + - \c a? Zero or one + - \c a* Zero or more + - \c a+ One or more + - \c a{3} Exactly 3 times + - \c a{3,} At least 3 times + - \c a{3,5} 3 to 5 times + - \c (ab) Grouping + - \c ^a At the beginning + - \c a$ At the end + - \c . Any character + - \c [abc] Character classes + - \c [a-c] Character class range + - \c [a-z0-9_] Character class combination + - \c [^abc] Negated character classes + - \c [^a-c] Negated character class range + - \c [\b] Backspace (U+0008) + - \c \\| \\\\ ... Escape characters + - \c \\f Form feed (U+000C) + - \c \\n Line feed (U+000A) + - \c \\r Carriage return (U+000D) + - \c \\t Tab (U+0009) + - \c \\v Vertical tab (U+000B) + + \note This is a Thompson NFA engine, implemented with reference to + Cox, Russ. "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).", + https://swtch.com/~rsc/regexp/regexp1.html +*/ +template +class GenericRegex { +public: + typedef Encoding EncodingType; + typedef typename Encoding::Ch Ch; + template friend class GenericRegexSearch; + + GenericRegex(const Ch* source, Allocator* allocator = 0) : + ownAllocator_(allocator ? 0 : RAPIDJSON_NEW(Allocator)()), allocator_(allocator ? allocator : ownAllocator_), + states_(allocator_, 256), ranges_(allocator_, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(), + anchorBegin_(), anchorEnd_() + { + GenericStringStream ss(source); + DecodedStream, Encoding> ds(ss); + Parse(ds); + } + + ~GenericRegex() + { + RAPIDJSON_DELETE(ownAllocator_); + } + + bool IsValid() const { + return root_ != kRegexInvalidState; + } + +private: + enum Operator { + kZeroOrOne, + kZeroOrMore, + kOneOrMore, + kConcatenation, + kAlternation, + kLeftParenthesis + }; + + static const unsigned kAnyCharacterClass = 0xFFFFFFFF; //!< For '.' + static const unsigned kRangeCharacterClass = 0xFFFFFFFE; + static const unsigned kRangeNegationFlag = 0x80000000; + + struct Range { + unsigned start; // + unsigned end; + SizeType next; + }; + + struct State { + SizeType out; //!< Equals to kInvalid for matching state + SizeType out1; //!< Equals to non-kInvalid for split + SizeType rangeStart; + unsigned codepoint; + }; + + struct Frag { + Frag(SizeType s, SizeType o, SizeType m) : start(s), out(o), minIndex(m) {} + SizeType start; + SizeType out; //!< link-list of all output states + SizeType minIndex; + }; + + State& GetState(SizeType index) { + RAPIDJSON_ASSERT(index < stateCount_); + return states_.template Bottom()[index]; + } + + const State& GetState(SizeType index) const { + RAPIDJSON_ASSERT(index < stateCount_); + return states_.template Bottom()[index]; + } + + Range& GetRange(SizeType index) { + RAPIDJSON_ASSERT(index < rangeCount_); + return ranges_.template Bottom()[index]; + } + + const Range& GetRange(SizeType index) const { + RAPIDJSON_ASSERT(index < rangeCount_); + return ranges_.template Bottom()[index]; + } + + template + void Parse(DecodedStream& ds) { + Stack operandStack(allocator_, 256); // Frag + Stack operatorStack(allocator_, 256); // Operator + Stack atomCountStack(allocator_, 256); // unsigned (Atom per parenthesis) + + *atomCountStack.template Push() = 0; + + unsigned codepoint; + while (ds.Peek() != 0) { + switch (codepoint = ds.Take()) { + case '^': + anchorBegin_ = true; + break; + + case '$': + anchorEnd_ = true; + break; + + case '|': + while (!operatorStack.Empty() && *operatorStack.template Top() < kAlternation) + if (!Eval(operandStack, *operatorStack.template Pop(1))) + return; + *operatorStack.template Push() = kAlternation; + *atomCountStack.template Top() = 0; + break; + + case '(': + *operatorStack.template Push() = kLeftParenthesis; + *atomCountStack.template Push() = 0; + break; + + case ')': + while (!operatorStack.Empty() && *operatorStack.template Top() != kLeftParenthesis) + if (!Eval(operandStack, *operatorStack.template Pop(1))) + return; + if (operatorStack.Empty()) + return; + operatorStack.template Pop(1); + atomCountStack.template Pop(1); + ImplicitConcatenation(atomCountStack, operatorStack); + break; + + case '?': + if (!Eval(operandStack, kZeroOrOne)) + return; + break; + + case '*': + if (!Eval(operandStack, kZeroOrMore)) + return; + break; + + case '+': + if (!Eval(operandStack, kOneOrMore)) + return; + break; + + case '{': + { + unsigned n, m; + if (!ParseUnsigned(ds, &n)) + return; + + if (ds.Peek() == ',') { + ds.Take(); + if (ds.Peek() == '}') + m = kInfinityQuantifier; + else if (!ParseUnsigned(ds, &m) || m < n) + return; + } + else + m = n; + + if (!EvalQuantifier(operandStack, n, m) || ds.Peek() != '}') + return; + ds.Take(); + } + break; + + case '.': + PushOperand(operandStack, kAnyCharacterClass); + ImplicitConcatenation(atomCountStack, operatorStack); + break; + + case '[': + { + SizeType range; + if (!ParseRange(ds, &range)) + return; + SizeType s = NewState(kRegexInvalidState, kRegexInvalidState, kRangeCharacterClass); + GetState(s).rangeStart = range; + *operandStack.template Push() = Frag(s, s, s); + } + ImplicitConcatenation(atomCountStack, operatorStack); + break; + + case '\\': // Escape character + if (!CharacterEscape(ds, &codepoint)) + return; // Unsupported escape character + // fall through to default + RAPIDJSON_DELIBERATE_FALLTHROUGH; + + default: // Pattern character + PushOperand(operandStack, codepoint); + ImplicitConcatenation(atomCountStack, operatorStack); + } + } + + while (!operatorStack.Empty()) + if (!Eval(operandStack, *operatorStack.template Pop(1))) + return; + + // Link the operand to matching state. + if (operandStack.GetSize() == sizeof(Frag)) { + Frag* e = operandStack.template Pop(1); + Patch(e->out, NewState(kRegexInvalidState, kRegexInvalidState, 0)); + root_ = e->start; + +#if RAPIDJSON_REGEX_VERBOSE + printf("root: %d\n", root_); + for (SizeType i = 0; i < stateCount_ ; i++) { + State& s = GetState(i); + printf("[%2d] out: %2d out1: %2d c: '%c'\n", i, s.out, s.out1, (char)s.codepoint); + } + printf("\n"); +#endif + } + } + + SizeType NewState(SizeType out, SizeType out1, unsigned codepoint) { + State* s = states_.template Push(); + s->out = out; + s->out1 = out1; + s->codepoint = codepoint; + s->rangeStart = kRegexInvalidRange; + return stateCount_++; + } + + void PushOperand(Stack& operandStack, unsigned codepoint) { + SizeType s = NewState(kRegexInvalidState, kRegexInvalidState, codepoint); + *operandStack.template Push() = Frag(s, s, s); + } + + void ImplicitConcatenation(Stack& atomCountStack, Stack& operatorStack) { + if (*atomCountStack.template Top()) + *operatorStack.template Push() = kConcatenation; + (*atomCountStack.template Top())++; + } + + SizeType Append(SizeType l1, SizeType l2) { + SizeType old = l1; + while (GetState(l1).out != kRegexInvalidState) + l1 = GetState(l1).out; + GetState(l1).out = l2; + return old; + } + + void Patch(SizeType l, SizeType s) { + for (SizeType next; l != kRegexInvalidState; l = next) { + next = GetState(l).out; + GetState(l).out = s; + } + } + + bool Eval(Stack& operandStack, Operator op) { + switch (op) { + case kConcatenation: + RAPIDJSON_ASSERT(operandStack.GetSize() >= sizeof(Frag) * 2); + { + Frag e2 = *operandStack.template Pop(1); + Frag e1 = *operandStack.template Pop(1); + Patch(e1.out, e2.start); + *operandStack.template Push() = Frag(e1.start, e2.out, Min(e1.minIndex, e2.minIndex)); + } + return true; + + case kAlternation: + if (operandStack.GetSize() >= sizeof(Frag) * 2) { + Frag e2 = *operandStack.template Pop(1); + Frag e1 = *operandStack.template Pop(1); + SizeType s = NewState(e1.start, e2.start, 0); + *operandStack.template Push() = Frag(s, Append(e1.out, e2.out), Min(e1.minIndex, e2.minIndex)); + return true; + } + return false; + + case kZeroOrOne: + if (operandStack.GetSize() >= sizeof(Frag)) { + Frag e = *operandStack.template Pop(1); + SizeType s = NewState(kRegexInvalidState, e.start, 0); + *operandStack.template Push() = Frag(s, Append(e.out, s), e.minIndex); + return true; + } + return false; + + case kZeroOrMore: + if (operandStack.GetSize() >= sizeof(Frag)) { + Frag e = *operandStack.template Pop(1); + SizeType s = NewState(kRegexInvalidState, e.start, 0); + Patch(e.out, s); + *operandStack.template Push() = Frag(s, s, e.minIndex); + return true; + } + return false; + + case kOneOrMore: + if (operandStack.GetSize() >= sizeof(Frag)) { + Frag e = *operandStack.template Pop(1); + SizeType s = NewState(kRegexInvalidState, e.start, 0); + Patch(e.out, s); + *operandStack.template Push() = Frag(e.start, s, e.minIndex); + return true; + } + return false; + + default: + // syntax error (e.g. unclosed kLeftParenthesis) + return false; + } + } + + bool EvalQuantifier(Stack& operandStack, unsigned n, unsigned m) { + RAPIDJSON_ASSERT(n <= m); + RAPIDJSON_ASSERT(operandStack.GetSize() >= sizeof(Frag)); + + if (n == 0) { + if (m == 0) // a{0} not support + return false; + else if (m == kInfinityQuantifier) + Eval(operandStack, kZeroOrMore); // a{0,} -> a* + else { + Eval(operandStack, kZeroOrOne); // a{0,5} -> a? + for (unsigned i = 0; i < m - 1; i++) + CloneTopOperand(operandStack); // a{0,5} -> a? a? a? a? a? + for (unsigned i = 0; i < m - 1; i++) + Eval(operandStack, kConcatenation); // a{0,5} -> a?a?a?a?a? + } + return true; + } + + for (unsigned i = 0; i < n - 1; i++) // a{3} -> a a a + CloneTopOperand(operandStack); + + if (m == kInfinityQuantifier) + Eval(operandStack, kOneOrMore); // a{3,} -> a a a+ + else if (m > n) { + CloneTopOperand(operandStack); // a{3,5} -> a a a a + Eval(operandStack, kZeroOrOne); // a{3,5} -> a a a a? + for (unsigned i = n; i < m - 1; i++) + CloneTopOperand(operandStack); // a{3,5} -> a a a a? a? + for (unsigned i = n; i < m; i++) + Eval(operandStack, kConcatenation); // a{3,5} -> a a aa?a? + } + + for (unsigned i = 0; i < n - 1; i++) + Eval(operandStack, kConcatenation); // a{3} -> aaa, a{3,} -> aaa+, a{3.5} -> aaaa?a? + + return true; + } + + static SizeType Min(SizeType a, SizeType b) { return a < b ? a : b; } + + void CloneTopOperand(Stack& operandStack) { + const Frag src = *operandStack.template Top(); // Copy constructor to prevent invalidation + SizeType count = stateCount_ - src.minIndex; // Assumes top operand contains states in [src->minIndex, stateCount_) + State* s = states_.template Push(count); + memcpy(s, &GetState(src.minIndex), count * sizeof(State)); + for (SizeType j = 0; j < count; j++) { + if (s[j].out != kRegexInvalidState) + s[j].out += count; + if (s[j].out1 != kRegexInvalidState) + s[j].out1 += count; + } + *operandStack.template Push() = Frag(src.start + count, src.out + count, src.minIndex + count); + stateCount_ += count; + } + + template + bool ParseUnsigned(DecodedStream& ds, unsigned* u) { + unsigned r = 0; + if (ds.Peek() < '0' || ds.Peek() > '9') + return false; + while (ds.Peek() >= '0' && ds.Peek() <= '9') { + if (r >= 429496729 && ds.Peek() > '5') // 2^32 - 1 = 4294967295 + return false; // overflow + r = r * 10 + (ds.Take() - '0'); + } + *u = r; + return true; + } + + template + bool ParseRange(DecodedStream& ds, SizeType* range) { + bool isBegin = true; + bool negate = false; + int step = 0; + SizeType start = kRegexInvalidRange; + SizeType current = kRegexInvalidRange; + unsigned codepoint; + while ((codepoint = ds.Take()) != 0) { + if (isBegin) { + isBegin = false; + if (codepoint == '^') { + negate = true; + continue; + } + } + + switch (codepoint) { + case ']': + if (start == kRegexInvalidRange) + return false; // Error: nothing inside [] + if (step == 2) { // Add trailing '-' + SizeType r = NewRange('-'); + RAPIDJSON_ASSERT(current != kRegexInvalidRange); + GetRange(current).next = r; + } + if (negate) + GetRange(start).start |= kRangeNegationFlag; + *range = start; + return true; + + case '\\': + if (ds.Peek() == 'b') { + ds.Take(); + codepoint = 0x0008; // Escape backspace character + } + else if (!CharacterEscape(ds, &codepoint)) + return false; + // fall through to default + RAPIDJSON_DELIBERATE_FALLTHROUGH; + + default: + switch (step) { + case 1: + if (codepoint == '-') { + step++; + break; + } + // fall through to step 0 for other characters + RAPIDJSON_DELIBERATE_FALLTHROUGH; + + case 0: + { + SizeType r = NewRange(codepoint); + if (current != kRegexInvalidRange) + GetRange(current).next = r; + if (start == kRegexInvalidRange) + start = r; + current = r; + } + step = 1; + break; + + default: + RAPIDJSON_ASSERT(step == 2); + GetRange(current).end = codepoint; + step = 0; + } + } + } + return false; + } + + SizeType NewRange(unsigned codepoint) { + Range* r = ranges_.template Push(); + r->start = r->end = codepoint; + r->next = kRegexInvalidRange; + return rangeCount_++; + } + + template + bool CharacterEscape(DecodedStream& ds, unsigned* escapedCodepoint) { + unsigned codepoint; + switch (codepoint = ds.Take()) { + case '^': + case '$': + case '|': + case '(': + case ')': + case '?': + case '*': + case '+': + case '.': + case '[': + case ']': + case '{': + case '}': + case '\\': + *escapedCodepoint = codepoint; return true; + case 'f': *escapedCodepoint = 0x000C; return true; + case 'n': *escapedCodepoint = 0x000A; return true; + case 'r': *escapedCodepoint = 0x000D; return true; + case 't': *escapedCodepoint = 0x0009; return true; + case 'v': *escapedCodepoint = 0x000B; return true; + default: + return false; // Unsupported escape character + } + } + + Allocator* ownAllocator_; + Allocator* allocator_; + Stack states_; + Stack ranges_; + SizeType root_; + SizeType stateCount_; + SizeType rangeCount_; + + static const unsigned kInfinityQuantifier = ~0u; + + // For SearchWithAnchoring() + bool anchorBegin_; + bool anchorEnd_; +}; + +template +class GenericRegexSearch { +public: + typedef typename RegexType::EncodingType Encoding; + typedef typename Encoding::Ch Ch; + + GenericRegexSearch(const RegexType& regex, Allocator* allocator = 0) : + regex_(regex), allocator_(allocator), ownAllocator_(0), + state0_(allocator, 0), state1_(allocator, 0), stateSet_() + { + RAPIDJSON_ASSERT(regex_.IsValid()); + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + stateSet_ = static_cast(allocator_->Malloc(GetStateSetSize())); + state0_.template Reserve(regex_.stateCount_); + state1_.template Reserve(regex_.stateCount_); + } + + ~GenericRegexSearch() { + Allocator::Free(stateSet_); + RAPIDJSON_DELETE(ownAllocator_); + } + + template + bool Match(InputStream& is) { + return SearchWithAnchoring(is, true, true); + } + + bool Match(const Ch* s) { + GenericStringStream is(s); + return Match(is); + } + + template + bool Search(InputStream& is) { + return SearchWithAnchoring(is, regex_.anchorBegin_, regex_.anchorEnd_); + } + + bool Search(const Ch* s) { + GenericStringStream is(s); + return Search(is); + } + +private: + typedef typename RegexType::State State; + typedef typename RegexType::Range Range; + + template + bool SearchWithAnchoring(InputStream& is, bool anchorBegin, bool anchorEnd) { + DecodedStream ds(is); + + state0_.Clear(); + Stack *current = &state0_, *next = &state1_; + const size_t stateSetSize = GetStateSetSize(); + std::memset(stateSet_, 0, stateSetSize); + + bool matched = AddState(*current, regex_.root_); + unsigned codepoint; + while (!current->Empty() && (codepoint = ds.Take()) != 0) { + std::memset(stateSet_, 0, stateSetSize); + next->Clear(); + matched = false; + for (const SizeType* s = current->template Bottom(); s != current->template End(); ++s) { + const State& sr = regex_.GetState(*s); + if (sr.codepoint == codepoint || + sr.codepoint == RegexType::kAnyCharacterClass || + (sr.codepoint == RegexType::kRangeCharacterClass && MatchRange(sr.rangeStart, codepoint))) + { + matched = AddState(*next, sr.out) || matched; + if (!anchorEnd && matched) + return true; + } + if (!anchorBegin) + AddState(*next, regex_.root_); + } + internal::Swap(current, next); + } + + return matched; + } + + size_t GetStateSetSize() const { + return (regex_.stateCount_ + 31) / 32 * 4; + } + + // Return whether the added states is a match state + bool AddState(Stack& l, SizeType index) { + RAPIDJSON_ASSERT(index != kRegexInvalidState); + + const State& s = regex_.GetState(index); + if (s.out1 != kRegexInvalidState) { // Split + bool matched = AddState(l, s.out); + return AddState(l, s.out1) || matched; + } + else if (!(stateSet_[index >> 5] & (1u << (index & 31)))) { + stateSet_[index >> 5] |= (1u << (index & 31)); + *l.template PushUnsafe() = index; + } + return s.out == kRegexInvalidState; // by using PushUnsafe() above, we can ensure s is not validated due to reallocation. + } + + bool MatchRange(SizeType rangeIndex, unsigned codepoint) const { + bool yes = (regex_.GetRange(rangeIndex).start & RegexType::kRangeNegationFlag) == 0; + while (rangeIndex != kRegexInvalidRange) { + const Range& r = regex_.GetRange(rangeIndex); + if (codepoint >= (r.start & ~RegexType::kRangeNegationFlag) && codepoint <= r.end) + return yes; + rangeIndex = r.next; + } + return !yes; + } + + const RegexType& regex_; + Allocator* allocator_; + Allocator* ownAllocator_; + Stack state0_; + Stack state1_; + uint32_t* stateSet_; +}; + +typedef GenericRegex > Regex; +typedef GenericRegexSearch RegexSearch; + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#if defined(__clang__) || defined(_MSC_VER) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_INTERNAL_REGEX_H_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/stack.h b/external/rlottie/src/lottie/rapidjson/internal/stack.h new file mode 100644 index 000000000..45dca6a8b --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/stack.h @@ -0,0 +1,232 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_INTERNAL_STACK_H_ +#define RAPIDJSON_INTERNAL_STACK_H_ + +#include "../allocators.h" +#include "swap.h" +#include + +#if defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(c++98-compat) +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +/////////////////////////////////////////////////////////////////////////////// +// Stack + +//! A type-unsafe stack for storing different types of data. +/*! \tparam Allocator Allocator for allocating stack memory. +*/ +template +class Stack { +public: + // Optimization note: Do not allocate memory for stack_ in constructor. + // Do it lazily when first Push() -> Expand() -> Resize(). + Stack(Allocator* allocator, size_t stackCapacity) : allocator_(allocator), ownAllocator_(0), stack_(0), stackTop_(0), stackEnd_(0), initialCapacity_(stackCapacity) { + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + Stack(Stack&& rhs) + : allocator_(rhs.allocator_), + ownAllocator_(rhs.ownAllocator_), + stack_(rhs.stack_), + stackTop_(rhs.stackTop_), + stackEnd_(rhs.stackEnd_), + initialCapacity_(rhs.initialCapacity_) + { + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.stack_ = 0; + rhs.stackTop_ = 0; + rhs.stackEnd_ = 0; + rhs.initialCapacity_ = 0; + } +#endif + + ~Stack() { + Destroy(); + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + Stack& operator=(Stack&& rhs) { + if (&rhs != this) + { + Destroy(); + + allocator_ = rhs.allocator_; + ownAllocator_ = rhs.ownAllocator_; + stack_ = rhs.stack_; + stackTop_ = rhs.stackTop_; + stackEnd_ = rhs.stackEnd_; + initialCapacity_ = rhs.initialCapacity_; + + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.stack_ = 0; + rhs.stackTop_ = 0; + rhs.stackEnd_ = 0; + rhs.initialCapacity_ = 0; + } + return *this; + } +#endif + + void Swap(Stack& rhs) RAPIDJSON_NOEXCEPT { + internal::Swap(allocator_, rhs.allocator_); + internal::Swap(ownAllocator_, rhs.ownAllocator_); + internal::Swap(stack_, rhs.stack_); + internal::Swap(stackTop_, rhs.stackTop_); + internal::Swap(stackEnd_, rhs.stackEnd_); + internal::Swap(initialCapacity_, rhs.initialCapacity_); + } + + void Clear() { stackTop_ = stack_; } + + void ShrinkToFit() { + if (Empty()) { + // If the stack is empty, completely deallocate the memory. + Allocator::Free(stack_); // NOLINT (+clang-analyzer-unix.Malloc) + stack_ = 0; + stackTop_ = 0; + stackEnd_ = 0; + } + else + Resize(GetSize()); + } + + // Optimization note: try to minimize the size of this function for force inline. + // Expansion is run very infrequently, so it is moved to another (probably non-inline) function. + template + RAPIDJSON_FORCEINLINE void Reserve(size_t count = 1) { + // Expand the stack if needed + if (RAPIDJSON_UNLIKELY(static_cast(sizeof(T) * count) > (stackEnd_ - stackTop_))) + Expand(count); + } + + template + RAPIDJSON_FORCEINLINE T* Push(size_t count = 1) { + Reserve(count); + return PushUnsafe(count); + } + + template + RAPIDJSON_FORCEINLINE T* PushUnsafe(size_t count = 1) { + RAPIDJSON_ASSERT(stackTop_); + RAPIDJSON_ASSERT(static_cast(sizeof(T) * count) <= (stackEnd_ - stackTop_)); + T* ret = reinterpret_cast(stackTop_); + stackTop_ += sizeof(T) * count; + return ret; + } + + template + T* Pop(size_t count) { + RAPIDJSON_ASSERT(GetSize() >= count * sizeof(T)); + stackTop_ -= count * sizeof(T); + return reinterpret_cast(stackTop_); + } + + template + T* Top() { + RAPIDJSON_ASSERT(GetSize() >= sizeof(T)); + return reinterpret_cast(stackTop_ - sizeof(T)); + } + + template + const T* Top() const { + RAPIDJSON_ASSERT(GetSize() >= sizeof(T)); + return reinterpret_cast(stackTop_ - sizeof(T)); + } + + template + T* End() { return reinterpret_cast(stackTop_); } + + template + const T* End() const { return reinterpret_cast(stackTop_); } + + template + T* Bottom() { return reinterpret_cast(stack_); } + + template + const T* Bottom() const { return reinterpret_cast(stack_); } + + bool HasAllocator() const { + return allocator_ != 0; + } + + Allocator& GetAllocator() { + RAPIDJSON_ASSERT(allocator_); + return *allocator_; + } + + bool Empty() const { return stackTop_ == stack_; } + size_t GetSize() const { return static_cast(stackTop_ - stack_); } + size_t GetCapacity() const { return static_cast(stackEnd_ - stack_); } + +private: + template + void Expand(size_t count) { + // Only expand the capacity if the current stack exists. Otherwise just create a stack with initial capacity. + size_t newCapacity; + if (stack_ == 0) { + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + newCapacity = initialCapacity_; + } else { + newCapacity = GetCapacity(); + newCapacity += (newCapacity + 1) / 2; + } + size_t newSize = GetSize() + sizeof(T) * count; + if (newCapacity < newSize) + newCapacity = newSize; + + Resize(newCapacity); + } + + void Resize(size_t newCapacity) { + const size_t size = GetSize(); // Backup the current size + stack_ = static_cast(allocator_->Realloc(stack_, GetCapacity(), newCapacity)); + stackTop_ = stack_ + size; + stackEnd_ = stack_ + newCapacity; + } + + void Destroy() { + Allocator::Free(stack_); + RAPIDJSON_DELETE(ownAllocator_); // Only delete if it is owned by the stack + } + + // Prohibit copy constructor & assignment operator. + Stack(const Stack&); + Stack& operator=(const Stack&); + + Allocator* allocator_; + Allocator* ownAllocator_; + char *stack_; + char *stackTop_; + char *stackEnd_; + size_t initialCapacity_; +}; + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_STACK_H_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/strfunc.h b/external/rlottie/src/lottie/rapidjson/internal/strfunc.h new file mode 100644 index 000000000..226439a76 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/strfunc.h @@ -0,0 +1,69 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_INTERNAL_STRFUNC_H_ +#define RAPIDJSON_INTERNAL_STRFUNC_H_ + +#include "../stream.h" +#include + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +//! Custom strlen() which works on different character types. +/*! \tparam Ch Character type (e.g. char, wchar_t, short) + \param s Null-terminated input string. + \return Number of characters in the string. + \note This has the same semantics as strlen(), the return value is not number of Unicode codepoints. +*/ +template +inline SizeType StrLen(const Ch* s) { + RAPIDJSON_ASSERT(s != 0); + const Ch* p = s; + while (*p) ++p; + return SizeType(p - s); +} + +template <> +inline SizeType StrLen(const char* s) { + return SizeType(std::strlen(s)); +} + +template <> +inline SizeType StrLen(const wchar_t* s) { + return SizeType(std::wcslen(s)); +} + +//! Returns number of code points in a encoded string. +template +bool CountStringCodePoint(const typename Encoding::Ch* s, SizeType length, SizeType* outCount) { + RAPIDJSON_ASSERT(s != 0); + RAPIDJSON_ASSERT(outCount != 0); + GenericStringStream is(s); + const typename Encoding::Ch* end = s + length; + SizeType count = 0; + while (is.src_ < end) { + unsigned codepoint; + if (!Encoding::Decode(is, &codepoint)) + return false; + count++; + } + *outCount = count; + return true; +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_INTERNAL_STRFUNC_H_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/strtod.h b/external/rlottie/src/lottie/rapidjson/internal/strtod.h new file mode 100644 index 000000000..dfca22b65 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/strtod.h @@ -0,0 +1,290 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_STRTOD_ +#define RAPIDJSON_STRTOD_ + +#include "ieee754.h" +#include "biginteger.h" +#include "diyfp.h" +#include "pow10.h" +#include +#include + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +inline double FastPath(double significand, int exp) { + if (exp < -308) + return 0.0; + else if (exp >= 0) + return significand * internal::Pow10(exp); + else + return significand / internal::Pow10(-exp); +} + +inline double StrtodNormalPrecision(double d, int p) { + if (p < -308) { + // Prevent expSum < -308, making Pow10(p) = 0 + d = FastPath(d, -308); + d = FastPath(d, p + 308); + } + else + d = FastPath(d, p); + return d; +} + +template +inline T Min3(T a, T b, T c) { + T m = a; + if (m > b) m = b; + if (m > c) m = c; + return m; +} + +inline int CheckWithinHalfULP(double b, const BigInteger& d, int dExp) { + const Double db(b); + const uint64_t bInt = db.IntegerSignificand(); + const int bExp = db.IntegerExponent(); + const int hExp = bExp - 1; + + int dS_Exp2 = 0, dS_Exp5 = 0, bS_Exp2 = 0, bS_Exp5 = 0, hS_Exp2 = 0, hS_Exp5 = 0; + + // Adjust for decimal exponent + if (dExp >= 0) { + dS_Exp2 += dExp; + dS_Exp5 += dExp; + } + else { + bS_Exp2 -= dExp; + bS_Exp5 -= dExp; + hS_Exp2 -= dExp; + hS_Exp5 -= dExp; + } + + // Adjust for binary exponent + if (bExp >= 0) + bS_Exp2 += bExp; + else { + dS_Exp2 -= bExp; + hS_Exp2 -= bExp; + } + + // Adjust for half ulp exponent + if (hExp >= 0) + hS_Exp2 += hExp; + else { + dS_Exp2 -= hExp; + bS_Exp2 -= hExp; + } + + // Remove common power of two factor from all three scaled values + int common_Exp2 = Min3(dS_Exp2, bS_Exp2, hS_Exp2); + dS_Exp2 -= common_Exp2; + bS_Exp2 -= common_Exp2; + hS_Exp2 -= common_Exp2; + + BigInteger dS = d; + dS.MultiplyPow5(static_cast(dS_Exp5)) <<= static_cast(dS_Exp2); + + BigInteger bS(bInt); + bS.MultiplyPow5(static_cast(bS_Exp5)) <<= static_cast(bS_Exp2); + + BigInteger hS(1); + hS.MultiplyPow5(static_cast(hS_Exp5)) <<= static_cast(hS_Exp2); + + BigInteger delta(0); + dS.Difference(bS, &delta); + + return delta.Compare(hS); +} + +inline bool StrtodFast(double d, int p, double* result) { + // Use fast path for string-to-double conversion if possible + // see http://www.exploringbinary.com/fast-path-decimal-to-floating-point-conversion/ + if (p > 22 && p < 22 + 16) { + // Fast Path Cases In Disguise + d *= internal::Pow10(p - 22); + p = 22; + } + + if (p >= -22 && p <= 22 && d <= 9007199254740991.0) { // 2^53 - 1 + *result = FastPath(d, p); + return true; + } + else + return false; +} + +// Compute an approximation and see if it is within 1/2 ULP +inline bool StrtodDiyFp(const char* decimals, int dLen, int dExp, double* result) { + uint64_t significand = 0; + int i = 0; // 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999 + for (; i < dLen; i++) { + if (significand > RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) || + (significand == RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) && decimals[i] > '5')) + break; + significand = significand * 10u + static_cast(decimals[i] - '0'); + } + + if (i < dLen && decimals[i] >= '5') // Rounding + significand++; + + int remaining = dLen - i; + const int kUlpShift = 3; + const int kUlp = 1 << kUlpShift; + int64_t error = (remaining == 0) ? 0 : kUlp / 2; + + DiyFp v(significand, 0); + v = v.Normalize(); + error <<= -v.e; + + dExp += remaining; + + int actualExp; + DiyFp cachedPower = GetCachedPower10(dExp, &actualExp); + if (actualExp != dExp) { + static const DiyFp kPow10[] = { + DiyFp(RAPIDJSON_UINT64_C2(0xa0000000, 0x00000000), -60), // 10^1 + DiyFp(RAPIDJSON_UINT64_C2(0xc8000000, 0x00000000), -57), // 10^2 + DiyFp(RAPIDJSON_UINT64_C2(0xfa000000, 0x00000000), -54), // 10^3 + DiyFp(RAPIDJSON_UINT64_C2(0x9c400000, 0x00000000), -50), // 10^4 + DiyFp(RAPIDJSON_UINT64_C2(0xc3500000, 0x00000000), -47), // 10^5 + DiyFp(RAPIDJSON_UINT64_C2(0xf4240000, 0x00000000), -44), // 10^6 + DiyFp(RAPIDJSON_UINT64_C2(0x98968000, 0x00000000), -40) // 10^7 + }; + int adjustment = dExp - actualExp; + RAPIDJSON_ASSERT(adjustment >= 1 && adjustment < 8); + v = v * kPow10[adjustment - 1]; + if (dLen + adjustment > 19) // has more digits than decimal digits in 64-bit + error += kUlp / 2; + } + + v = v * cachedPower; + + error += kUlp + (error == 0 ? 0 : 1); + + const int oldExp = v.e; + v = v.Normalize(); + error <<= oldExp - v.e; + + const int effectiveSignificandSize = Double::EffectiveSignificandSize(64 + v.e); + int precisionSize = 64 - effectiveSignificandSize; + if (precisionSize + kUlpShift >= 64) { + int scaleExp = (precisionSize + kUlpShift) - 63; + v.f >>= scaleExp; + v.e += scaleExp; + error = (error >> scaleExp) + 1 + kUlp; + precisionSize -= scaleExp; + } + + DiyFp rounded(v.f >> precisionSize, v.e + precisionSize); + const uint64_t precisionBits = (v.f & ((uint64_t(1) << precisionSize) - 1)) * kUlp; + const uint64_t halfWay = (uint64_t(1) << (precisionSize - 1)) * kUlp; + if (precisionBits >= halfWay + static_cast(error)) { + rounded.f++; + if (rounded.f & (DiyFp::kDpHiddenBit << 1)) { // rounding overflows mantissa (issue #340) + rounded.f >>= 1; + rounded.e++; + } + } + + *result = rounded.ToDouble(); + + return halfWay - static_cast(error) >= precisionBits || precisionBits >= halfWay + static_cast(error); +} + +inline double StrtodBigInteger(double approx, const char* decimals, int dLen, int dExp) { + RAPIDJSON_ASSERT(dLen >= 0); + const BigInteger dInt(decimals, static_cast(dLen)); + Double a(approx); + int cmp = CheckWithinHalfULP(a.Value(), dInt, dExp); + if (cmp < 0) + return a.Value(); // within half ULP + else if (cmp == 0) { + // Round towards even + if (a.Significand() & 1) + return a.NextPositiveDouble(); + else + return a.Value(); + } + else // adjustment + return a.NextPositiveDouble(); +} + +inline double StrtodFullPrecision(double d, int p, const char* decimals, size_t length, size_t decimalPosition, int exp) { + RAPIDJSON_ASSERT(d >= 0.0); + RAPIDJSON_ASSERT(length >= 1); + + double result = 0.0; + if (StrtodFast(d, p, &result)) + return result; + + RAPIDJSON_ASSERT(length <= INT_MAX); + int dLen = static_cast(length); + + RAPIDJSON_ASSERT(length >= decimalPosition); + RAPIDJSON_ASSERT(length - decimalPosition <= INT_MAX); + int dExpAdjust = static_cast(length - decimalPosition); + + RAPIDJSON_ASSERT(exp >= INT_MIN + dExpAdjust); + int dExp = exp - dExpAdjust; + + // Make sure length+dExp does not overflow + RAPIDJSON_ASSERT(dExp <= INT_MAX - dLen); + + // Trim leading zeros + while (dLen > 0 && *decimals == '0') { + dLen--; + decimals++; + } + + // Trim trailing zeros + while (dLen > 0 && decimals[dLen - 1] == '0') { + dLen--; + dExp++; + } + + if (dLen == 0) { // Buffer only contains zeros. + return 0.0; + } + + // Trim right-most digits + const int kMaxDecimalDigit = 767 + 1; + if (dLen > kMaxDecimalDigit) { + dExp += dLen - kMaxDecimalDigit; + dLen = kMaxDecimalDigit; + } + + // If too small, underflow to zero. + // Any x <= 10^-324 is interpreted as zero. + if (dLen + dExp <= -324) + return 0.0; + + // If too large, overflow to infinity. + // Any x >= 10^309 is interpreted as +infinity. + if (dLen + dExp > 309) + return std::numeric_limits::infinity(); + + if (StrtodDiyFp(decimals, dLen, dExp, &result)) + return result; + + // Use approximation from StrtodDiyFp and make adjustment with BigInteger comparison + return StrtodBigInteger(result, decimals, dLen, dExp); +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_STRTOD_ diff --git a/external/rlottie/src/lottie/rapidjson/internal/swap.h b/external/rlottie/src/lottie/rapidjson/internal/swap.h new file mode 100644 index 000000000..666e49f97 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/internal/swap.h @@ -0,0 +1,46 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_INTERNAL_SWAP_H_ +#define RAPIDJSON_INTERNAL_SWAP_H_ + +#include "../rapidjson.h" + +#if defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(c++98-compat) +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +//! Custom swap() to avoid dependency on C++ header +/*! \tparam T Type of the arguments to swap, should be instantiated with primitive C++ types only. + \note This has the same semantics as std::swap(). +*/ +template +inline void Swap(T& a, T& b) RAPIDJSON_NOEXCEPT { + T tmp = a; + a = b; + b = tmp; +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_INTERNAL_SWAP_H_ diff --git a/external/rlottie/src/lottie/rapidjson/istreamwrapper.h b/external/rlottie/src/lottie/rapidjson/istreamwrapper.h new file mode 100644 index 000000000..c4950b9dc --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/istreamwrapper.h @@ -0,0 +1,128 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_ISTREAMWRAPPER_H_ +#define RAPIDJSON_ISTREAMWRAPPER_H_ + +#include "stream.h" +#include +#include + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4351) // new behavior: elements of array 'array' will be default initialized +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Wrapper of \c std::basic_istream into RapidJSON's Stream concept. +/*! + The classes can be wrapped including but not limited to: + + - \c std::istringstream + - \c std::stringstream + - \c std::wistringstream + - \c std::wstringstream + - \c std::ifstream + - \c std::fstream + - \c std::wifstream + - \c std::wfstream + + \tparam StreamType Class derived from \c std::basic_istream. +*/ + +template +class BasicIStreamWrapper { +public: + typedef typename StreamType::char_type Ch; + + //! Constructor. + /*! + \param stream stream opened for read. + */ + BasicIStreamWrapper(StreamType &stream) : stream_(stream), buffer_(peekBuffer_), bufferSize_(4), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) { + Read(); + } + + //! Constructor. + /*! + \param stream stream opened for read. + \param buffer user-supplied buffer. + \param bufferSize size of buffer in bytes. Must >=4 bytes. + */ + BasicIStreamWrapper(StreamType &stream, char* buffer, size_t bufferSize) : stream_(stream), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) { + RAPIDJSON_ASSERT(bufferSize >= 4); + Read(); + } + + Ch Peek() const { return *current_; } + Ch Take() { Ch c = *current_; Read(); return c; } + size_t Tell() const { return count_ + static_cast(current_ - buffer_); } + + // Not implemented + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + + // For encoding detection only. + const Ch* Peek4() const { + return (current_ + 4 - !eof_ <= bufferLast_) ? current_ : 0; + } + +private: + BasicIStreamWrapper(); + BasicIStreamWrapper(const BasicIStreamWrapper&); + BasicIStreamWrapper& operator=(const BasicIStreamWrapper&); + + void Read() { + if (current_ < bufferLast_) + ++current_; + else if (!eof_) { + count_ += readCount_; + readCount_ = bufferSize_; + bufferLast_ = buffer_ + readCount_ - 1; + current_ = buffer_; + + if (!stream_.read(buffer_, static_cast(bufferSize_))) { + readCount_ = static_cast(stream_.gcount()); + *(bufferLast_ = buffer_ + readCount_) = '\0'; + eof_ = true; + } + } + } + + StreamType &stream_; + Ch peekBuffer_[4], *buffer_; + size_t bufferSize_; + Ch *bufferLast_; + Ch *current_; + size_t readCount_; + size_t count_; //!< Number of characters read + bool eof_; +}; + +typedef BasicIStreamWrapper IStreamWrapper; +typedef BasicIStreamWrapper WIStreamWrapper; + +#if defined(__clang__) || defined(_MSC_VER) +RAPIDJSON_DIAG_POP +#endif + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_ISTREAMWRAPPER_H_ diff --git a/external/rlottie/src/lottie/rapidjson/memorybuffer.h b/external/rlottie/src/lottie/rapidjson/memorybuffer.h new file mode 100644 index 000000000..39bee1dec --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/memorybuffer.h @@ -0,0 +1,70 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_MEMORYBUFFER_H_ +#define RAPIDJSON_MEMORYBUFFER_H_ + +#include "stream.h" +#include "internal/stack.h" + +RAPIDJSON_NAMESPACE_BEGIN + +//! Represents an in-memory output byte stream. +/*! + This class is mainly for being wrapped by EncodedOutputStream or AutoUTFOutputStream. + + It is similar to FileWriteBuffer but the destination is an in-memory buffer instead of a file. + + Differences between MemoryBuffer and StringBuffer: + 1. StringBuffer has Encoding but MemoryBuffer is only a byte buffer. + 2. StringBuffer::GetString() returns a null-terminated string. MemoryBuffer::GetBuffer() returns a buffer without terminator. + + \tparam Allocator type for allocating memory buffer. + \note implements Stream concept +*/ +template +struct GenericMemoryBuffer { + typedef char Ch; // byte + + GenericMemoryBuffer(Allocator* allocator = 0, size_t capacity = kDefaultCapacity) : stack_(allocator, capacity) {} + + void Put(Ch c) { *stack_.template Push() = c; } + void Flush() {} + + void Clear() { stack_.Clear(); } + void ShrinkToFit() { stack_.ShrinkToFit(); } + Ch* Push(size_t count) { return stack_.template Push(count); } + void Pop(size_t count) { stack_.template Pop(count); } + + const Ch* GetBuffer() const { + return stack_.template Bottom(); + } + + size_t GetSize() const { return stack_.GetSize(); } + + static const size_t kDefaultCapacity = 256; + mutable internal::Stack stack_; +}; + +typedef GenericMemoryBuffer<> MemoryBuffer; + +//! Implement specialized version of PutN() with memset() for better performance. +template<> +inline void PutN(MemoryBuffer& memoryBuffer, char c, size_t n) { + std::memset(memoryBuffer.stack_.Push(n), c, n * sizeof(c)); +} + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_MEMORYBUFFER_H_ diff --git a/external/rlottie/src/lottie/rapidjson/memorystream.h b/external/rlottie/src/lottie/rapidjson/memorystream.h new file mode 100644 index 000000000..1d71d8a4f --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/memorystream.h @@ -0,0 +1,71 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_MEMORYSTREAM_H_ +#define RAPIDJSON_MEMORYSTREAM_H_ + +#include "stream.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(unreachable-code) +RAPIDJSON_DIAG_OFF(missing-noreturn) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Represents an in-memory input byte stream. +/*! + This class is mainly for being wrapped by EncodedInputStream or AutoUTFInputStream. + + It is similar to FileReadBuffer but the source is an in-memory buffer instead of a file. + + Differences between MemoryStream and StringStream: + 1. StringStream has encoding but MemoryStream is a byte stream. + 2. MemoryStream needs size of the source buffer and the buffer don't need to be null terminated. StringStream assume null-terminated string as source. + 3. MemoryStream supports Peek4() for encoding detection. StringStream is specified with an encoding so it should not have Peek4(). + \note implements Stream concept +*/ +struct MemoryStream { + typedef char Ch; // byte + + MemoryStream(const Ch *src, size_t size) : src_(src), begin_(src), end_(src + size), size_(size) {} + + Ch Peek() const { return RAPIDJSON_UNLIKELY(src_ == end_) ? '\0' : *src_; } + Ch Take() { return RAPIDJSON_UNLIKELY(src_ == end_) ? '\0' : *src_++; } + size_t Tell() const { return static_cast(src_ - begin_); } + + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + + // For encoding detection only. + const Ch* Peek4() const { + return Tell() + 4 <= size_ ? src_ : 0; + } + + const Ch* src_; //!< Current read position. + const Ch* begin_; //!< Original head of the string. + const Ch* end_; //!< End of stream. + size_t size_; //!< Size of the stream. +}; + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_MEMORYBUFFER_H_ diff --git a/external/rlottie/src/lottie/rapidjson/msinttypes/inttypes.h b/external/rlottie/src/lottie/rapidjson/msinttypes/inttypes.h new file mode 100644 index 000000000..18111286b --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/msinttypes/inttypes.h @@ -0,0 +1,316 @@ +// ISO C9x compliant inttypes.h for Microsoft Visual Studio +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 +// +// Copyright (c) 2006-2013 Alexander Chemeris +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the product nor the names of its contributors may +// be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +/////////////////////////////////////////////////////////////////////////////// + +// The above software in this distribution may have been modified by +// THL A29 Limited ("Tencent Modifications"). +// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited. + +#ifndef _MSC_VER // [ +#error "Use this header only with Microsoft Visual C++ compilers!" +#endif // _MSC_VER ] + +#ifndef _MSC_INTTYPES_H_ // [ +#define _MSC_INTTYPES_H_ + +#if _MSC_VER > 1000 +#pragma once +#endif + +#include "stdint.h" + +// miloyip: VC supports inttypes.h since VC2013 +#if _MSC_VER >= 1800 +#include +#else + +// 7.8 Format conversion of integer types + +typedef struct { + intmax_t quot; + intmax_t rem; +} imaxdiv_t; + +// 7.8.1 Macros for format specifiers + +#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See footnote 185 at page 198 + +// The fprintf macros for signed integers are: +#define PRId8 "d" +#define PRIi8 "i" +#define PRIdLEAST8 "d" +#define PRIiLEAST8 "i" +#define PRIdFAST8 "d" +#define PRIiFAST8 "i" + +#define PRId16 "hd" +#define PRIi16 "hi" +#define PRIdLEAST16 "hd" +#define PRIiLEAST16 "hi" +#define PRIdFAST16 "hd" +#define PRIiFAST16 "hi" + +#define PRId32 "I32d" +#define PRIi32 "I32i" +#define PRIdLEAST32 "I32d" +#define PRIiLEAST32 "I32i" +#define PRIdFAST32 "I32d" +#define PRIiFAST32 "I32i" + +#define PRId64 "I64d" +#define PRIi64 "I64i" +#define PRIdLEAST64 "I64d" +#define PRIiLEAST64 "I64i" +#define PRIdFAST64 "I64d" +#define PRIiFAST64 "I64i" + +#define PRIdMAX "I64d" +#define PRIiMAX "I64i" + +#define PRIdPTR "Id" +#define PRIiPTR "Ii" + +// The fprintf macros for unsigned integers are: +#define PRIo8 "o" +#define PRIu8 "u" +#define PRIx8 "x" +#define PRIX8 "X" +#define PRIoLEAST8 "o" +#define PRIuLEAST8 "u" +#define PRIxLEAST8 "x" +#define PRIXLEAST8 "X" +#define PRIoFAST8 "o" +#define PRIuFAST8 "u" +#define PRIxFAST8 "x" +#define PRIXFAST8 "X" + +#define PRIo16 "ho" +#define PRIu16 "hu" +#define PRIx16 "hx" +#define PRIX16 "hX" +#define PRIoLEAST16 "ho" +#define PRIuLEAST16 "hu" +#define PRIxLEAST16 "hx" +#define PRIXLEAST16 "hX" +#define PRIoFAST16 "ho" +#define PRIuFAST16 "hu" +#define PRIxFAST16 "hx" +#define PRIXFAST16 "hX" + +#define PRIo32 "I32o" +#define PRIu32 "I32u" +#define PRIx32 "I32x" +#define PRIX32 "I32X" +#define PRIoLEAST32 "I32o" +#define PRIuLEAST32 "I32u" +#define PRIxLEAST32 "I32x" +#define PRIXLEAST32 "I32X" +#define PRIoFAST32 "I32o" +#define PRIuFAST32 "I32u" +#define PRIxFAST32 "I32x" +#define PRIXFAST32 "I32X" + +#define PRIo64 "I64o" +#define PRIu64 "I64u" +#define PRIx64 "I64x" +#define PRIX64 "I64X" +#define PRIoLEAST64 "I64o" +#define PRIuLEAST64 "I64u" +#define PRIxLEAST64 "I64x" +#define PRIXLEAST64 "I64X" +#define PRIoFAST64 "I64o" +#define PRIuFAST64 "I64u" +#define PRIxFAST64 "I64x" +#define PRIXFAST64 "I64X" + +#define PRIoMAX "I64o" +#define PRIuMAX "I64u" +#define PRIxMAX "I64x" +#define PRIXMAX "I64X" + +#define PRIoPTR "Io" +#define PRIuPTR "Iu" +#define PRIxPTR "Ix" +#define PRIXPTR "IX" + +// The fscanf macros for signed integers are: +#define SCNd8 "d" +#define SCNi8 "i" +#define SCNdLEAST8 "d" +#define SCNiLEAST8 "i" +#define SCNdFAST8 "d" +#define SCNiFAST8 "i" + +#define SCNd16 "hd" +#define SCNi16 "hi" +#define SCNdLEAST16 "hd" +#define SCNiLEAST16 "hi" +#define SCNdFAST16 "hd" +#define SCNiFAST16 "hi" + +#define SCNd32 "ld" +#define SCNi32 "li" +#define SCNdLEAST32 "ld" +#define SCNiLEAST32 "li" +#define SCNdFAST32 "ld" +#define SCNiFAST32 "li" + +#define SCNd64 "I64d" +#define SCNi64 "I64i" +#define SCNdLEAST64 "I64d" +#define SCNiLEAST64 "I64i" +#define SCNdFAST64 "I64d" +#define SCNiFAST64 "I64i" + +#define SCNdMAX "I64d" +#define SCNiMAX "I64i" + +#ifdef _WIN64 // [ +# define SCNdPTR "I64d" +# define SCNiPTR "I64i" +#else // _WIN64 ][ +# define SCNdPTR "ld" +# define SCNiPTR "li" +#endif // _WIN64 ] + +// The fscanf macros for unsigned integers are: +#define SCNo8 "o" +#define SCNu8 "u" +#define SCNx8 "x" +#define SCNX8 "X" +#define SCNoLEAST8 "o" +#define SCNuLEAST8 "u" +#define SCNxLEAST8 "x" +#define SCNXLEAST8 "X" +#define SCNoFAST8 "o" +#define SCNuFAST8 "u" +#define SCNxFAST8 "x" +#define SCNXFAST8 "X" + +#define SCNo16 "ho" +#define SCNu16 "hu" +#define SCNx16 "hx" +#define SCNX16 "hX" +#define SCNoLEAST16 "ho" +#define SCNuLEAST16 "hu" +#define SCNxLEAST16 "hx" +#define SCNXLEAST16 "hX" +#define SCNoFAST16 "ho" +#define SCNuFAST16 "hu" +#define SCNxFAST16 "hx" +#define SCNXFAST16 "hX" + +#define SCNo32 "lo" +#define SCNu32 "lu" +#define SCNx32 "lx" +#define SCNX32 "lX" +#define SCNoLEAST32 "lo" +#define SCNuLEAST32 "lu" +#define SCNxLEAST32 "lx" +#define SCNXLEAST32 "lX" +#define SCNoFAST32 "lo" +#define SCNuFAST32 "lu" +#define SCNxFAST32 "lx" +#define SCNXFAST32 "lX" + +#define SCNo64 "I64o" +#define SCNu64 "I64u" +#define SCNx64 "I64x" +#define SCNX64 "I64X" +#define SCNoLEAST64 "I64o" +#define SCNuLEAST64 "I64u" +#define SCNxLEAST64 "I64x" +#define SCNXLEAST64 "I64X" +#define SCNoFAST64 "I64o" +#define SCNuFAST64 "I64u" +#define SCNxFAST64 "I64x" +#define SCNXFAST64 "I64X" + +#define SCNoMAX "I64o" +#define SCNuMAX "I64u" +#define SCNxMAX "I64x" +#define SCNXMAX "I64X" + +#ifdef _WIN64 // [ +# define SCNoPTR "I64o" +# define SCNuPTR "I64u" +# define SCNxPTR "I64x" +# define SCNXPTR "I64X" +#else // _WIN64 ][ +# define SCNoPTR "lo" +# define SCNuPTR "lu" +# define SCNxPTR "lx" +# define SCNXPTR "lX" +#endif // _WIN64 ] + +#endif // __STDC_FORMAT_MACROS ] + +// 7.8.2 Functions for greatest-width integer types + +// 7.8.2.1 The imaxabs function +#define imaxabs _abs64 + +// 7.8.2.2 The imaxdiv function + +// This is modified version of div() function from Microsoft's div.c found +// in %MSVC.NET%\crt\src\div.c +#ifdef STATIC_IMAXDIV // [ +static +#else // STATIC_IMAXDIV ][ +_inline +#endif // STATIC_IMAXDIV ] +imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) +{ + imaxdiv_t result; + + result.quot = numer / denom; + result.rem = numer % denom; + + if (numer < 0 && result.rem > 0) { + // did division wrong; must fix up + ++result.quot; + result.rem -= denom; + } + + return result; +} + +// 7.8.2.3 The strtoimax and strtoumax functions +#define strtoimax _strtoi64 +#define strtoumax _strtoui64 + +// 7.8.2.4 The wcstoimax and wcstoumax functions +#define wcstoimax _wcstoi64 +#define wcstoumax _wcstoui64 + +#endif // _MSC_VER >= 1800 + +#endif // _MSC_INTTYPES_H_ ] diff --git a/external/rlottie/src/lottie/rapidjson/msinttypes/stdint.h b/external/rlottie/src/lottie/rapidjson/msinttypes/stdint.h new file mode 100644 index 000000000..3d4477b9a --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/msinttypes/stdint.h @@ -0,0 +1,300 @@ +// ISO C9x compliant stdint.h for Microsoft Visual Studio +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 +// +// Copyright (c) 2006-2013 Alexander Chemeris +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the product nor the names of its contributors may +// be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +/////////////////////////////////////////////////////////////////////////////// + +// The above software in this distribution may have been modified by +// THL A29 Limited ("Tencent Modifications"). +// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited. + +#ifndef _MSC_VER // [ +#error "Use this header only with Microsoft Visual C++ compilers!" +#endif // _MSC_VER ] + +#ifndef _MSC_STDINT_H_ // [ +#define _MSC_STDINT_H_ + +#if _MSC_VER > 1000 +#pragma once +#endif + +// miloyip: Originally Visual Studio 2010 uses its own stdint.h. However it generates warning with INT64_C(), so change to use this file for vs2010. +#if _MSC_VER >= 1600 // [ +#include + +#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 + +#undef INT8_C +#undef INT16_C +#undef INT32_C +#undef INT64_C +#undef UINT8_C +#undef UINT16_C +#undef UINT32_C +#undef UINT64_C + +// 7.18.4.1 Macros for minimum-width integer constants + +#define INT8_C(val) val##i8 +#define INT16_C(val) val##i16 +#define INT32_C(val) val##i32 +#define INT64_C(val) val##i64 + +#define UINT8_C(val) val##ui8 +#define UINT16_C(val) val##ui16 +#define UINT32_C(val) val##ui32 +#define UINT64_C(val) val##ui64 + +// 7.18.4.2 Macros for greatest-width integer constants +// These #ifndef's are needed to prevent collisions with . +// Check out Issue 9 for the details. +#ifndef INTMAX_C // [ +# define INTMAX_C INT64_C +#endif // INTMAX_C ] +#ifndef UINTMAX_C // [ +# define UINTMAX_C UINT64_C +#endif // UINTMAX_C ] + +#endif // __STDC_CONSTANT_MACROS ] + +#else // ] _MSC_VER >= 1700 [ + +#include + +// For Visual Studio 6 in C++ mode and for many Visual Studio versions when +// compiling for ARM we have to wrap include with 'extern "C++" {}' +// or compiler would give many errors like this: +// error C2733: second C linkage of overloaded function 'wmemchr' not allowed +#if defined(__cplusplus) && !defined(_M_ARM) +extern "C" { +#endif +# include +#if defined(__cplusplus) && !defined(_M_ARM) +} +#endif + +// Define _W64 macros to mark types changing their size, like intptr_t. +#ifndef _W64 +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 +# define _W64 __w64 +# else +# define _W64 +# endif +#endif + + +// 7.18.1 Integer types + +// 7.18.1.1 Exact-width integer types + +// Visual Studio 6 and Embedded Visual C++ 4 doesn't +// realize that, e.g. char has the same size as __int8 +// so we give up on __intX for them. +#if (_MSC_VER < 1300) + typedef signed char int8_t; + typedef signed short int16_t; + typedef signed int int32_t; + typedef unsigned char uint8_t; + typedef unsigned short uint16_t; + typedef unsigned int uint32_t; +#else + typedef signed __int8 int8_t; + typedef signed __int16 int16_t; + typedef signed __int32 int32_t; + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; +#endif +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; + + +// 7.18.1.2 Minimum-width integer types +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +typedef int64_t int_least64_t; +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +typedef uint64_t uint_least64_t; + +// 7.18.1.3 Fastest minimum-width integer types +typedef int8_t int_fast8_t; +typedef int16_t int_fast16_t; +typedef int32_t int_fast32_t; +typedef int64_t int_fast64_t; +typedef uint8_t uint_fast8_t; +typedef uint16_t uint_fast16_t; +typedef uint32_t uint_fast32_t; +typedef uint64_t uint_fast64_t; + +// 7.18.1.4 Integer types capable of holding object pointers +#ifdef _WIN64 // [ + typedef signed __int64 intptr_t; + typedef unsigned __int64 uintptr_t; +#else // _WIN64 ][ + typedef _W64 signed int intptr_t; + typedef _W64 unsigned int uintptr_t; +#endif // _WIN64 ] + +// 7.18.1.5 Greatest-width integer types +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; + + +// 7.18.2 Limits of specified-width integer types + +#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 + +// 7.18.2.1 Limits of exact-width integer types +#define INT8_MIN ((int8_t)_I8_MIN) +#define INT8_MAX _I8_MAX +#define INT16_MIN ((int16_t)_I16_MIN) +#define INT16_MAX _I16_MAX +#define INT32_MIN ((int32_t)_I32_MIN) +#define INT32_MAX _I32_MAX +#define INT64_MIN ((int64_t)_I64_MIN) +#define INT64_MAX _I64_MAX +#define UINT8_MAX _UI8_MAX +#define UINT16_MAX _UI16_MAX +#define UINT32_MAX _UI32_MAX +#define UINT64_MAX _UI64_MAX + +// 7.18.2.2 Limits of minimum-width integer types +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MIN INT64_MIN +#define INT_LEAST64_MAX INT64_MAX +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX + +// 7.18.2.3 Limits of fastest minimum-width integer types +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST16_MIN INT16_MIN +#define INT_FAST16_MAX INT16_MAX +#define INT_FAST32_MIN INT32_MIN +#define INT_FAST32_MAX INT32_MAX +#define INT_FAST64_MIN INT64_MIN +#define INT_FAST64_MAX INT64_MAX +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST16_MAX UINT16_MAX +#define UINT_FAST32_MAX UINT32_MAX +#define UINT_FAST64_MAX UINT64_MAX + +// 7.18.2.4 Limits of integer types capable of holding object pointers +#ifdef _WIN64 // [ +# define INTPTR_MIN INT64_MIN +# define INTPTR_MAX INT64_MAX +# define UINTPTR_MAX UINT64_MAX +#else // _WIN64 ][ +# define INTPTR_MIN INT32_MIN +# define INTPTR_MAX INT32_MAX +# define UINTPTR_MAX UINT32_MAX +#endif // _WIN64 ] + +// 7.18.2.5 Limits of greatest-width integer types +#define INTMAX_MIN INT64_MIN +#define INTMAX_MAX INT64_MAX +#define UINTMAX_MAX UINT64_MAX + +// 7.18.3 Limits of other integer types + +#ifdef _WIN64 // [ +# define PTRDIFF_MIN _I64_MIN +# define PTRDIFF_MAX _I64_MAX +#else // _WIN64 ][ +# define PTRDIFF_MIN _I32_MIN +# define PTRDIFF_MAX _I32_MAX +#endif // _WIN64 ] + +#define SIG_ATOMIC_MIN INT_MIN +#define SIG_ATOMIC_MAX INT_MAX + +#ifndef SIZE_MAX // [ +# ifdef _WIN64 // [ +# define SIZE_MAX _UI64_MAX +# else // _WIN64 ][ +# define SIZE_MAX _UI32_MAX +# endif // _WIN64 ] +#endif // SIZE_MAX ] + +// WCHAR_MIN and WCHAR_MAX are also defined in +#ifndef WCHAR_MIN // [ +# define WCHAR_MIN 0 +#endif // WCHAR_MIN ] +#ifndef WCHAR_MAX // [ +# define WCHAR_MAX _UI16_MAX +#endif // WCHAR_MAX ] + +#define WINT_MIN 0 +#define WINT_MAX _UI16_MAX + +#endif // __STDC_LIMIT_MACROS ] + + +// 7.18.4 Limits of other integer types + +#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 + +// 7.18.4.1 Macros for minimum-width integer constants + +#define INT8_C(val) val##i8 +#define INT16_C(val) val##i16 +#define INT32_C(val) val##i32 +#define INT64_C(val) val##i64 + +#define UINT8_C(val) val##ui8 +#define UINT16_C(val) val##ui16 +#define UINT32_C(val) val##ui32 +#define UINT64_C(val) val##ui64 + +// 7.18.4.2 Macros for greatest-width integer constants +// These #ifndef's are needed to prevent collisions with . +// Check out Issue 9 for the details. +#ifndef INTMAX_C // [ +# define INTMAX_C INT64_C +#endif // INTMAX_C ] +#ifndef UINTMAX_C // [ +# define UINTMAX_C UINT64_C +#endif // UINTMAX_C ] + +#endif // __STDC_CONSTANT_MACROS ] + +#endif // _MSC_VER >= 1600 ] + +#endif // _MSC_STDINT_H_ ] diff --git a/external/rlottie/src/lottie/rapidjson/ostreamwrapper.h b/external/rlottie/src/lottie/rapidjson/ostreamwrapper.h new file mode 100644 index 000000000..6f4667c08 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/ostreamwrapper.h @@ -0,0 +1,81 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_OSTREAMWRAPPER_H_ +#define RAPIDJSON_OSTREAMWRAPPER_H_ + +#include "stream.h" +#include + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Wrapper of \c std::basic_ostream into RapidJSON's Stream concept. +/*! + The classes can be wrapped including but not limited to: + + - \c std::ostringstream + - \c std::stringstream + - \c std::wpstringstream + - \c std::wstringstream + - \c std::ifstream + - \c std::fstream + - \c std::wofstream + - \c std::wfstream + + \tparam StreamType Class derived from \c std::basic_ostream. +*/ + +template +class BasicOStreamWrapper { +public: + typedef typename StreamType::char_type Ch; + BasicOStreamWrapper(StreamType& stream) : stream_(stream) {} + + void Put(Ch c) { + stream_.put(c); + } + + void Flush() { + stream_.flush(); + } + + // Not implemented + char Peek() const { RAPIDJSON_ASSERT(false); return 0; } + char Take() { RAPIDJSON_ASSERT(false); return 0; } + size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; } + char* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(char*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + BasicOStreamWrapper(const BasicOStreamWrapper&); + BasicOStreamWrapper& operator=(const BasicOStreamWrapper&); + + StreamType& stream_; +}; + +typedef BasicOStreamWrapper OStreamWrapper; +typedef BasicOStreamWrapper WOStreamWrapper; + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_OSTREAMWRAPPER_H_ diff --git a/external/rlottie/src/lottie/rapidjson/pointer.h b/external/rlottie/src/lottie/rapidjson/pointer.h new file mode 100644 index 000000000..b8143b638 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/pointer.h @@ -0,0 +1,1415 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_POINTER_H_ +#define RAPIDJSON_POINTER_H_ + +#include "document.h" +#include "internal/itoa.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(switch-enum) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +static const SizeType kPointerInvalidIndex = ~SizeType(0); //!< Represents an invalid index in GenericPointer::Token + +//! Error code of parsing. +/*! \ingroup RAPIDJSON_ERRORS + \see GenericPointer::GenericPointer, GenericPointer::GetParseErrorCode +*/ +enum PointerParseErrorCode { + kPointerParseErrorNone = 0, //!< The parse is successful + + kPointerParseErrorTokenMustBeginWithSolidus, //!< A token must begin with a '/' + kPointerParseErrorInvalidEscape, //!< Invalid escape + kPointerParseErrorInvalidPercentEncoding, //!< Invalid percent encoding in URI fragment + kPointerParseErrorCharacterMustPercentEncode //!< A character must percent encoded in URI fragment +}; + +/////////////////////////////////////////////////////////////////////////////// +// GenericPointer + +//! Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. +/*! + This class implements RFC 6901 "JavaScript Object Notation (JSON) Pointer" + (https://tools.ietf.org/html/rfc6901). + + A JSON pointer is for identifying a specific value in a JSON document + (GenericDocument). It can simplify coding of DOM tree manipulation, because it + can access multiple-level depth of DOM tree with single API call. + + After it parses a string representation (e.g. "/foo/0" or URI fragment + representation (e.g. "#/foo/0") into its internal representation (tokens), + it can be used to resolve a specific value in multiple documents, or sub-tree + of documents. + + Contrary to GenericValue, Pointer can be copy constructed and copy assigned. + Apart from assignment, a Pointer cannot be modified after construction. + + Although Pointer is very convenient, please aware that constructing Pointer + involves parsing and dynamic memory allocation. A special constructor with user- + supplied tokens eliminates these. + + GenericPointer depends on GenericDocument and GenericValue. + + \tparam ValueType The value type of the DOM tree. E.g. GenericValue > + \tparam Allocator The allocator type for allocating memory for internal representation. + + \note GenericPointer uses same encoding of ValueType. + However, Allocator of GenericPointer is independent of Allocator of Value. +*/ +template +class GenericPointer { +public: + typedef typename ValueType::EncodingType EncodingType; //!< Encoding type from Value + typedef typename ValueType::Ch Ch; //!< Character type from Value + + //! A token is the basic units of internal representation. + /*! + A JSON pointer string representation "/foo/123" is parsed to two tokens: + "foo" and 123. 123 will be represented in both numeric form and string form. + They are resolved according to the actual value type (object or array). + + For token that are not numbers, or the numeric value is out of bound + (greater than limits of SizeType), they are only treated as string form + (i.e. the token's index will be equal to kPointerInvalidIndex). + + This struct is public so that user can create a Pointer without parsing and + allocation, using a special constructor. + */ + struct Token { + const Ch* name; //!< Name of the token. It has null character at the end but it can contain null character. + SizeType length; //!< Length of the name. + SizeType index; //!< A valid array index, if it is not equal to kPointerInvalidIndex. + }; + + //!@name Constructors and destructor. + //@{ + + //! Default constructor. + GenericPointer(Allocator* allocator = 0) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) {} + + //! Constructor that parses a string or URI fragment representation. + /*! + \param source A null-terminated, string or URI fragment representation of JSON pointer. + \param allocator User supplied allocator for this pointer. If no allocator is provided, it creates a self-owned one. + */ + explicit GenericPointer(const Ch* source, Allocator* allocator = 0) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + Parse(source, internal::StrLen(source)); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Constructor that parses a string or URI fragment representation. + /*! + \param source A string or URI fragment representation of JSON pointer. + \param allocator User supplied allocator for this pointer. If no allocator is provided, it creates a self-owned one. + \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. + */ + explicit GenericPointer(const std::basic_string& source, Allocator* allocator = 0) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + Parse(source.c_str(), source.size()); + } +#endif + + //! Constructor that parses a string or URI fragment representation, with length of the source string. + /*! + \param source A string or URI fragment representation of JSON pointer. + \param length Length of source. + \param allocator User supplied allocator for this pointer. If no allocator is provided, it creates a self-owned one. + \note Slightly faster than the overload without length. + */ + GenericPointer(const Ch* source, size_t length, Allocator* allocator = 0) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + Parse(source, length); + } + + //! Constructor with user-supplied tokens. + /*! + This constructor let user supplies const array of tokens. + This prevents the parsing process and eliminates allocation. + This is preferred for memory constrained environments. + + \param tokens An constant array of tokens representing the JSON pointer. + \param tokenCount Number of tokens. + + \b Example + \code + #define NAME(s) { s, sizeof(s) / sizeof(s[0]) - 1, kPointerInvalidIndex } + #define INDEX(i) { #i, sizeof(#i) - 1, i } + + static const Pointer::Token kTokens[] = { NAME("foo"), INDEX(123) }; + static const Pointer p(kTokens, sizeof(kTokens) / sizeof(kTokens[0])); + // Equivalent to static const Pointer p("/foo/123"); + + #undef NAME + #undef INDEX + \endcode + */ + GenericPointer(const Token* tokens, size_t tokenCount) : allocator_(), ownAllocator_(), nameBuffer_(), tokens_(const_cast(tokens)), tokenCount_(tokenCount), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) {} + + //! Copy constructor. + GenericPointer(const GenericPointer& rhs) : allocator_(rhs.allocator_), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + *this = rhs; + } + + //! Copy constructor. + GenericPointer(const GenericPointer& rhs, Allocator* allocator) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + *this = rhs; + } + + //! Destructor. + ~GenericPointer() { + if (nameBuffer_) // If user-supplied tokens constructor is used, nameBuffer_ is nullptr and tokens_ are not deallocated. + Allocator::Free(tokens_); + RAPIDJSON_DELETE(ownAllocator_); + } + + //! Assignment operator. + GenericPointer& operator=(const GenericPointer& rhs) { + if (this != &rhs) { + // Do not delete ownAllcator + if (nameBuffer_) + Allocator::Free(tokens_); + + tokenCount_ = rhs.tokenCount_; + parseErrorOffset_ = rhs.parseErrorOffset_; + parseErrorCode_ = rhs.parseErrorCode_; + + if (rhs.nameBuffer_) + CopyFromRaw(rhs); // Normally parsed tokens. + else { + tokens_ = rhs.tokens_; // User supplied const tokens. + nameBuffer_ = 0; + } + } + return *this; + } + + //! Swap the content of this pointer with an other. + /*! + \param other The pointer to swap with. + \note Constant complexity. + */ + GenericPointer& Swap(GenericPointer& other) RAPIDJSON_NOEXCEPT { + internal::Swap(allocator_, other.allocator_); + internal::Swap(ownAllocator_, other.ownAllocator_); + internal::Swap(nameBuffer_, other.nameBuffer_); + internal::Swap(tokens_, other.tokens_); + internal::Swap(tokenCount_, other.tokenCount_); + internal::Swap(parseErrorOffset_, other.parseErrorOffset_); + internal::Swap(parseErrorCode_, other.parseErrorCode_); + return *this; + } + + //! free-standing swap function helper + /*! + Helper function to enable support for common swap implementation pattern based on \c std::swap: + \code + void swap(MyClass& a, MyClass& b) { + using std::swap; + swap(a.pointer, b.pointer); + // ... + } + \endcode + \see Swap() + */ + friend inline void swap(GenericPointer& a, GenericPointer& b) RAPIDJSON_NOEXCEPT { a.Swap(b); } + + //@} + + //!@name Append token + //@{ + + //! Append a token and return a new Pointer + /*! + \param token Token to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(const Token& token, Allocator* allocator = 0) const { + GenericPointer r; + r.allocator_ = allocator; + Ch *p = r.CopyFromRaw(*this, 1, token.length + 1); + std::memcpy(p, token.name, (token.length + 1) * sizeof(Ch)); + r.tokens_[tokenCount_].name = p; + r.tokens_[tokenCount_].length = token.length; + r.tokens_[tokenCount_].index = token.index; + return r; + } + + //! Append a name token with length, and return a new Pointer + /*! + \param name Name to be appended. + \param length Length of name. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(const Ch* name, SizeType length, Allocator* allocator = 0) const { + Token token = { name, length, kPointerInvalidIndex }; + return Append(token, allocator); + } + + //! Append a name token without length, and return a new Pointer + /*! + \param name Name (const Ch*) to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::NotExpr::Type, Ch> >), (GenericPointer)) + Append(T* name, Allocator* allocator = 0) const { + return Append(name, internal::StrLen(name), allocator); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Append a name token, and return a new Pointer + /*! + \param name Name to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(const std::basic_string& name, Allocator* allocator = 0) const { + return Append(name.c_str(), static_cast(name.size()), allocator); + } +#endif + + //! Append a index token, and return a new Pointer + /*! + \param index Index to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(SizeType index, Allocator* allocator = 0) const { + char buffer[21]; + char* end = sizeof(SizeType) == 4 ? internal::u32toa(index, buffer) : internal::u64toa(index, buffer); + SizeType length = static_cast(end - buffer); + buffer[length] = '\0'; + + if (sizeof(Ch) == 1) { + Token token = { reinterpret_cast(buffer), length, index }; + return Append(token, allocator); + } + else { + Ch name[21]; + for (size_t i = 0; i <= length; i++) + name[i] = static_cast(buffer[i]); + Token token = { name, length, index }; + return Append(token, allocator); + } + } + + //! Append a token by value, and return a new Pointer + /*! + \param token token to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(const ValueType& token, Allocator* allocator = 0) const { + if (token.IsString()) + return Append(token.GetString(), token.GetStringLength(), allocator); + else { + RAPIDJSON_ASSERT(token.IsUint64()); + RAPIDJSON_ASSERT(token.GetUint64() <= SizeType(~0)); + return Append(static_cast(token.GetUint64()), allocator); + } + } + + //!@name Handling Parse Error + //@{ + + //! Check whether this is a valid pointer. + bool IsValid() const { return parseErrorCode_ == kPointerParseErrorNone; } + + //! Get the parsing error offset in code unit. + size_t GetParseErrorOffset() const { return parseErrorOffset_; } + + //! Get the parsing error code. + PointerParseErrorCode GetParseErrorCode() const { return parseErrorCode_; } + + //@} + + //! Get the allocator of this pointer. + Allocator& GetAllocator() { return *allocator_; } + + //!@name Tokens + //@{ + + //! Get the token array (const version only). + const Token* GetTokens() const { return tokens_; } + + //! Get the number of tokens. + size_t GetTokenCount() const { return tokenCount_; } + + //@} + + //!@name Equality/inequality operators + //@{ + + //! Equality operator. + /*! + \note When any pointers are invalid, always returns false. + */ + bool operator==(const GenericPointer& rhs) const { + if (!IsValid() || !rhs.IsValid() || tokenCount_ != rhs.tokenCount_) + return false; + + for (size_t i = 0; i < tokenCount_; i++) { + if (tokens_[i].index != rhs.tokens_[i].index || + tokens_[i].length != rhs.tokens_[i].length || + (tokens_[i].length != 0 && std::memcmp(tokens_[i].name, rhs.tokens_[i].name, sizeof(Ch)* tokens_[i].length) != 0)) + { + return false; + } + } + + return true; + } + + //! Inequality operator. + /*! + \note When any pointers are invalid, always returns true. + */ + bool operator!=(const GenericPointer& rhs) const { return !(*this == rhs); } + + //! Less than operator. + /*! + \note Invalid pointers are always greater than valid ones. + */ + bool operator<(const GenericPointer& rhs) const { + if (!IsValid()) + return false; + if (!rhs.IsValid()) + return true; + + if (tokenCount_ != rhs.tokenCount_) + return tokenCount_ < rhs.tokenCount_; + + for (size_t i = 0; i < tokenCount_; i++) { + if (tokens_[i].index != rhs.tokens_[i].index) + return tokens_[i].index < rhs.tokens_[i].index; + + if (tokens_[i].length != rhs.tokens_[i].length) + return tokens_[i].length < rhs.tokens_[i].length; + + if (int cmp = std::memcmp(tokens_[i].name, rhs.tokens_[i].name, sizeof(Ch) * tokens_[i].length)) + return cmp < 0; + } + + return false; + } + + //@} + + //!@name Stringify + //@{ + + //! Stringify the pointer into string representation. + /*! + \tparam OutputStream Type of output stream. + \param os The output stream. + */ + template + bool Stringify(OutputStream& os) const { + return Stringify(os); + } + + //! Stringify the pointer into URI fragment representation. + /*! + \tparam OutputStream Type of output stream. + \param os The output stream. + */ + template + bool StringifyUriFragment(OutputStream& os) const { + return Stringify(os); + } + + //@} + + //!@name Create value + //@{ + + //! Create a value in a subtree. + /*! + If the value is not exist, it creates all parent values and a JSON Null value. + So it always succeed and return the newly created or existing value. + + Remind that it may change types of parents according to tokens, so it + potentially removes previously stored values. For example, if a document + was an array, and "/foo" is used to create a value, then the document + will be changed to an object, and all existing array elements are lost. + + \param root Root value of a DOM subtree to be resolved. It can be any value other than document root. + \param allocator Allocator for creating the values if the specified value or its parents are not exist. + \param alreadyExist If non-null, it stores whether the resolved value is already exist. + \return The resolved newly created (a JSON Null value), or already exists value. + */ + ValueType& Create(ValueType& root, typename ValueType::AllocatorType& allocator, bool* alreadyExist = 0) const { + RAPIDJSON_ASSERT(IsValid()); + ValueType* v = &root; + bool exist = true; + for (const Token *t = tokens_; t != tokens_ + tokenCount_; ++t) { + if (v->IsArray() && t->name[0] == '-' && t->length == 1) { + v->PushBack(ValueType().Move(), allocator); + v = &((*v)[v->Size() - 1]); + exist = false; + } + else { + if (t->index == kPointerInvalidIndex) { // must be object name + if (!v->IsObject()) + v->SetObject(); // Change to Object + } + else { // object name or array index + if (!v->IsArray() && !v->IsObject()) + v->SetArray(); // Change to Array + } + + if (v->IsArray()) { + if (t->index >= v->Size()) { + v->Reserve(t->index + 1, allocator); + while (t->index >= v->Size()) + v->PushBack(ValueType().Move(), allocator); + exist = false; + } + v = &((*v)[t->index]); + } + else { + typename ValueType::MemberIterator m = v->FindMember(GenericValue(GenericStringRef(t->name, t->length))); + if (m == v->MemberEnd()) { + v->AddMember(ValueType(t->name, t->length, allocator).Move(), ValueType().Move(), allocator); + m = v->MemberEnd(); + v = &(--m)->value; // Assumes AddMember() appends at the end + exist = false; + } + else + v = &m->value; + } + } + } + + if (alreadyExist) + *alreadyExist = exist; + + return *v; + } + + //! Creates a value in a document. + /*! + \param document A document to be resolved. + \param alreadyExist If non-null, it stores whether the resolved value is already exist. + \return The resolved newly created, or already exists value. + */ + template + ValueType& Create(GenericDocument& document, bool* alreadyExist = 0) const { + return Create(document, document.GetAllocator(), alreadyExist); + } + + //@} + + //!@name Query value + //@{ + + //! Query a value in a subtree. + /*! + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \param unresolvedTokenIndex If the pointer cannot resolve a token in the pointer, this parameter can obtain the index of unresolved token. + \return Pointer to the value if it can be resolved. Otherwise null. + + \note + There are only 3 situations when a value cannot be resolved: + 1. A value in the path is not an array nor object. + 2. An object value does not contain the token. + 3. A token is out of range of an array value. + + Use unresolvedTokenIndex to retrieve the token index. + */ + ValueType* Get(ValueType& root, size_t* unresolvedTokenIndex = 0) const { + RAPIDJSON_ASSERT(IsValid()); + ValueType* v = &root; + for (const Token *t = tokens_; t != tokens_ + tokenCount_; ++t) { + switch (v->GetType()) { + case kObjectType: + { + typename ValueType::MemberIterator m = v->FindMember(GenericValue(GenericStringRef(t->name, t->length))); + if (m == v->MemberEnd()) + break; + v = &m->value; + } + continue; + case kArrayType: + if (t->index == kPointerInvalidIndex || t->index >= v->Size()) + break; + v = &((*v)[t->index]); + continue; + default: + break; + } + + // Error: unresolved token + if (unresolvedTokenIndex) + *unresolvedTokenIndex = static_cast(t - tokens_); + return 0; + } + return v; + } + + //! Query a const value in a const subtree. + /*! + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \return Pointer to the value if it can be resolved. Otherwise null. + */ + const ValueType* Get(const ValueType& root, size_t* unresolvedTokenIndex = 0) const { + return Get(const_cast(root), unresolvedTokenIndex); + } + + //@} + + //!@name Query a value with default + //@{ + + //! Query a value in a subtree with default value. + /*! + Similar to Get(), but if the specified value do not exists, it creates all parents and clone the default value. + So that this function always succeed. + + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \param defaultValue Default value to be cloned if the value was not exists. + \param allocator Allocator for creating the values if the specified value or its parents are not exist. + \see Create() + */ + ValueType& GetWithDefault(ValueType& root, const ValueType& defaultValue, typename ValueType::AllocatorType& allocator) const { + bool alreadyExist; + ValueType& v = Create(root, allocator, &alreadyExist); + return alreadyExist ? v : v.CopyFrom(defaultValue, allocator); + } + + //! Query a value in a subtree with default null-terminated string. + ValueType& GetWithDefault(ValueType& root, const Ch* defaultValue, typename ValueType::AllocatorType& allocator) const { + bool alreadyExist; + ValueType& v = Create(root, allocator, &alreadyExist); + return alreadyExist ? v : v.SetString(defaultValue, allocator); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Query a value in a subtree with default std::basic_string. + ValueType& GetWithDefault(ValueType& root, const std::basic_string& defaultValue, typename ValueType::AllocatorType& allocator) const { + bool alreadyExist; + ValueType& v = Create(root, allocator, &alreadyExist); + return alreadyExist ? v : v.SetString(defaultValue, allocator); + } +#endif + + //! Query a value in a subtree with default primitive value. + /*! + \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c bool + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) + GetWithDefault(ValueType& root, T defaultValue, typename ValueType::AllocatorType& allocator) const { + return GetWithDefault(root, ValueType(defaultValue).Move(), allocator); + } + + //! Query a value in a document with default value. + template + ValueType& GetWithDefault(GenericDocument& document, const ValueType& defaultValue) const { + return GetWithDefault(document, defaultValue, document.GetAllocator()); + } + + //! Query a value in a document with default null-terminated string. + template + ValueType& GetWithDefault(GenericDocument& document, const Ch* defaultValue) const { + return GetWithDefault(document, defaultValue, document.GetAllocator()); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Query a value in a document with default std::basic_string. + template + ValueType& GetWithDefault(GenericDocument& document, const std::basic_string& defaultValue) const { + return GetWithDefault(document, defaultValue, document.GetAllocator()); + } +#endif + + //! Query a value in a document with default primitive value. + /*! + \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c bool + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) + GetWithDefault(GenericDocument& document, T defaultValue) const { + return GetWithDefault(document, defaultValue, document.GetAllocator()); + } + + //@} + + //!@name Set a value + //@{ + + //! Set a value in a subtree, with move semantics. + /*! + It creates all parents if they are not exist or types are different to the tokens. + So this function always succeeds but potentially remove existing values. + + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \param value Value to be set. + \param allocator Allocator for creating the values if the specified value or its parents are not exist. + \see Create() + */ + ValueType& Set(ValueType& root, ValueType& value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator) = value; + } + + //! Set a value in a subtree, with copy semantics. + ValueType& Set(ValueType& root, const ValueType& value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator).CopyFrom(value, allocator); + } + + //! Set a null-terminated string in a subtree. + ValueType& Set(ValueType& root, const Ch* value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator) = ValueType(value, allocator).Move(); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Set a std::basic_string in a subtree. + ValueType& Set(ValueType& root, const std::basic_string& value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator) = ValueType(value, allocator).Move(); + } +#endif + + //! Set a primitive value in a subtree. + /*! + \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c bool + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) + Set(ValueType& root, T value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator) = ValueType(value).Move(); + } + + //! Set a value in a document, with move semantics. + template + ValueType& Set(GenericDocument& document, ValueType& value) const { + return Create(document) = value; + } + + //! Set a value in a document, with copy semantics. + template + ValueType& Set(GenericDocument& document, const ValueType& value) const { + return Create(document).CopyFrom(value, document.GetAllocator()); + } + + //! Set a null-terminated string in a document. + template + ValueType& Set(GenericDocument& document, const Ch* value) const { + return Create(document) = ValueType(value, document.GetAllocator()).Move(); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Sets a std::basic_string in a document. + template + ValueType& Set(GenericDocument& document, const std::basic_string& value) const { + return Create(document) = ValueType(value, document.GetAllocator()).Move(); + } +#endif + + //! Set a primitive value in a document. + /*! + \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c bool + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) + Set(GenericDocument& document, T value) const { + return Create(document) = value; + } + + //@} + + //!@name Swap a value + //@{ + + //! Swap a value with a value in a subtree. + /*! + It creates all parents if they are not exist or types are different to the tokens. + So this function always succeeds but potentially remove existing values. + + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \param value Value to be swapped. + \param allocator Allocator for creating the values if the specified value or its parents are not exist. + \see Create() + */ + ValueType& Swap(ValueType& root, ValueType& value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator).Swap(value); + } + + //! Swap a value with a value in a document. + template + ValueType& Swap(GenericDocument& document, ValueType& value) const { + return Create(document).Swap(value); + } + + //@} + + //! Erase a value in a subtree. + /*! + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \return Whether the resolved value is found and erased. + + \note Erasing with an empty pointer \c Pointer(""), i.e. the root, always fail and return false. + */ + bool Erase(ValueType& root) const { + RAPIDJSON_ASSERT(IsValid()); + if (tokenCount_ == 0) // Cannot erase the root + return false; + + ValueType* v = &root; + const Token* last = tokens_ + (tokenCount_ - 1); + for (const Token *t = tokens_; t != last; ++t) { + switch (v->GetType()) { + case kObjectType: + { + typename ValueType::MemberIterator m = v->FindMember(GenericValue(GenericStringRef(t->name, t->length))); + if (m == v->MemberEnd()) + return false; + v = &m->value; + } + break; + case kArrayType: + if (t->index == kPointerInvalidIndex || t->index >= v->Size()) + return false; + v = &((*v)[t->index]); + break; + default: + return false; + } + } + + switch (v->GetType()) { + case kObjectType: + return v->EraseMember(GenericStringRef(last->name, last->length)); + case kArrayType: + if (last->index == kPointerInvalidIndex || last->index >= v->Size()) + return false; + v->Erase(v->Begin() + last->index); + return true; + default: + return false; + } + } + +private: + //! Clone the content from rhs to this. + /*! + \param rhs Source pointer. + \param extraToken Extra tokens to be allocated. + \param extraNameBufferSize Extra name buffer size (in number of Ch) to be allocated. + \return Start of non-occupied name buffer, for storing extra names. + */ + Ch* CopyFromRaw(const GenericPointer& rhs, size_t extraToken = 0, size_t extraNameBufferSize = 0) { + if (!allocator_) // allocator is independently owned. + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + + size_t nameBufferSize = rhs.tokenCount_; // null terminators for tokens + for (Token *t = rhs.tokens_; t != rhs.tokens_ + rhs.tokenCount_; ++t) + nameBufferSize += t->length; + + tokenCount_ = rhs.tokenCount_ + extraToken; + tokens_ = static_cast(allocator_->Malloc(tokenCount_ * sizeof(Token) + (nameBufferSize + extraNameBufferSize) * sizeof(Ch))); + nameBuffer_ = reinterpret_cast(tokens_ + tokenCount_); + if (rhs.tokenCount_ > 0) { + std::memcpy(tokens_, rhs.tokens_, rhs.tokenCount_ * sizeof(Token)); + } + if (nameBufferSize > 0) { + std::memcpy(nameBuffer_, rhs.nameBuffer_, nameBufferSize * sizeof(Ch)); + } + + // Adjust pointers to name buffer + std::ptrdiff_t diff = nameBuffer_ - rhs.nameBuffer_; + for (Token *t = tokens_; t != tokens_ + rhs.tokenCount_; ++t) + t->name += diff; + + return nameBuffer_ + nameBufferSize; + } + + //! Check whether a character should be percent-encoded. + /*! + According to RFC 3986 2.3 Unreserved Characters. + \param c The character (code unit) to be tested. + */ + bool NeedPercentEncode(Ch c) const { + return !((c >= '0' && c <= '9') || (c >= 'A' && c <='Z') || (c >= 'a' && c <= 'z') || c == '-' || c == '.' || c == '_' || c =='~'); + } + + //! Parse a JSON String or its URI fragment representation into tokens. +#ifndef __clang__ // -Wdocumentation + /*! + \param source Either a JSON Pointer string, or its URI fragment representation. Not need to be null terminated. + \param length Length of the source string. + \note Source cannot be JSON String Representation of JSON Pointer, e.g. In "/\u0000", \u0000 will not be unescaped. + */ +#endif + void Parse(const Ch* source, size_t length) { + RAPIDJSON_ASSERT(source != NULL); + RAPIDJSON_ASSERT(nameBuffer_ == 0); + RAPIDJSON_ASSERT(tokens_ == 0); + + // Create own allocator if user did not supply. + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + + // Count number of '/' as tokenCount + tokenCount_ = 0; + for (const Ch* s = source; s != source + length; s++) + if (*s == '/') + tokenCount_++; + + Token* token = tokens_ = static_cast(allocator_->Malloc(tokenCount_ * sizeof(Token) + length * sizeof(Ch))); + Ch* name = nameBuffer_ = reinterpret_cast(tokens_ + tokenCount_); + size_t i = 0; + + // Detect if it is a URI fragment + bool uriFragment = false; + if (source[i] == '#') { + uriFragment = true; + i++; + } + + if (i != length && source[i] != '/') { + parseErrorCode_ = kPointerParseErrorTokenMustBeginWithSolidus; + goto error; + } + + while (i < length) { + RAPIDJSON_ASSERT(source[i] == '/'); + i++; // consumes '/' + + token->name = name; + bool isNumber = true; + + while (i < length && source[i] != '/') { + Ch c = source[i]; + if (uriFragment) { + // Decoding percent-encoding for URI fragment + if (c == '%') { + PercentDecodeStream is(&source[i], source + length); + GenericInsituStringStream os(name); + Ch* begin = os.PutBegin(); + if (!Transcoder, EncodingType>().Validate(is, os) || !is.IsValid()) { + parseErrorCode_ = kPointerParseErrorInvalidPercentEncoding; + goto error; + } + size_t len = os.PutEnd(begin); + i += is.Tell() - 1; + if (len == 1) + c = *name; + else { + name += len; + isNumber = false; + i++; + continue; + } + } + else if (NeedPercentEncode(c)) { + parseErrorCode_ = kPointerParseErrorCharacterMustPercentEncode; + goto error; + } + } + + i++; + + // Escaping "~0" -> '~', "~1" -> '/' + if (c == '~') { + if (i < length) { + c = source[i]; + if (c == '0') c = '~'; + else if (c == '1') c = '/'; + else { + parseErrorCode_ = kPointerParseErrorInvalidEscape; + goto error; + } + i++; + } + else { + parseErrorCode_ = kPointerParseErrorInvalidEscape; + goto error; + } + } + + // First check for index: all of characters are digit + if (c < '0' || c > '9') + isNumber = false; + + *name++ = c; + } + token->length = static_cast(name - token->name); + if (token->length == 0) + isNumber = false; + *name++ = '\0'; // Null terminator + + // Second check for index: more than one digit cannot have leading zero + if (isNumber && token->length > 1 && token->name[0] == '0') + isNumber = false; + + // String to SizeType conversion + SizeType n = 0; + if (isNumber) { + for (size_t j = 0; j < token->length; j++) { + SizeType m = n * 10 + static_cast(token->name[j] - '0'); + if (m < n) { // overflow detection + isNumber = false; + break; + } + n = m; + } + } + + token->index = isNumber ? n : kPointerInvalidIndex; + token++; + } + + RAPIDJSON_ASSERT(name <= nameBuffer_ + length); // Should not overflow buffer + parseErrorCode_ = kPointerParseErrorNone; + return; + + error: + Allocator::Free(tokens_); + nameBuffer_ = 0; + tokens_ = 0; + tokenCount_ = 0; + parseErrorOffset_ = i; + return; + } + + //! Stringify to string or URI fragment representation. + /*! + \tparam uriFragment True for stringifying to URI fragment representation. False for string representation. + \tparam OutputStream type of output stream. + \param os The output stream. + */ + template + bool Stringify(OutputStream& os) const { + RAPIDJSON_ASSERT(IsValid()); + + if (uriFragment) + os.Put('#'); + + for (Token *t = tokens_; t != tokens_ + tokenCount_; ++t) { + os.Put('/'); + for (size_t j = 0; j < t->length; j++) { + Ch c = t->name[j]; + if (c == '~') { + os.Put('~'); + os.Put('0'); + } + else if (c == '/') { + os.Put('~'); + os.Put('1'); + } + else if (uriFragment && NeedPercentEncode(c)) { + // Transcode to UTF8 sequence + GenericStringStream source(&t->name[j]); + PercentEncodeStream target(os); + if (!Transcoder >().Validate(source, target)) + return false; + j += source.Tell() - 1; + } + else + os.Put(c); + } + } + return true; + } + + //! A helper stream for decoding a percent-encoded sequence into code unit. + /*! + This stream decodes %XY triplet into code unit (0-255). + If it encounters invalid characters, it sets output code unit as 0 and + mark invalid, and to be checked by IsValid(). + */ + class PercentDecodeStream { + public: + typedef typename ValueType::Ch Ch; + + //! Constructor + /*! + \param source Start of the stream + \param end Past-the-end of the stream. + */ + PercentDecodeStream(const Ch* source, const Ch* end) : src_(source), head_(source), end_(end), valid_(true) {} + + Ch Take() { + if (*src_ != '%' || src_ + 3 > end_) { // %XY triplet + valid_ = false; + return 0; + } + src_++; + Ch c = 0; + for (int j = 0; j < 2; j++) { + c = static_cast(c << 4); + Ch h = *src_; + if (h >= '0' && h <= '9') c = static_cast(c + h - '0'); + else if (h >= 'A' && h <= 'F') c = static_cast(c + h - 'A' + 10); + else if (h >= 'a' && h <= 'f') c = static_cast(c + h - 'a' + 10); + else { + valid_ = false; + return 0; + } + src_++; + } + return c; + } + + size_t Tell() const { return static_cast(src_ - head_); } + bool IsValid() const { return valid_; } + + private: + const Ch* src_; //!< Current read position. + const Ch* head_; //!< Original head of the string. + const Ch* end_; //!< Past-the-end position. + bool valid_; //!< Whether the parsing is valid. + }; + + //! A helper stream to encode character (UTF-8 code unit) into percent-encoded sequence. + template + class PercentEncodeStream { + public: + PercentEncodeStream(OutputStream& os) : os_(os) {} + void Put(char c) { // UTF-8 must be byte + unsigned char u = static_cast(c); + static const char hexDigits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + os_.Put('%'); + os_.Put(static_cast(hexDigits[u >> 4])); + os_.Put(static_cast(hexDigits[u & 15])); + } + private: + OutputStream& os_; + }; + + Allocator* allocator_; //!< The current allocator. It is either user-supplied or equal to ownAllocator_. + Allocator* ownAllocator_; //!< Allocator owned by this Pointer. + Ch* nameBuffer_; //!< A buffer containing all names in tokens. + Token* tokens_; //!< A list of tokens. + size_t tokenCount_; //!< Number of tokens in tokens_. + size_t parseErrorOffset_; //!< Offset in code unit when parsing fail. + PointerParseErrorCode parseErrorCode_; //!< Parsing error code. +}; + +//! GenericPointer for Value (UTF-8, default allocator). +typedef GenericPointer Pointer; + +//!@name Helper functions for GenericPointer +//@{ + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType& CreateValueByPointer(T& root, const GenericPointer& pointer, typename T::AllocatorType& a) { + return pointer.Create(root, a); +} + +template +typename T::ValueType& CreateValueByPointer(T& root, const CharType(&source)[N], typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Create(root, a); +} + +// No allocator parameter + +template +typename DocumentType::ValueType& CreateValueByPointer(DocumentType& document, const GenericPointer& pointer) { + return pointer.Create(document); +} + +template +typename DocumentType::ValueType& CreateValueByPointer(DocumentType& document, const CharType(&source)[N]) { + return GenericPointer(source, N - 1).Create(document); +} + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType* GetValueByPointer(T& root, const GenericPointer& pointer, size_t* unresolvedTokenIndex = 0) { + return pointer.Get(root, unresolvedTokenIndex); +} + +template +const typename T::ValueType* GetValueByPointer(const T& root, const GenericPointer& pointer, size_t* unresolvedTokenIndex = 0) { + return pointer.Get(root, unresolvedTokenIndex); +} + +template +typename T::ValueType* GetValueByPointer(T& root, const CharType (&source)[N], size_t* unresolvedTokenIndex = 0) { + return GenericPointer(source, N - 1).Get(root, unresolvedTokenIndex); +} + +template +const typename T::ValueType* GetValueByPointer(const T& root, const CharType(&source)[N], size_t* unresolvedTokenIndex = 0) { + return GenericPointer(source, N - 1).Get(root, unresolvedTokenIndex); +} + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const GenericPointer& pointer, const typename T::ValueType& defaultValue, typename T::AllocatorType& a) { + return pointer.GetWithDefault(root, defaultValue, a); +} + +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const GenericPointer& pointer, const typename T::Ch* defaultValue, typename T::AllocatorType& a) { + return pointer.GetWithDefault(root, defaultValue, a); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const GenericPointer& pointer, const std::basic_string& defaultValue, typename T::AllocatorType& a) { + return pointer.GetWithDefault(root, defaultValue, a); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename T::ValueType&)) +GetValueByPointerWithDefault(T& root, const GenericPointer& pointer, T2 defaultValue, typename T::AllocatorType& a) { + return pointer.GetWithDefault(root, defaultValue, a); +} + +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const CharType(&source)[N], const typename T::ValueType& defaultValue, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).GetWithDefault(root, defaultValue, a); +} + +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const CharType(&source)[N], const typename T::Ch* defaultValue, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).GetWithDefault(root, defaultValue, a); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const CharType(&source)[N], const std::basic_string& defaultValue, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).GetWithDefault(root, defaultValue, a); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename T::ValueType&)) +GetValueByPointerWithDefault(T& root, const CharType(&source)[N], T2 defaultValue, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).GetWithDefault(root, defaultValue, a); +} + +// No allocator parameter + +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const GenericPointer& pointer, const typename DocumentType::ValueType& defaultValue) { + return pointer.GetWithDefault(document, defaultValue); +} + +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const GenericPointer& pointer, const typename DocumentType::Ch* defaultValue) { + return pointer.GetWithDefault(document, defaultValue); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const GenericPointer& pointer, const std::basic_string& defaultValue) { + return pointer.GetWithDefault(document, defaultValue); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename DocumentType::ValueType&)) +GetValueByPointerWithDefault(DocumentType& document, const GenericPointer& pointer, T2 defaultValue) { + return pointer.GetWithDefault(document, defaultValue); +} + +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const CharType(&source)[N], const typename DocumentType::ValueType& defaultValue) { + return GenericPointer(source, N - 1).GetWithDefault(document, defaultValue); +} + +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const CharType(&source)[N], const typename DocumentType::Ch* defaultValue) { + return GenericPointer(source, N - 1).GetWithDefault(document, defaultValue); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const CharType(&source)[N], const std::basic_string& defaultValue) { + return GenericPointer(source, N - 1).GetWithDefault(document, defaultValue); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename DocumentType::ValueType&)) +GetValueByPointerWithDefault(DocumentType& document, const CharType(&source)[N], T2 defaultValue) { + return GenericPointer(source, N - 1).GetWithDefault(document, defaultValue); +} + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType& SetValueByPointer(T& root, const GenericPointer& pointer, typename T::ValueType& value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const GenericPointer& pointer, const typename T::ValueType& value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const GenericPointer& pointer, const typename T::Ch* value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename T::ValueType& SetValueByPointer(T& root, const GenericPointer& pointer, const std::basic_string& value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename T::ValueType&)) +SetValueByPointer(T& root, const GenericPointer& pointer, T2 value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], typename T::ValueType& value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], const typename T::ValueType& value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], const typename T::Ch* value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], const std::basic_string& value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename T::ValueType&)) +SetValueByPointer(T& root, const CharType(&source)[N], T2 value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} + +// No allocator parameter + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const GenericPointer& pointer, typename DocumentType::ValueType& value) { + return pointer.Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const GenericPointer& pointer, const typename DocumentType::ValueType& value) { + return pointer.Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const GenericPointer& pointer, const typename DocumentType::Ch* value) { + return pointer.Set(document, value); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const GenericPointer& pointer, const std::basic_string& value) { + return pointer.Set(document, value); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename DocumentType::ValueType&)) +SetValueByPointer(DocumentType& document, const GenericPointer& pointer, T2 value) { + return pointer.Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const CharType(&source)[N], typename DocumentType::ValueType& value) { + return GenericPointer(source, N - 1).Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const CharType(&source)[N], const typename DocumentType::ValueType& value) { + return GenericPointer(source, N - 1).Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const CharType(&source)[N], const typename DocumentType::Ch* value) { + return GenericPointer(source, N - 1).Set(document, value); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const CharType(&source)[N], const std::basic_string& value) { + return GenericPointer(source, N - 1).Set(document, value); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename DocumentType::ValueType&)) +SetValueByPointer(DocumentType& document, const CharType(&source)[N], T2 value) { + return GenericPointer(source, N - 1).Set(document, value); +} + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType& SwapValueByPointer(T& root, const GenericPointer& pointer, typename T::ValueType& value, typename T::AllocatorType& a) { + return pointer.Swap(root, value, a); +} + +template +typename T::ValueType& SwapValueByPointer(T& root, const CharType(&source)[N], typename T::ValueType& value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Swap(root, value, a); +} + +template +typename DocumentType::ValueType& SwapValueByPointer(DocumentType& document, const GenericPointer& pointer, typename DocumentType::ValueType& value) { + return pointer.Swap(document, value); +} + +template +typename DocumentType::ValueType& SwapValueByPointer(DocumentType& document, const CharType(&source)[N], typename DocumentType::ValueType& value) { + return GenericPointer(source, N - 1).Swap(document, value); +} + +////////////////////////////////////////////////////////////////////////////// + +template +bool EraseValueByPointer(T& root, const GenericPointer& pointer) { + return pointer.Erase(root); +} + +template +bool EraseValueByPointer(T& root, const CharType(&source)[N]) { + return GenericPointer(source, N - 1).Erase(root); +} + +//@} + +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) || defined(_MSC_VER) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_POINTER_H_ diff --git a/external/rlottie/src/lottie/rapidjson/prettywriter.h b/external/rlottie/src/lottie/rapidjson/prettywriter.h new file mode 100644 index 000000000..94eeb69db --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/prettywriter.h @@ -0,0 +1,277 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_PRETTYWRITER_H_ +#define RAPIDJSON_PRETTYWRITER_H_ + +#include "writer.h" + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#if defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(c++98-compat) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Combination of PrettyWriter format flags. +/*! \see PrettyWriter::SetFormatOptions + */ +enum PrettyFormatOptions { + kFormatDefault = 0, //!< Default pretty formatting. + kFormatSingleLineArray = 1 //!< Format arrays on a single line. +}; + +//! Writer with indentation and spacing. +/*! + \tparam OutputStream Type of output os. + \tparam SourceEncoding Encoding of source string. + \tparam TargetEncoding Encoding of output stream. + \tparam StackAllocator Type of allocator for allocating memory of stack. +*/ +template, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> +class PrettyWriter : public Writer { +public: + typedef Writer Base; + typedef typename Base::Ch Ch; + + //! Constructor + /*! \param os Output stream. + \param allocator User supplied allocator. If it is null, it will create a private one. + \param levelDepth Initial capacity of stack. + */ + explicit PrettyWriter(OutputStream& os, StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) : + Base(os, allocator, levelDepth), indentChar_(' '), indentCharCount_(4), formatOptions_(kFormatDefault) {} + + + explicit PrettyWriter(StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) : + Base(allocator, levelDepth), indentChar_(' '), indentCharCount_(4), formatOptions_(kFormatDefault) {} + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + PrettyWriter(PrettyWriter&& rhs) : + Base(std::forward(rhs)), indentChar_(rhs.indentChar_), indentCharCount_(rhs.indentCharCount_), formatOptions_(rhs.formatOptions_) {} +#endif + + //! Set custom indentation. + /*! \param indentChar Character for indentation. Must be whitespace character (' ', '\\t', '\\n', '\\r'). + \param indentCharCount Number of indent characters for each indentation level. + \note The default indentation is 4 spaces. + */ + PrettyWriter& SetIndent(Ch indentChar, unsigned indentCharCount) { + RAPIDJSON_ASSERT(indentChar == ' ' || indentChar == '\t' || indentChar == '\n' || indentChar == '\r'); + indentChar_ = indentChar; + indentCharCount_ = indentCharCount; + return *this; + } + + //! Set pretty writer formatting options. + /*! \param options Formatting options. + */ + PrettyWriter& SetFormatOptions(PrettyFormatOptions options) { + formatOptions_ = options; + return *this; + } + + /*! @name Implementation of Handler + \see Handler + */ + //@{ + + bool Null() { PrettyPrefix(kNullType); return Base::EndValue(Base::WriteNull()); } + bool Bool(bool b) { PrettyPrefix(b ? kTrueType : kFalseType); return Base::EndValue(Base::WriteBool(b)); } + bool Int(int i) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteInt(i)); } + bool Uint(unsigned u) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteUint(u)); } + bool Int64(int64_t i64) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteInt64(i64)); } + bool Uint64(uint64_t u64) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteUint64(u64)); } + bool Double(double d) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteDouble(d)); } + + bool RawNumber(const Ch* str, SizeType length, bool copy = false) { + RAPIDJSON_ASSERT(str != 0); + (void)copy; + PrettyPrefix(kNumberType); + return Base::EndValue(Base::WriteString(str, length)); + } + + bool String(const Ch* str, SizeType length, bool copy = false) { + RAPIDJSON_ASSERT(str != 0); + (void)copy; + PrettyPrefix(kStringType); + return Base::EndValue(Base::WriteString(str, length)); + } + +#if RAPIDJSON_HAS_STDSTRING + bool String(const std::basic_string& str) { + return String(str.data(), SizeType(str.size())); + } +#endif + + bool StartObject() { + PrettyPrefix(kObjectType); + new (Base::level_stack_.template Push()) typename Base::Level(false); + return Base::WriteStartObject(); + } + + bool Key(const Ch* str, SizeType length, bool copy = false) { return String(str, length, copy); } + +#if RAPIDJSON_HAS_STDSTRING + bool Key(const std::basic_string& str) { + return Key(str.data(), SizeType(str.size())); + } +#endif + + bool EndObject(SizeType memberCount = 0) { + (void)memberCount; + RAPIDJSON_ASSERT(Base::level_stack_.GetSize() >= sizeof(typename Base::Level)); // not inside an Object + RAPIDJSON_ASSERT(!Base::level_stack_.template Top()->inArray); // currently inside an Array, not Object + RAPIDJSON_ASSERT(0 == Base::level_stack_.template Top()->valueCount % 2); // Object has a Key without a Value + + bool empty = Base::level_stack_.template Pop(1)->valueCount == 0; + + if (!empty) { + Base::os_->Put('\n'); + WriteIndent(); + } + bool ret = Base::EndValue(Base::WriteEndObject()); + (void)ret; + RAPIDJSON_ASSERT(ret == true); + if (Base::level_stack_.Empty()) // end of json text + Base::Flush(); + return true; + } + + bool StartArray() { + PrettyPrefix(kArrayType); + new (Base::level_stack_.template Push()) typename Base::Level(true); + return Base::WriteStartArray(); + } + + bool EndArray(SizeType memberCount = 0) { + (void)memberCount; + RAPIDJSON_ASSERT(Base::level_stack_.GetSize() >= sizeof(typename Base::Level)); + RAPIDJSON_ASSERT(Base::level_stack_.template Top()->inArray); + bool empty = Base::level_stack_.template Pop(1)->valueCount == 0; + + if (!empty && !(formatOptions_ & kFormatSingleLineArray)) { + Base::os_->Put('\n'); + WriteIndent(); + } + bool ret = Base::EndValue(Base::WriteEndArray()); + (void)ret; + RAPIDJSON_ASSERT(ret == true); + if (Base::level_stack_.Empty()) // end of json text + Base::Flush(); + return true; + } + + //@} + + /*! @name Convenience extensions */ + //@{ + + //! Simpler but slower overload. + bool String(const Ch* str) { return String(str, internal::StrLen(str)); } + bool Key(const Ch* str) { return Key(str, internal::StrLen(str)); } + + //@} + + //! Write a raw JSON value. + /*! + For user to write a stringified JSON as a value. + + \param json A well-formed JSON value. It should not contain null character within [0, length - 1] range. + \param length Length of the json. + \param type Type of the root of json. + \note When using PrettyWriter::RawValue(), the result json may not be indented correctly. + */ + bool RawValue(const Ch* json, size_t length, Type type) { + RAPIDJSON_ASSERT(json != 0); + PrettyPrefix(type); + return Base::EndValue(Base::WriteRawValue(json, length)); + } + +protected: + void PrettyPrefix(Type type) { + (void)type; + if (Base::level_stack_.GetSize() != 0) { // this value is not at root + typename Base::Level* level = Base::level_stack_.template Top(); + + if (level->inArray) { + if (level->valueCount > 0) { + Base::os_->Put(','); // add comma if it is not the first element in array + if (formatOptions_ & kFormatSingleLineArray) + Base::os_->Put(' '); + } + + if (!(formatOptions_ & kFormatSingleLineArray)) { + Base::os_->Put('\n'); + WriteIndent(); + } + } + else { // in object + if (level->valueCount > 0) { + if (level->valueCount % 2 == 0) { + Base::os_->Put(','); + Base::os_->Put('\n'); + } + else { + Base::os_->Put(':'); + Base::os_->Put(' '); + } + } + else + Base::os_->Put('\n'); + + if (level->valueCount % 2 == 0) + WriteIndent(); + } + if (!level->inArray && level->valueCount % 2 == 0) + RAPIDJSON_ASSERT(type == kStringType); // if it's in object, then even number should be a name + level->valueCount++; + } + else { + RAPIDJSON_ASSERT(!Base::hasRoot_); // Should only has one and only one root. + Base::hasRoot_ = true; + } + } + + void WriteIndent() { + size_t count = (Base::level_stack_.GetSize() / sizeof(typename Base::Level)) * indentCharCount_; + PutN(*Base::os_, static_cast(indentChar_), count); + } + + Ch indentChar_; + unsigned indentCharCount_; + PrettyFormatOptions formatOptions_; + +private: + // Prohibit copy constructor & assignment operator. + PrettyWriter(const PrettyWriter&); + PrettyWriter& operator=(const PrettyWriter&); +}; + +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_RAPIDJSON_H_ diff --git a/external/rlottie/src/lottie/rapidjson/rapidjson.h b/external/rlottie/src/lottie/rapidjson/rapidjson.h new file mode 100644 index 000000000..c5f4d65f7 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/rapidjson.h @@ -0,0 +1,692 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_RAPIDJSON_H_ +#define RAPIDJSON_RAPIDJSON_H_ + +/*!\file rapidjson.h + \brief common definitions and configuration + + \see RAPIDJSON_CONFIG + */ + +/*! \defgroup RAPIDJSON_CONFIG RapidJSON configuration + \brief Configuration macros for library features + + Some RapidJSON features are configurable to adapt the library to a wide + variety of platforms, environments and usage scenarios. Most of the + features can be configured in terms of overridden or predefined + preprocessor macros at compile-time. + + Some additional customization is available in the \ref RAPIDJSON_ERRORS APIs. + + \note These macros should be given on the compiler command-line + (where applicable) to avoid inconsistent values when compiling + different translation units of a single application. + */ + +#include // malloc(), realloc(), free(), size_t +#include // memset(), memcpy(), memmove(), memcmp() + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_VERSION_STRING +// +// ALWAYS synchronize the following 3 macros with corresponding variables in /CMakeLists.txt. +// + +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +// token stringification +#define RAPIDJSON_STRINGIFY(x) RAPIDJSON_DO_STRINGIFY(x) +#define RAPIDJSON_DO_STRINGIFY(x) #x + +// token concatenation +#define RAPIDJSON_JOIN(X, Y) RAPIDJSON_DO_JOIN(X, Y) +#define RAPIDJSON_DO_JOIN(X, Y) RAPIDJSON_DO_JOIN2(X, Y) +#define RAPIDJSON_DO_JOIN2(X, Y) X##Y +//!@endcond + +/*! \def RAPIDJSON_MAJOR_VERSION + \ingroup RAPIDJSON_CONFIG + \brief Major version of RapidJSON in integer. +*/ +/*! \def RAPIDJSON_MINOR_VERSION + \ingroup RAPIDJSON_CONFIG + \brief Minor version of RapidJSON in integer. +*/ +/*! \def RAPIDJSON_PATCH_VERSION + \ingroup RAPIDJSON_CONFIG + \brief Patch version of RapidJSON in integer. +*/ +/*! \def RAPIDJSON_VERSION_STRING + \ingroup RAPIDJSON_CONFIG + \brief Version of RapidJSON in ".." string format. +*/ +#define RAPIDJSON_MAJOR_VERSION 1 +#define RAPIDJSON_MINOR_VERSION 1 +#define RAPIDJSON_PATCH_VERSION 0 +#define RAPIDJSON_VERSION_STRING \ + RAPIDJSON_STRINGIFY(RAPIDJSON_MAJOR_VERSION.RAPIDJSON_MINOR_VERSION.RAPIDJSON_PATCH_VERSION) + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_NAMESPACE_(BEGIN|END) +/*! \def RAPIDJSON_NAMESPACE + \ingroup RAPIDJSON_CONFIG + \brief provide custom rapidjson namespace + + In order to avoid symbol clashes and/or "One Definition Rule" errors + between multiple inclusions of (different versions of) RapidJSON in + a single binary, users can customize the name of the main RapidJSON + namespace. + + In case of a single nesting level, defining \c RAPIDJSON_NAMESPACE + to a custom name (e.g. \c MyRapidJSON) is sufficient. If multiple + levels are needed, both \ref RAPIDJSON_NAMESPACE_BEGIN and \ref + RAPIDJSON_NAMESPACE_END need to be defined as well: + + \code + // in some .cpp file + #define RAPIDJSON_NAMESPACE my::rapidjson + #define RAPIDJSON_NAMESPACE_BEGIN namespace my { namespace rapidjson { + #define RAPIDJSON_NAMESPACE_END } } + #include "rapidjson/..." + \endcode + + \see rapidjson + */ +/*! \def RAPIDJSON_NAMESPACE_BEGIN + \ingroup RAPIDJSON_CONFIG + \brief provide custom rapidjson namespace (opening expression) + \see RAPIDJSON_NAMESPACE +*/ +/*! \def RAPIDJSON_NAMESPACE_END + \ingroup RAPIDJSON_CONFIG + \brief provide custom rapidjson namespace (closing expression) + \see RAPIDJSON_NAMESPACE +*/ +#ifndef RAPIDJSON_NAMESPACE +#define RAPIDJSON_NAMESPACE rapidjson +#endif +#ifndef RAPIDJSON_NAMESPACE_BEGIN +#define RAPIDJSON_NAMESPACE_BEGIN namespace RAPIDJSON_NAMESPACE { +#endif +#ifndef RAPIDJSON_NAMESPACE_END +#define RAPIDJSON_NAMESPACE_END } +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_HAS_STDSTRING + +#ifndef RAPIDJSON_HAS_STDSTRING +#ifdef RAPIDJSON_DOXYGEN_RUNNING +#define RAPIDJSON_HAS_STDSTRING 1 // force generation of documentation +#else +#define RAPIDJSON_HAS_STDSTRING 0 // no std::string support by default +#endif +/*! \def RAPIDJSON_HAS_STDSTRING + \ingroup RAPIDJSON_CONFIG + \brief Enable RapidJSON support for \c std::string + + By defining this preprocessor symbol to \c 1, several convenience functions for using + \ref rapidjson::GenericValue with \c std::string are enabled, especially + for construction and comparison. + + \hideinitializer +*/ +#endif // !defined(RAPIDJSON_HAS_STDSTRING) + +#if RAPIDJSON_HAS_STDSTRING +#include +#endif // RAPIDJSON_HAS_STDSTRING + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_NO_INT64DEFINE + +/*! \def RAPIDJSON_NO_INT64DEFINE + \ingroup RAPIDJSON_CONFIG + \brief Use external 64-bit integer types. + + RapidJSON requires the 64-bit integer types \c int64_t and \c uint64_t types + to be available at global scope. + + If users have their own definition, define RAPIDJSON_NO_INT64DEFINE to + prevent RapidJSON from defining its own types. +*/ +#ifndef RAPIDJSON_NO_INT64DEFINE +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#if defined(_MSC_VER) && (_MSC_VER < 1800) // Visual Studio 2013 +#include "msinttypes/stdint.h" +#include "msinttypes/inttypes.h" +#else +// Other compilers should have this. +#include +#include +#endif +//!@endcond +#ifdef RAPIDJSON_DOXYGEN_RUNNING +#define RAPIDJSON_NO_INT64DEFINE +#endif +#endif // RAPIDJSON_NO_INT64TYPEDEF + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_FORCEINLINE + +#ifndef RAPIDJSON_FORCEINLINE +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#if defined(_MSC_VER) && defined(NDEBUG) +#define RAPIDJSON_FORCEINLINE __forceinline +#elif defined(__GNUC__) && __GNUC__ >= 4 && defined(NDEBUG) +#define RAPIDJSON_FORCEINLINE __attribute__((always_inline)) +#else +#define RAPIDJSON_FORCEINLINE +#endif +//!@endcond +#endif // RAPIDJSON_FORCEINLINE + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ENDIAN +#define RAPIDJSON_LITTLEENDIAN 0 //!< Little endian machine +#define RAPIDJSON_BIGENDIAN 1 //!< Big endian machine + +//! Endianness of the machine. +/*! + \def RAPIDJSON_ENDIAN + \ingroup RAPIDJSON_CONFIG + + GCC 4.6 provided macro for detecting endianness of the target machine. But other + compilers may not have this. User can define RAPIDJSON_ENDIAN to either + \ref RAPIDJSON_LITTLEENDIAN or \ref RAPIDJSON_BIGENDIAN. + + Default detection implemented with reference to + \li https://gcc.gnu.org/onlinedocs/gcc-4.6.0/cpp/Common-Predefined-Macros.html + \li http://www.boost.org/doc/libs/1_42_0/boost/detail/endian.hpp +*/ +#ifndef RAPIDJSON_ENDIAN +// Detect with GCC 4.6's macro +# ifdef __BYTE_ORDER__ +# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN +# else +# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN. +# endif // __BYTE_ORDER__ +// Detect with GLIBC's endian.h +# elif defined(__GLIBC__) +# include +# if (__BYTE_ORDER == __LITTLE_ENDIAN) +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif (__BYTE_ORDER == __BIG_ENDIAN) +# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN +# else +# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN. +# endif // __GLIBC__ +// Detect with _LITTLE_ENDIAN and _BIG_ENDIAN macro +# elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN) +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) +# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN +// Detect with architecture macros +# elif defined(__sparc) || defined(__sparc__) || defined(_POWER) || defined(__powerpc__) || defined(__ppc__) || defined(__hpux) || defined(__hppa) || defined(_MIPSEB) || defined(_POWER) || defined(__s390__) +# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN +# elif defined(__i386__) || defined(__alpha__) || defined(__ia64) || defined(__ia64__) || defined(_M_IX86) || defined(_M_IA64) || defined(_M_ALPHA) || defined(__amd64) || defined(__amd64__) || defined(_M_AMD64) || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || defined(__bfin__) +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif defined(RAPIDJSON_DOXYGEN_RUNNING) +# define RAPIDJSON_ENDIAN +# else +# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN. +# endif +#endif // RAPIDJSON_ENDIAN + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_64BIT + +//! Whether using 64-bit architecture +#ifndef RAPIDJSON_64BIT +#if defined(__LP64__) || (defined(__x86_64__) && defined(__ILP32__)) || defined(_WIN64) || defined(__EMSCRIPTEN__) +#define RAPIDJSON_64BIT 1 +#else +#define RAPIDJSON_64BIT 0 +#endif +#endif // RAPIDJSON_64BIT + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ALIGN + +//! Data alignment of the machine. +/*! \ingroup RAPIDJSON_CONFIG + \param x pointer to align + + Some machines require strict data alignment. The default is 8 bytes. + User can customize by defining the RAPIDJSON_ALIGN function macro. +*/ +#ifndef RAPIDJSON_ALIGN +#define RAPIDJSON_ALIGN(x) (((x) + static_cast(7u)) & ~static_cast(7u)) +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_UINT64_C2 + +//! Construct a 64-bit literal by a pair of 32-bit integer. +/*! + 64-bit literal with or without ULL suffix is prone to compiler warnings. + UINT64_C() is C macro which cause compilation problems. + Use this macro to define 64-bit constants by a pair of 32-bit integer. +*/ +#ifndef RAPIDJSON_UINT64_C2 +#define RAPIDJSON_UINT64_C2(high32, low32) ((static_cast(high32) << 32) | static_cast(low32)) +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_48BITPOINTER_OPTIMIZATION + +//! Use only lower 48-bit address for some pointers. +/*! + \ingroup RAPIDJSON_CONFIG + + This optimization uses the fact that current X86-64 architecture only implement lower 48-bit virtual address. + The higher 16-bit can be used for storing other data. + \c GenericValue uses this optimization to reduce its size form 24 bytes to 16 bytes in 64-bit architecture. +*/ +#ifndef RAPIDJSON_48BITPOINTER_OPTIMIZATION +#if defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64) +#define RAPIDJSON_48BITPOINTER_OPTIMIZATION 1 +#else +#define RAPIDJSON_48BITPOINTER_OPTIMIZATION 0 +#endif +#endif // RAPIDJSON_48BITPOINTER_OPTIMIZATION + +#if RAPIDJSON_48BITPOINTER_OPTIMIZATION == 1 +#if RAPIDJSON_64BIT != 1 +#error RAPIDJSON_48BITPOINTER_OPTIMIZATION can only be set to 1 when RAPIDJSON_64BIT=1 +#endif +#define RAPIDJSON_SETPOINTER(type, p, x) (p = reinterpret_cast((reinterpret_cast(p) & static_cast(RAPIDJSON_UINT64_C2(0xFFFF0000, 0x00000000))) | reinterpret_cast(reinterpret_cast(x)))) +#define RAPIDJSON_GETPOINTER(type, p) (reinterpret_cast(reinterpret_cast(p) & static_cast(RAPIDJSON_UINT64_C2(0x0000FFFF, 0xFFFFFFFF)))) +#else +#define RAPIDJSON_SETPOINTER(type, p, x) (p = (x)) +#define RAPIDJSON_GETPOINTER(type, p) (p) +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_SSE2/RAPIDJSON_SSE42/RAPIDJSON_NEON/RAPIDJSON_SIMD + +/*! \def RAPIDJSON_SIMD + \ingroup RAPIDJSON_CONFIG + \brief Enable SSE2/SSE4.2/Neon optimization. + + RapidJSON supports optimized implementations for some parsing operations + based on the SSE2, SSE4.2 or NEon SIMD extensions on modern Intel + or ARM compatible processors. + + To enable these optimizations, three different symbols can be defined; + \code + // Enable SSE2 optimization. + #define RAPIDJSON_SSE2 + + // Enable SSE4.2 optimization. + #define RAPIDJSON_SSE42 + \endcode + + // Enable ARM Neon optimization. + #define RAPIDJSON_NEON + \endcode + + \c RAPIDJSON_SSE42 takes precedence over SSE2, if both are defined. + + If any of these symbols is defined, RapidJSON defines the macro + \c RAPIDJSON_SIMD to indicate the availability of the optimized code. +*/ +#if defined(RAPIDJSON_SSE2) || defined(RAPIDJSON_SSE42) \ + || defined(RAPIDJSON_NEON) || defined(RAPIDJSON_DOXYGEN_RUNNING) +#define RAPIDJSON_SIMD +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_NO_SIZETYPEDEFINE + +#ifndef RAPIDJSON_NO_SIZETYPEDEFINE +/*! \def RAPIDJSON_NO_SIZETYPEDEFINE + \ingroup RAPIDJSON_CONFIG + \brief User-provided \c SizeType definition. + + In order to avoid using 32-bit size types for indexing strings and arrays, + define this preprocessor symbol and provide the type rapidjson::SizeType + before including RapidJSON: + \code + #define RAPIDJSON_NO_SIZETYPEDEFINE + namespace rapidjson { typedef ::std::size_t SizeType; } + #include "rapidjson/..." + \endcode + + \see rapidjson::SizeType +*/ +#ifdef RAPIDJSON_DOXYGEN_RUNNING +#define RAPIDJSON_NO_SIZETYPEDEFINE +#endif +RAPIDJSON_NAMESPACE_BEGIN +//! Size type (for string lengths, array sizes, etc.) +/*! RapidJSON uses 32-bit array/string indices even on 64-bit platforms, + instead of using \c size_t. Users may override the SizeType by defining + \ref RAPIDJSON_NO_SIZETYPEDEFINE. +*/ +typedef unsigned SizeType; +RAPIDJSON_NAMESPACE_END +#endif + +// always import std::size_t to rapidjson namespace +RAPIDJSON_NAMESPACE_BEGIN +using std::size_t; +RAPIDJSON_NAMESPACE_END + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ASSERT + +//! Assertion. +/*! \ingroup RAPIDJSON_CONFIG + By default, rapidjson uses C \c assert() for internal assertions. + User can override it by defining RAPIDJSON_ASSERT(x) macro. + + \note Parsing errors are handled and can be customized by the + \ref RAPIDJSON_ERRORS APIs. +*/ +#ifndef RAPIDJSON_ASSERT +#include +#define RAPIDJSON_ASSERT(x) assert(x) +#endif // RAPIDJSON_ASSERT + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_STATIC_ASSERT + +// Prefer C++11 static_assert, if available +#ifndef RAPIDJSON_STATIC_ASSERT +#if __cplusplus >= 201103L || ( defined(_MSC_VER) && _MSC_VER >= 1800 ) +#define RAPIDJSON_STATIC_ASSERT(x) \ + static_assert(x, RAPIDJSON_STRINGIFY(x)) +#endif // C++11 +#endif // RAPIDJSON_STATIC_ASSERT + +// Adopt C++03 implementation from boost +#ifndef RAPIDJSON_STATIC_ASSERT +#ifndef __clang__ +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#endif +RAPIDJSON_NAMESPACE_BEGIN +template struct STATIC_ASSERTION_FAILURE; +template <> struct STATIC_ASSERTION_FAILURE { enum { value = 1 }; }; +template struct StaticAssertTest {}; +RAPIDJSON_NAMESPACE_END + +#if defined(__GNUC__) || defined(__clang__) +#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused)) +#else +#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE +#endif +#ifndef __clang__ +//!@endcond +#endif + +/*! \def RAPIDJSON_STATIC_ASSERT + \brief (Internal) macro to check for conditions at compile-time + \param x compile-time condition + \hideinitializer + */ +#define RAPIDJSON_STATIC_ASSERT(x) \ + typedef ::RAPIDJSON_NAMESPACE::StaticAssertTest< \ + sizeof(::RAPIDJSON_NAMESPACE::STATIC_ASSERTION_FAILURE)> \ + RAPIDJSON_JOIN(StaticAssertTypedef, __LINE__) RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE +#endif // RAPIDJSON_STATIC_ASSERT + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_LIKELY, RAPIDJSON_UNLIKELY + +//! Compiler branching hint for expression with high probability to be true. +/*! + \ingroup RAPIDJSON_CONFIG + \param x Boolean expression likely to be true. +*/ +#ifndef RAPIDJSON_LIKELY +#if defined(__GNUC__) || defined(__clang__) +#define RAPIDJSON_LIKELY(x) __builtin_expect(!!(x), 1) +#else +#define RAPIDJSON_LIKELY(x) (x) +#endif +#endif + +//! Compiler branching hint for expression with low probability to be true. +/*! + \ingroup RAPIDJSON_CONFIG + \param x Boolean expression unlikely to be true. +*/ +#ifndef RAPIDJSON_UNLIKELY +#if defined(__GNUC__) || defined(__clang__) +#define RAPIDJSON_UNLIKELY(x) __builtin_expect(!!(x), 0) +#else +#define RAPIDJSON_UNLIKELY(x) (x) +#endif +#endif + +/////////////////////////////////////////////////////////////////////////////// +// Helpers + +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN + +#define RAPIDJSON_MULTILINEMACRO_BEGIN do { +#define RAPIDJSON_MULTILINEMACRO_END \ +} while((void)0, 0) + +// adopted from Boost +#define RAPIDJSON_VERSION_CODE(x,y,z) \ + (((x)*100000) + ((y)*100) + (z)) + +#if defined(__has_builtin) +#define RAPIDJSON_HAS_BUILTIN(x) __has_builtin(x) +#else +#define RAPIDJSON_HAS_BUILTIN(x) 0 +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_DIAG_PUSH/POP, RAPIDJSON_DIAG_OFF + +#if defined(__GNUC__) +#define RAPIDJSON_GNUC \ + RAPIDJSON_VERSION_CODE(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__) +#endif + +#if defined(__clang__) || (defined(RAPIDJSON_GNUC) && RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,2,0)) + +#define RAPIDJSON_PRAGMA(x) _Pragma(RAPIDJSON_STRINGIFY(x)) +#define RAPIDJSON_DIAG_PRAGMA(x) RAPIDJSON_PRAGMA(GCC diagnostic x) +#define RAPIDJSON_DIAG_OFF(x) \ + RAPIDJSON_DIAG_PRAGMA(ignored RAPIDJSON_STRINGIFY(RAPIDJSON_JOIN(-W,x))) + +// push/pop support in Clang and GCC>=4.6 +#if defined(__clang__) || (defined(RAPIDJSON_GNUC) && RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,6,0)) +#define RAPIDJSON_DIAG_PUSH RAPIDJSON_DIAG_PRAGMA(push) +#define RAPIDJSON_DIAG_POP RAPIDJSON_DIAG_PRAGMA(pop) +#else // GCC >= 4.2, < 4.6 +#define RAPIDJSON_DIAG_PUSH /* ignored */ +#define RAPIDJSON_DIAG_POP /* ignored */ +#endif + +#elif defined(_MSC_VER) + +// pragma (MSVC specific) +#define RAPIDJSON_PRAGMA(x) __pragma(x) +#define RAPIDJSON_DIAG_PRAGMA(x) RAPIDJSON_PRAGMA(warning(x)) + +#define RAPIDJSON_DIAG_OFF(x) RAPIDJSON_DIAG_PRAGMA(disable: x) +#define RAPIDJSON_DIAG_PUSH RAPIDJSON_DIAG_PRAGMA(push) +#define RAPIDJSON_DIAG_POP RAPIDJSON_DIAG_PRAGMA(pop) + +#else + +#define RAPIDJSON_DIAG_OFF(x) /* ignored */ +#define RAPIDJSON_DIAG_PUSH /* ignored */ +#define RAPIDJSON_DIAG_POP /* ignored */ + +#endif // RAPIDJSON_DIAG_* + +/////////////////////////////////////////////////////////////////////////////// +// C++11 features + +#ifndef RAPIDJSON_HAS_CXX11_RVALUE_REFS +#if defined(__clang__) +#if __has_feature(cxx_rvalue_references) && \ + (defined(_MSC_VER) || defined(_LIBCPP_VERSION) || defined(__GLIBCXX__) && __GLIBCXX__ >= 20080306) +#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 1 +#else +#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 0 +#endif +#elif (defined(RAPIDJSON_GNUC) && (RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,3,0)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \ + (defined(_MSC_VER) && _MSC_VER >= 1600) || \ + (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5140 && defined(__GXX_EXPERIMENTAL_CXX0X__)) + +#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 1 +#else +#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 0 +#endif +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + +#ifndef RAPIDJSON_HAS_CXX11_NOEXCEPT +#if defined(__clang__) +#define RAPIDJSON_HAS_CXX11_NOEXCEPT __has_feature(cxx_noexcept) +#elif (defined(RAPIDJSON_GNUC) && (RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,6,0)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \ + (defined(_MSC_VER) && _MSC_VER >= 1900) || \ + (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5140 && defined(__GXX_EXPERIMENTAL_CXX0X__)) +#define RAPIDJSON_HAS_CXX11_NOEXCEPT 1 +#else +#define RAPIDJSON_HAS_CXX11_NOEXCEPT 0 +#endif +#endif +#if RAPIDJSON_HAS_CXX11_NOEXCEPT +#define RAPIDJSON_NOEXCEPT noexcept +#else +#define RAPIDJSON_NOEXCEPT /* noexcept */ +#endif // RAPIDJSON_HAS_CXX11_NOEXCEPT + +// no automatic detection, yet +#ifndef RAPIDJSON_HAS_CXX11_TYPETRAITS +#if (defined(_MSC_VER) && _MSC_VER >= 1700) +#define RAPIDJSON_HAS_CXX11_TYPETRAITS 1 +#else +#define RAPIDJSON_HAS_CXX11_TYPETRAITS 0 +#endif +#endif + +#ifndef RAPIDJSON_HAS_CXX11_RANGE_FOR +#if defined(__clang__) +#define RAPIDJSON_HAS_CXX11_RANGE_FOR __has_feature(cxx_range_for) +#elif (defined(RAPIDJSON_GNUC) && (RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,6,0)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \ + (defined(_MSC_VER) && _MSC_VER >= 1700) || \ + (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5140 && defined(__GXX_EXPERIMENTAL_CXX0X__)) +#define RAPIDJSON_HAS_CXX11_RANGE_FOR 1 +#else +#define RAPIDJSON_HAS_CXX11_RANGE_FOR 0 +#endif +#endif // RAPIDJSON_HAS_CXX11_RANGE_FOR + +/////////////////////////////////////////////////////////////////////////////// +// C++17 features + +#if defined(__has_cpp_attribute) +# if __has_cpp_attribute(fallthrough) +# define RAPIDJSON_DELIBERATE_FALLTHROUGH [[fallthrough]] +# else +# define RAPIDJSON_DELIBERATE_FALLTHROUGH +# endif +#else +# define RAPIDJSON_DELIBERATE_FALLTHROUGH +#endif + +//!@endcond + +//! Assertion (in non-throwing contexts). + /*! \ingroup RAPIDJSON_CONFIG + Some functions provide a \c noexcept guarantee, if the compiler supports it. + In these cases, the \ref RAPIDJSON_ASSERT macro cannot be overridden to + throw an exception. This macro adds a separate customization point for + such cases. + + Defaults to C \c assert() (as \ref RAPIDJSON_ASSERT), if \c noexcept is + supported, and to \ref RAPIDJSON_ASSERT otherwise. + */ + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_NOEXCEPT_ASSERT + +#ifndef RAPIDJSON_NOEXCEPT_ASSERT +#ifdef RAPIDJSON_ASSERT_THROWS +#if RAPIDJSON_HAS_CXX11_NOEXCEPT +#define RAPIDJSON_NOEXCEPT_ASSERT(x) +#else +#include +#define RAPIDJSON_NOEXCEPT_ASSERT(x) assert(x) +#endif // RAPIDJSON_HAS_CXX11_NOEXCEPT +#else +#define RAPIDJSON_NOEXCEPT_ASSERT(x) RAPIDJSON_ASSERT(x) +#endif // RAPIDJSON_ASSERT_THROWS +#endif // RAPIDJSON_NOEXCEPT_ASSERT + +/////////////////////////////////////////////////////////////////////////////// +// malloc/realloc/free + +#ifndef RAPIDJSON_MALLOC +///! customization point for global \c malloc +#define RAPIDJSON_MALLOC(size) std::malloc(size) +#endif +#ifndef RAPIDJSON_REALLOC +///! customization point for global \c realloc +#define RAPIDJSON_REALLOC(ptr, new_size) std::realloc(ptr, new_size) +#endif +#ifndef RAPIDJSON_FREE +///! customization point for global \c free +#define RAPIDJSON_FREE(ptr) std::free(ptr) +#endif + +/////////////////////////////////////////////////////////////////////////////// +// new/delete + +#ifndef RAPIDJSON_NEW +///! customization point for global \c new +#define RAPIDJSON_NEW(TypeName) new TypeName +#endif +#ifndef RAPIDJSON_DELETE +///! customization point for global \c delete +#define RAPIDJSON_DELETE(x) delete x +#endif + +/////////////////////////////////////////////////////////////////////////////// +// Type + +/*! \namespace rapidjson + \brief main RapidJSON namespace + \see RAPIDJSON_NAMESPACE +*/ +RAPIDJSON_NAMESPACE_BEGIN + +//! Type of JSON value +enum Type { + kNullType = 0, //!< null + kFalseType = 1, //!< false + kTrueType = 2, //!< true + kObjectType = 3, //!< object + kArrayType = 4, //!< array + kStringType = 5, //!< string + kNumberType = 6 //!< number +}; + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_RAPIDJSON_H_ diff --git a/external/rlottie/src/lottie/rapidjson/reader.h b/external/rlottie/src/lottie/rapidjson/reader.h new file mode 100644 index 000000000..30e45e1f6 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/reader.h @@ -0,0 +1,2244 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_READER_H_ +#define RAPIDJSON_READER_H_ + +/*! \file reader.h */ + +#include "allocators.h" +#include "stream.h" +#include "encodedstream.h" +#include "internal/clzll.h" +#include "internal/meta.h" +#include "internal/stack.h" +#include "internal/strtod.h" +#include + +#if defined(RAPIDJSON_SIMD) && defined(_MSC_VER) +#include +#pragma intrinsic(_BitScanForward) +#endif +#ifdef RAPIDJSON_SSE42 +#include +#elif defined(RAPIDJSON_SSE2) +#include +#elif defined(RAPIDJSON_NEON) +#include +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(old-style-cast) +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(switch-enum) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant +RAPIDJSON_DIAG_OFF(4702) // unreachable code +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#define RAPIDJSON_NOTHING /* deliberately empty */ +#ifndef RAPIDJSON_PARSE_ERROR_EARLY_RETURN +#define RAPIDJSON_PARSE_ERROR_EARLY_RETURN(value) \ + RAPIDJSON_MULTILINEMACRO_BEGIN \ + if (RAPIDJSON_UNLIKELY(HasParseError())) { return value; } \ + RAPIDJSON_MULTILINEMACRO_END +#endif +#define RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID \ + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(RAPIDJSON_NOTHING) +//!@endcond + +/*! \def RAPIDJSON_PARSE_ERROR_NORETURN + \ingroup RAPIDJSON_ERRORS + \brief Macro to indicate a parse error. + \param parseErrorCode \ref rapidjson::ParseErrorCode of the error + \param offset position of the error in JSON input (\c size_t) + + This macros can be used as a customization point for the internal + error handling mechanism of RapidJSON. + + A common usage model is to throw an exception instead of requiring the + caller to explicitly check the \ref rapidjson::GenericReader::Parse's + return value: + + \code + #define RAPIDJSON_PARSE_ERROR_NORETURN(parseErrorCode,offset) \ + throw ParseException(parseErrorCode, #parseErrorCode, offset) + + #include // std::runtime_error + #include "rapidjson/error/error.h" // rapidjson::ParseResult + + struct ParseException : std::runtime_error, rapidjson::ParseResult { + ParseException(rapidjson::ParseErrorCode code, const char* msg, size_t offset) + : std::runtime_error(msg), ParseResult(code, offset) {} + }; + + #include "rapidjson/reader.h" + \endcode + + \see RAPIDJSON_PARSE_ERROR, rapidjson::GenericReader::Parse + */ +#ifndef RAPIDJSON_PARSE_ERROR_NORETURN +#define RAPIDJSON_PARSE_ERROR_NORETURN(parseErrorCode, offset) \ + RAPIDJSON_MULTILINEMACRO_BEGIN \ + RAPIDJSON_ASSERT(!HasParseError()); /* Error can only be assigned once */ \ + SetParseError(parseErrorCode, offset); \ + RAPIDJSON_MULTILINEMACRO_END +#endif + +/*! \def RAPIDJSON_PARSE_ERROR + \ingroup RAPIDJSON_ERRORS + \brief (Internal) macro to indicate and handle a parse error. + \param parseErrorCode \ref rapidjson::ParseErrorCode of the error + \param offset position of the error in JSON input (\c size_t) + + Invokes RAPIDJSON_PARSE_ERROR_NORETURN and stops the parsing. + + \see RAPIDJSON_PARSE_ERROR_NORETURN + \hideinitializer + */ +#ifndef RAPIDJSON_PARSE_ERROR +#define RAPIDJSON_PARSE_ERROR(parseErrorCode, offset) \ + RAPIDJSON_MULTILINEMACRO_BEGIN \ + RAPIDJSON_PARSE_ERROR_NORETURN(parseErrorCode, offset); \ + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; \ + RAPIDJSON_MULTILINEMACRO_END +#endif + +#include "error/error.h" // ParseErrorCode, ParseResult + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// ParseFlag + +/*! \def RAPIDJSON_PARSE_DEFAULT_FLAGS + \ingroup RAPIDJSON_CONFIG + \brief User-defined kParseDefaultFlags definition. + + User can define this as any \c ParseFlag combinations. +*/ +#ifndef RAPIDJSON_PARSE_DEFAULT_FLAGS +#define RAPIDJSON_PARSE_DEFAULT_FLAGS kParseNoFlags +#endif + +//! Combination of parseFlags +/*! \see Reader::Parse, Document::Parse, Document::ParseInsitu, Document::ParseStream + */ +enum ParseFlag { + kParseNoFlags = 0, //!< No flags are set. + kParseInsituFlag = 1, //!< In-situ(destructive) parsing. + kParseValidateEncodingFlag = 2, //!< Validate encoding of JSON strings. + kParseIterativeFlag = 4, //!< Iterative(constant complexity in terms of function call stack size) parsing. + kParseStopWhenDoneFlag = 8, //!< After parsing a complete JSON root from stream, stop further processing the rest of stream. When this flag is used, parser will not generate kParseErrorDocumentRootNotSingular error. + kParseFullPrecisionFlag = 16, //!< Parse number in full precision (but slower). + kParseCommentsFlag = 32, //!< Allow one-line (//) and multi-line (/**/) comments. + kParseNumbersAsStringsFlag = 64, //!< Parse all numbers (ints/doubles) as strings. + kParseTrailingCommasFlag = 128, //!< Allow trailing commas at the end of objects and arrays. + kParseNanAndInfFlag = 256, //!< Allow parsing NaN, Inf, Infinity, -Inf and -Infinity as doubles. + kParseEscapedApostropheFlag = 512, //!< Allow escaped apostrophe in strings. + kParseDefaultFlags = RAPIDJSON_PARSE_DEFAULT_FLAGS //!< Default parse flags. Can be customized by defining RAPIDJSON_PARSE_DEFAULT_FLAGS +}; + +/////////////////////////////////////////////////////////////////////////////// +// Handler + +/*! \class rapidjson::Handler + \brief Concept for receiving events from GenericReader upon parsing. + The functions return true if no error occurs. If they return false, + the event publisher should terminate the process. +\code +concept Handler { + typename Ch; + + bool Null(); + bool Bool(bool b); + bool Int(int i); + bool Uint(unsigned i); + bool Int64(int64_t i); + bool Uint64(uint64_t i); + bool Double(double d); + /// enabled via kParseNumbersAsStringsFlag, string is not null-terminated (use length) + bool RawNumber(const Ch* str, SizeType length, bool copy); + bool String(const Ch* str, SizeType length, bool copy); + bool StartObject(); + bool Key(const Ch* str, SizeType length, bool copy); + bool EndObject(SizeType memberCount); + bool StartArray(); + bool EndArray(SizeType elementCount); +}; +\endcode +*/ +/////////////////////////////////////////////////////////////////////////////// +// BaseReaderHandler + +//! Default implementation of Handler. +/*! This can be used as base class of any reader handler. + \note implements Handler concept +*/ +template, typename Derived = void> +struct BaseReaderHandler { + typedef typename Encoding::Ch Ch; + + typedef typename internal::SelectIf, BaseReaderHandler, Derived>::Type Override; + + bool Default() { return true; } + bool Null() { return static_cast(*this).Default(); } + bool Bool(bool) { return static_cast(*this).Default(); } + bool Int(int) { return static_cast(*this).Default(); } + bool Uint(unsigned) { return static_cast(*this).Default(); } + bool Int64(int64_t) { return static_cast(*this).Default(); } + bool Uint64(uint64_t) { return static_cast(*this).Default(); } + bool Double(double) { return static_cast(*this).Default(); } + /// enabled via kParseNumbersAsStringsFlag, string is not null-terminated (use length) + bool RawNumber(const Ch* str, SizeType len, bool copy) { return static_cast(*this).String(str, len, copy); } + bool String(const Ch*, SizeType, bool) { return static_cast(*this).Default(); } + bool StartObject() { return static_cast(*this).Default(); } + bool Key(const Ch* str, SizeType len, bool copy) { return static_cast(*this).String(str, len, copy); } + bool EndObject(SizeType) { return static_cast(*this).Default(); } + bool StartArray() { return static_cast(*this).Default(); } + bool EndArray(SizeType) { return static_cast(*this).Default(); } +}; + +/////////////////////////////////////////////////////////////////////////////// +// StreamLocalCopy + +namespace internal { + +template::copyOptimization> +class StreamLocalCopy; + +//! Do copy optimization. +template +class StreamLocalCopy { +public: + StreamLocalCopy(Stream& original) : s(original), original_(original) {} + ~StreamLocalCopy() { original_ = s; } + + Stream s; + +private: + StreamLocalCopy& operator=(const StreamLocalCopy&) /* = delete */; + + Stream& original_; +}; + +//! Keep reference. +template +class StreamLocalCopy { +public: + StreamLocalCopy(Stream& original) : s(original) {} + + Stream& s; + +private: + StreamLocalCopy& operator=(const StreamLocalCopy&) /* = delete */; +}; + +} // namespace internal + +/////////////////////////////////////////////////////////////////////////////// +// SkipWhitespace + +//! Skip the JSON white spaces in a stream. +/*! \param is A input stream for skipping white spaces. + \note This function has SSE2/SSE4.2 specialization. +*/ +template +void SkipWhitespace(InputStream& is) { + internal::StreamLocalCopy copy(is); + InputStream& s(copy.s); + + typename InputStream::Ch c; + while ((c = s.Peek()) == ' ' || c == '\n' || c == '\r' || c == '\t') + s.Take(); +} + +inline const char* SkipWhitespace(const char* p, const char* end) { + while (p != end && (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')) + ++p; + return p; +} + +#ifdef RAPIDJSON_SSE42 +//! Skip whitespace with SSE 4.2 pcmpistrm instruction, testing 16 8-byte characters at once. +inline const char *SkipWhitespace_SIMD(const char* p) { + // Fast return for single non-whitespace + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // 16-byte align to the next boundary + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // The rest of string using SIMD + static const char whitespace[16] = " \n\r\t"; + const __m128i w = _mm_loadu_si128(reinterpret_cast(&whitespace[0])); + + for (;; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const int r = _mm_cmpistri(w, s, _SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_LEAST_SIGNIFICANT | _SIDD_NEGATIVE_POLARITY); + if (r != 16) // some of characters is non-whitespace + return p + r; + } +} + +inline const char *SkipWhitespace_SIMD(const char* p, const char* end) { + // Fast return for single non-whitespace + if (p != end && (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')) + ++p; + else + return p; + + // The middle of string using SIMD + static const char whitespace[16] = " \n\r\t"; + const __m128i w = _mm_loadu_si128(reinterpret_cast(&whitespace[0])); + + for (; p <= end - 16; p += 16) { + const __m128i s = _mm_loadu_si128(reinterpret_cast(p)); + const int r = _mm_cmpistri(w, s, _SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_LEAST_SIGNIFICANT | _SIDD_NEGATIVE_POLARITY); + if (r != 16) // some of characters is non-whitespace + return p + r; + } + + return SkipWhitespace(p, end); +} + +#elif defined(RAPIDJSON_SSE2) + +//! Skip whitespace with SSE2 instructions, testing 16 8-byte characters at once. +inline const char *SkipWhitespace_SIMD(const char* p) { + // Fast return for single non-whitespace + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // 16-byte align to the next boundary + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // The rest of string + #define C16(c) { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c } + static const char whitespaces[4][16] = { C16(' '), C16('\n'), C16('\r'), C16('\t') }; + #undef C16 + + const __m128i w0 = _mm_loadu_si128(reinterpret_cast(&whitespaces[0][0])); + const __m128i w1 = _mm_loadu_si128(reinterpret_cast(&whitespaces[1][0])); + const __m128i w2 = _mm_loadu_si128(reinterpret_cast(&whitespaces[2][0])); + const __m128i w3 = _mm_loadu_si128(reinterpret_cast(&whitespaces[3][0])); + + for (;; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + __m128i x = _mm_cmpeq_epi8(s, w0); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w1)); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w2)); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w3)); + unsigned short r = static_cast(~_mm_movemask_epi8(x)); + if (r != 0) { // some of characters may be non-whitespace +#ifdef _MSC_VER // Find the index of first non-whitespace + unsigned long offset; + _BitScanForward(&offset, r); + return p + offset; +#else + return p + __builtin_ffs(r) - 1; +#endif + } + } +} + +inline const char *SkipWhitespace_SIMD(const char* p, const char* end) { + // Fast return for single non-whitespace + if (p != end && (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')) + ++p; + else + return p; + + // The rest of string + #define C16(c) { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c } + static const char whitespaces[4][16] = { C16(' '), C16('\n'), C16('\r'), C16('\t') }; + #undef C16 + + const __m128i w0 = _mm_loadu_si128(reinterpret_cast(&whitespaces[0][0])); + const __m128i w1 = _mm_loadu_si128(reinterpret_cast(&whitespaces[1][0])); + const __m128i w2 = _mm_loadu_si128(reinterpret_cast(&whitespaces[2][0])); + const __m128i w3 = _mm_loadu_si128(reinterpret_cast(&whitespaces[3][0])); + + for (; p <= end - 16; p += 16) { + const __m128i s = _mm_loadu_si128(reinterpret_cast(p)); + __m128i x = _mm_cmpeq_epi8(s, w0); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w1)); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w2)); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w3)); + unsigned short r = static_cast(~_mm_movemask_epi8(x)); + if (r != 0) { // some of characters may be non-whitespace +#ifdef _MSC_VER // Find the index of first non-whitespace + unsigned long offset; + _BitScanForward(&offset, r); + return p + offset; +#else + return p + __builtin_ffs(r) - 1; +#endif + } + } + + return SkipWhitespace(p, end); +} + +#elif defined(RAPIDJSON_NEON) + +//! Skip whitespace with ARM Neon instructions, testing 16 8-byte characters at once. +inline const char *SkipWhitespace_SIMD(const char* p) { + // Fast return for single non-whitespace + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // 16-byte align to the next boundary + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + const uint8x16_t w0 = vmovq_n_u8(' '); + const uint8x16_t w1 = vmovq_n_u8('\n'); + const uint8x16_t w2 = vmovq_n_u8('\r'); + const uint8x16_t w3 = vmovq_n_u8('\t'); + + for (;; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, w0); + x = vorrq_u8(x, vceqq_u8(s, w1)); + x = vorrq_u8(x, vceqq_u8(s, w2)); + x = vorrq_u8(x, vceqq_u8(s, w3)); + + x = vmvnq_u8(x); // Negate + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + return p + 8 + (lz >> 3); + } + } else { + uint32_t lz = internal::clzll(low); + return p + (lz >> 3); + } + } +} + +inline const char *SkipWhitespace_SIMD(const char* p, const char* end) { + // Fast return for single non-whitespace + if (p != end && (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')) + ++p; + else + return p; + + const uint8x16_t w0 = vmovq_n_u8(' '); + const uint8x16_t w1 = vmovq_n_u8('\n'); + const uint8x16_t w2 = vmovq_n_u8('\r'); + const uint8x16_t w3 = vmovq_n_u8('\t'); + + for (; p <= end - 16; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, w0); + x = vorrq_u8(x, vceqq_u8(s, w1)); + x = vorrq_u8(x, vceqq_u8(s, w2)); + x = vorrq_u8(x, vceqq_u8(s, w3)); + + x = vmvnq_u8(x); // Negate + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + return p + 8 + (lz >> 3); + } + } else { + uint32_t lz = internal::clzll(low); + return p + (lz >> 3); + } + } + + return SkipWhitespace(p, end); +} + +#endif // RAPIDJSON_NEON + +#ifdef RAPIDJSON_SIMD +//! Template function specialization for InsituStringStream +template<> inline void SkipWhitespace(InsituStringStream& is) { + is.src_ = const_cast(SkipWhitespace_SIMD(is.src_)); +} + +//! Template function specialization for StringStream +template<> inline void SkipWhitespace(StringStream& is) { + is.src_ = SkipWhitespace_SIMD(is.src_); +} + +template<> inline void SkipWhitespace(EncodedInputStream, MemoryStream>& is) { + is.is_.src_ = SkipWhitespace_SIMD(is.is_.src_, is.is_.end_); +} +#endif // RAPIDJSON_SIMD + +/////////////////////////////////////////////////////////////////////////////// +// GenericReader + +//! SAX-style JSON parser. Use \ref Reader for UTF8 encoding and default allocator. +/*! GenericReader parses JSON text from a stream, and send events synchronously to an + object implementing Handler concept. + + It needs to allocate a stack for storing a single decoded string during + non-destructive parsing. + + For in-situ parsing, the decoded string is directly written to the source + text string, no temporary buffer is required. + + A GenericReader object can be reused for parsing multiple JSON text. + + \tparam SourceEncoding Encoding of the input stream. + \tparam TargetEncoding Encoding of the parse output. + \tparam StackAllocator Allocator type for stack. +*/ +template +class GenericReader { +public: + typedef typename SourceEncoding::Ch Ch; //!< SourceEncoding character type + + //! Constructor. + /*! \param stackAllocator Optional allocator for allocating stack memory. (Only use for non-destructive parsing) + \param stackCapacity stack capacity in bytes for storing a single decoded string. (Only use for non-destructive parsing) + */ + GenericReader(StackAllocator* stackAllocator = 0, size_t stackCapacity = kDefaultStackCapacity) : + stack_(stackAllocator, stackCapacity), parseResult_(), state_(IterativeParsingStartState) {} + + //! Parse JSON text. + /*! \tparam parseFlags Combination of \ref ParseFlag. + \tparam InputStream Type of input stream, implementing Stream concept. + \tparam Handler Type of handler, implementing Handler concept. + \param is Input stream to be parsed. + \param handler The handler to receive events. + \return Whether the parsing is successful. + */ + template + ParseResult Parse(InputStream& is, Handler& handler) { + if (parseFlags & kParseIterativeFlag) + return IterativeParse(is, handler); + + parseResult_.Clear(); + + ClearStackOnExit scope(*this); + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + + if (RAPIDJSON_UNLIKELY(is.Peek() == '\0')) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorDocumentEmpty, is.Tell()); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + } + else { + ParseValue(is, handler); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + + if (!(parseFlags & kParseStopWhenDoneFlag)) { + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + + if (RAPIDJSON_UNLIKELY(is.Peek() != '\0')) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorDocumentRootNotSingular, is.Tell()); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + } + } + } + + return parseResult_; + } + + //! Parse JSON text (with \ref kParseDefaultFlags) + /*! \tparam InputStream Type of input stream, implementing Stream concept + \tparam Handler Type of handler, implementing Handler concept. + \param is Input stream to be parsed. + \param handler The handler to receive events. + \return Whether the parsing is successful. + */ + template + ParseResult Parse(InputStream& is, Handler& handler) { + return Parse(is, handler); + } + + //! Initialize JSON text token-by-token parsing + /*! + */ + void IterativeParseInit() { + parseResult_.Clear(); + state_ = IterativeParsingStartState; + } + + //! Parse one token from JSON text + /*! \tparam InputStream Type of input stream, implementing Stream concept + \tparam Handler Type of handler, implementing Handler concept. + \param is Input stream to be parsed. + \param handler The handler to receive events. + \return Whether the parsing is successful. + */ + template + bool IterativeParseNext(InputStream& is, Handler& handler) { + while (RAPIDJSON_LIKELY(is.Peek() != '\0')) { + SkipWhitespaceAndComments(is); + + Token t = Tokenize(is.Peek()); + IterativeParsingState n = Predict(state_, t); + IterativeParsingState d = Transit(state_, t, n, is, handler); + + // If we've finished or hit an error... + if (RAPIDJSON_UNLIKELY(IsIterativeParsingCompleteState(d))) { + // Report errors. + if (d == IterativeParsingErrorState) { + HandleError(state_, is); + return false; + } + + // Transition to the finish state. + RAPIDJSON_ASSERT(d == IterativeParsingFinishState); + state_ = d; + + // If StopWhenDone is not set... + if (!(parseFlags & kParseStopWhenDoneFlag)) { + // ... and extra non-whitespace data is found... + SkipWhitespaceAndComments(is); + if (is.Peek() != '\0') { + // ... this is considered an error. + HandleError(state_, is); + return false; + } + } + + // Success! We are done! + return true; + } + + // Transition to the new state. + state_ = d; + + // If we parsed anything other than a delimiter, we invoked the handler, so we can return true now. + if (!IsIterativeParsingDelimiterState(n)) + return true; + } + + // We reached the end of file. + stack_.Clear(); + + if (state_ != IterativeParsingFinishState) { + HandleError(state_, is); + return false; + } + + return true; + } + + //! Check if token-by-token parsing JSON text is complete + /*! \return Whether the JSON has been fully decoded. + */ + RAPIDJSON_FORCEINLINE bool IterativeParseComplete() const { + return IsIterativeParsingCompleteState(state_); + } + + //! Whether a parse error has occurred in the last parsing. + bool HasParseError() const { return parseResult_.IsError(); } + + //! Get the \ref ParseErrorCode of last parsing. + ParseErrorCode GetParseErrorCode() const { return parseResult_.Code(); } + + //! Get the position of last parsing error in input, 0 otherwise. + size_t GetErrorOffset() const { return parseResult_.Offset(); } + +protected: + void SetParseError(ParseErrorCode code, size_t offset) { parseResult_.Set(code, offset); } + +private: + // Prohibit copy constructor & assignment operator. + GenericReader(const GenericReader&); + GenericReader& operator=(const GenericReader&); + + void ClearStack() { stack_.Clear(); } + + // clear stack on any exit from ParseStream, e.g. due to exception + struct ClearStackOnExit { + explicit ClearStackOnExit(GenericReader& r) : r_(r) {} + ~ClearStackOnExit() { r_.ClearStack(); } + private: + GenericReader& r_; + ClearStackOnExit(const ClearStackOnExit&); + ClearStackOnExit& operator=(const ClearStackOnExit&); + }; + + template + void SkipWhitespaceAndComments(InputStream& is) { + SkipWhitespace(is); + + if (parseFlags & kParseCommentsFlag) { + while (RAPIDJSON_UNLIKELY(Consume(is, '/'))) { + if (Consume(is, '*')) { + while (true) { + if (RAPIDJSON_UNLIKELY(is.Peek() == '\0')) + RAPIDJSON_PARSE_ERROR(kParseErrorUnspecificSyntaxError, is.Tell()); + else if (Consume(is, '*')) { + if (Consume(is, '/')) + break; + } + else + is.Take(); + } + } + else if (RAPIDJSON_LIKELY(Consume(is, '/'))) + while (is.Peek() != '\0' && is.Take() != '\n') {} + else + RAPIDJSON_PARSE_ERROR(kParseErrorUnspecificSyntaxError, is.Tell()); + + SkipWhitespace(is); + } + } + } + + // Parse object: { string : value, ... } + template + void ParseObject(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == '{'); + is.Take(); // Skip '{' + + if (RAPIDJSON_UNLIKELY(!handler.StartObject())) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + if (Consume(is, '}')) { + if (RAPIDJSON_UNLIKELY(!handler.EndObject(0))) // empty object + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + return; + } + + for (SizeType memberCount = 0;;) { + if (RAPIDJSON_UNLIKELY(is.Peek() != '"')) + RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissName, is.Tell()); + + ParseString(is, handler, true); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + if (RAPIDJSON_UNLIKELY(!Consume(is, ':'))) + RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissColon, is.Tell()); + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + ParseValue(is, handler); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + ++memberCount; + + switch (is.Peek()) { + case ',': + is.Take(); + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + break; + case '}': + is.Take(); + if (RAPIDJSON_UNLIKELY(!handler.EndObject(memberCount))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + return; + default: + RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissCommaOrCurlyBracket, is.Tell()); break; // This useless break is only for making warning and coverage happy + } + + if (parseFlags & kParseTrailingCommasFlag) { + if (is.Peek() == '}') { + if (RAPIDJSON_UNLIKELY(!handler.EndObject(memberCount))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + is.Take(); + return; + } + } + } + } + + // Parse array: [ value, ... ] + template + void ParseArray(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == '['); + is.Take(); // Skip '[' + + if (RAPIDJSON_UNLIKELY(!handler.StartArray())) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + if (Consume(is, ']')) { + if (RAPIDJSON_UNLIKELY(!handler.EndArray(0))) // empty array + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + return; + } + + for (SizeType elementCount = 0;;) { + ParseValue(is, handler); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + ++elementCount; + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + if (Consume(is, ',')) { + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + } + else if (Consume(is, ']')) { + if (RAPIDJSON_UNLIKELY(!handler.EndArray(elementCount))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + return; + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorArrayMissCommaOrSquareBracket, is.Tell()); + + if (parseFlags & kParseTrailingCommasFlag) { + if (is.Peek() == ']') { + if (RAPIDJSON_UNLIKELY(!handler.EndArray(elementCount))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + is.Take(); + return; + } + } + } + } + + template + void ParseNull(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == 'n'); + is.Take(); + + if (RAPIDJSON_LIKELY(Consume(is, 'u') && Consume(is, 'l') && Consume(is, 'l'))) { + if (RAPIDJSON_UNLIKELY(!handler.Null())) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, is.Tell()); + } + + template + void ParseTrue(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == 't'); + is.Take(); + + if (RAPIDJSON_LIKELY(Consume(is, 'r') && Consume(is, 'u') && Consume(is, 'e'))) { + if (RAPIDJSON_UNLIKELY(!handler.Bool(true))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, is.Tell()); + } + + template + void ParseFalse(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == 'f'); + is.Take(); + + if (RAPIDJSON_LIKELY(Consume(is, 'a') && Consume(is, 'l') && Consume(is, 's') && Consume(is, 'e'))) { + if (RAPIDJSON_UNLIKELY(!handler.Bool(false))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, is.Tell()); + } + + template + RAPIDJSON_FORCEINLINE static bool Consume(InputStream& is, typename InputStream::Ch expect) { + if (RAPIDJSON_LIKELY(is.Peek() == expect)) { + is.Take(); + return true; + } + else + return false; + } + + // Helper function to parse four hexadecimal digits in \uXXXX in ParseString(). + template + unsigned ParseHex4(InputStream& is, size_t escapeOffset) { + unsigned codepoint = 0; + for (int i = 0; i < 4; i++) { + Ch c = is.Peek(); + codepoint <<= 4; + codepoint += static_cast(c); + if (c >= '0' && c <= '9') + codepoint -= '0'; + else if (c >= 'A' && c <= 'F') + codepoint -= 'A' - 10; + else if (c >= 'a' && c <= 'f') + codepoint -= 'a' - 10; + else { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorStringUnicodeEscapeInvalidHex, escapeOffset); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(0); + } + is.Take(); + } + return codepoint; + } + + template + class StackStream { + public: + typedef CharType Ch; + + StackStream(internal::Stack& stack) : stack_(stack), length_(0) {} + RAPIDJSON_FORCEINLINE void Put(Ch c) { + *stack_.template Push() = c; + ++length_; + } + + RAPIDJSON_FORCEINLINE void* Push(SizeType count) { + length_ += count; + return stack_.template Push(count); + } + + size_t Length() const { return length_; } + + Ch* Pop() { + return stack_.template Pop(length_); + } + + private: + StackStream(const StackStream&); + StackStream& operator=(const StackStream&); + + internal::Stack& stack_; + SizeType length_; + }; + + // Parse string and generate String event. Different code paths for kParseInsituFlag. + template + void ParseString(InputStream& is, Handler& handler, bool isKey = false) { + internal::StreamLocalCopy copy(is); + InputStream& s(copy.s); + + RAPIDJSON_ASSERT(s.Peek() == '\"'); + s.Take(); // Skip '\"' + + bool success = false; + if (parseFlags & kParseInsituFlag) { + typename InputStream::Ch *head = s.PutBegin(); + ParseStringToStream(s, s); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + size_t length = s.PutEnd(head) - 1; + RAPIDJSON_ASSERT(length <= 0xFFFFFFFF); + const typename TargetEncoding::Ch* const str = reinterpret_cast(head); + success = (isKey ? handler.Key(str, SizeType(length), false) : handler.String(str, SizeType(length), false)); + } + else { + StackStream stackStream(stack_); + ParseStringToStream(s, stackStream); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + SizeType length = static_cast(stackStream.Length()) - 1; + const typename TargetEncoding::Ch* const str = stackStream.Pop(); + success = (isKey ? handler.Key(str, length, true) : handler.String(str, length, true)); + } + if (RAPIDJSON_UNLIKELY(!success)) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, s.Tell()); + } + + // Parse string to an output is + // This function handles the prefix/suffix double quotes, escaping, and optional encoding validation. + template + RAPIDJSON_FORCEINLINE void ParseStringToStream(InputStream& is, OutputStream& os) { +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#define Z16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + static const char escape[256] = { + Z16, Z16, 0, 0,'\"', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '/', + Z16, Z16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,'\\', 0, 0, 0, + 0, 0,'\b', 0, 0, 0,'\f', 0, 0, 0, 0, 0, 0, 0,'\n', 0, + 0, 0,'\r', 0,'\t', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + Z16, Z16, Z16, Z16, Z16, Z16, Z16, Z16 + }; +#undef Z16 +//!@endcond + + for (;;) { + // Scan and copy string before "\\\"" or < 0x20. This is an optional optimzation. + if (!(parseFlags & kParseValidateEncodingFlag)) + ScanCopyUnescapedString(is, os); + + Ch c = is.Peek(); + if (RAPIDJSON_UNLIKELY(c == '\\')) { // Escape + size_t escapeOffset = is.Tell(); // For invalid escaping, report the initial '\\' as error offset + is.Take(); + Ch e = is.Peek(); + if ((sizeof(Ch) == 1 || unsigned(e) < 256) && RAPIDJSON_LIKELY(escape[static_cast(e)])) { + is.Take(); + os.Put(static_cast(escape[static_cast(e)])); + } + else if ((parseFlags & kParseEscapedApostropheFlag) && RAPIDJSON_LIKELY(e == '\'')) { // Allow escaped apostrophe + is.Take(); + os.Put('\''); + } + else if (RAPIDJSON_LIKELY(e == 'u')) { // Unicode + is.Take(); + unsigned codepoint = ParseHex4(is, escapeOffset); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + if (RAPIDJSON_UNLIKELY(codepoint >= 0xD800 && codepoint <= 0xDFFF)) { + // high surrogate, check if followed by valid low surrogate + if (RAPIDJSON_LIKELY(codepoint <= 0xDBFF)) { + // Handle UTF-16 surrogate pair + if (RAPIDJSON_UNLIKELY(!Consume(is, '\\') || !Consume(is, 'u'))) + RAPIDJSON_PARSE_ERROR(kParseErrorStringUnicodeSurrogateInvalid, escapeOffset); + unsigned codepoint2 = ParseHex4(is, escapeOffset); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + if (RAPIDJSON_UNLIKELY(codepoint2 < 0xDC00 || codepoint2 > 0xDFFF)) + RAPIDJSON_PARSE_ERROR(kParseErrorStringUnicodeSurrogateInvalid, escapeOffset); + codepoint = (((codepoint - 0xD800) << 10) | (codepoint2 - 0xDC00)) + 0x10000; + } + // single low surrogate + else + { + RAPIDJSON_PARSE_ERROR(kParseErrorStringUnicodeSurrogateInvalid, escapeOffset); + } + } + TEncoding::Encode(os, codepoint); + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorStringEscapeInvalid, escapeOffset); + } + else if (RAPIDJSON_UNLIKELY(c == '"')) { // Closing double quote + is.Take(); + os.Put('\0'); // null-terminate the string + return; + } + else if (RAPIDJSON_UNLIKELY(static_cast(c) < 0x20)) { // RFC 4627: unescaped = %x20-21 / %x23-5B / %x5D-10FFFF + if (c == '\0') + RAPIDJSON_PARSE_ERROR(kParseErrorStringMissQuotationMark, is.Tell()); + else + RAPIDJSON_PARSE_ERROR(kParseErrorStringInvalidEncoding, is.Tell()); + } + else { + size_t offset = is.Tell(); + if (RAPIDJSON_UNLIKELY((parseFlags & kParseValidateEncodingFlag ? + !Transcoder::Validate(is, os) : + !Transcoder::Transcode(is, os)))) + RAPIDJSON_PARSE_ERROR(kParseErrorStringInvalidEncoding, offset); + } + } + } + + template + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(InputStream&, OutputStream&) { + // Do nothing for generic version + } + +#if defined(RAPIDJSON_SSE2) || defined(RAPIDJSON_SSE42) + // StringStream -> StackStream + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(StringStream& is, StackStream& os) { + const char* p = is.src_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = p; + return; + } + else + os.Put(*p++); + + // The rest of string using SIMD + static const char dquote[16] = { '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"' }; + static const char bslash[16] = { '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\' }; + static const char space[16] = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F }; + const __m128i dq = _mm_loadu_si128(reinterpret_cast(&dquote[0])); + const __m128i bs = _mm_loadu_si128(reinterpret_cast(&bslash[0])); + const __m128i sp = _mm_loadu_si128(reinterpret_cast(&space[0])); + + for (;; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const __m128i t1 = _mm_cmpeq_epi8(s, dq); + const __m128i t2 = _mm_cmpeq_epi8(s, bs); + const __m128i t3 = _mm_cmpeq_epi8(_mm_max_epu8(s, sp), sp); // s < 0x20 <=> max(s, 0x1F) == 0x1F + const __m128i x = _mm_or_si128(_mm_or_si128(t1, t2), t3); + unsigned short r = static_cast(_mm_movemask_epi8(x)); + if (RAPIDJSON_UNLIKELY(r != 0)) { // some of characters is escaped + SizeType length; + #ifdef _MSC_VER // Find the index of first escaped + unsigned long offset; + _BitScanForward(&offset, r); + length = offset; + #else + length = static_cast(__builtin_ffs(r) - 1); + #endif + if (length != 0) { + char* q = reinterpret_cast(os.Push(length)); + for (size_t i = 0; i < length; i++) + q[i] = p[i]; + + p += length; + } + break; + } + _mm_storeu_si128(reinterpret_cast<__m128i *>(os.Push(16)), s); + } + + is.src_ = p; + } + + // InsituStringStream -> InsituStringStream + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(InsituStringStream& is, InsituStringStream& os) { + RAPIDJSON_ASSERT(&is == &os); + (void)os; + + if (is.src_ == is.dst_) { + SkipUnescapedString(is); + return; + } + + char* p = is.src_; + char *q = is.dst_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = p; + is.dst_ = q; + return; + } + else + *q++ = *p++; + + // The rest of string using SIMD + static const char dquote[16] = { '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"' }; + static const char bslash[16] = { '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\' }; + static const char space[16] = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F }; + const __m128i dq = _mm_loadu_si128(reinterpret_cast(&dquote[0])); + const __m128i bs = _mm_loadu_si128(reinterpret_cast(&bslash[0])); + const __m128i sp = _mm_loadu_si128(reinterpret_cast(&space[0])); + + for (;; p += 16, q += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const __m128i t1 = _mm_cmpeq_epi8(s, dq); + const __m128i t2 = _mm_cmpeq_epi8(s, bs); + const __m128i t3 = _mm_cmpeq_epi8(_mm_max_epu8(s, sp), sp); // s < 0x20 <=> max(s, 0x1F) == 0x1F + const __m128i x = _mm_or_si128(_mm_or_si128(t1, t2), t3); + unsigned short r = static_cast(_mm_movemask_epi8(x)); + if (RAPIDJSON_UNLIKELY(r != 0)) { // some of characters is escaped + size_t length; +#ifdef _MSC_VER // Find the index of first escaped + unsigned long offset; + _BitScanForward(&offset, r); + length = offset; +#else + length = static_cast(__builtin_ffs(r) - 1); +#endif + for (const char* pend = p + length; p != pend; ) + *q++ = *p++; + break; + } + _mm_storeu_si128(reinterpret_cast<__m128i *>(q), s); + } + + is.src_ = p; + is.dst_ = q; + } + + // When read/write pointers are the same for insitu stream, just skip unescaped characters + static RAPIDJSON_FORCEINLINE void SkipUnescapedString(InsituStringStream& is) { + RAPIDJSON_ASSERT(is.src_ == is.dst_); + char* p = is.src_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + for (; p != nextAligned; p++) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = is.dst_ = p; + return; + } + + // The rest of string using SIMD + static const char dquote[16] = { '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"' }; + static const char bslash[16] = { '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\' }; + static const char space[16] = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F }; + const __m128i dq = _mm_loadu_si128(reinterpret_cast(&dquote[0])); + const __m128i bs = _mm_loadu_si128(reinterpret_cast(&bslash[0])); + const __m128i sp = _mm_loadu_si128(reinterpret_cast(&space[0])); + + for (;; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const __m128i t1 = _mm_cmpeq_epi8(s, dq); + const __m128i t2 = _mm_cmpeq_epi8(s, bs); + const __m128i t3 = _mm_cmpeq_epi8(_mm_max_epu8(s, sp), sp); // s < 0x20 <=> max(s, 0x1F) == 0x1F + const __m128i x = _mm_or_si128(_mm_or_si128(t1, t2), t3); + unsigned short r = static_cast(_mm_movemask_epi8(x)); + if (RAPIDJSON_UNLIKELY(r != 0)) { // some of characters is escaped + size_t length; +#ifdef _MSC_VER // Find the index of first escaped + unsigned long offset; + _BitScanForward(&offset, r); + length = offset; +#else + length = static_cast(__builtin_ffs(r) - 1); +#endif + p += length; + break; + } + } + + is.src_ = is.dst_ = p; + } +#elif defined(RAPIDJSON_NEON) + // StringStream -> StackStream + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(StringStream& is, StackStream& os) { + const char* p = is.src_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = p; + return; + } + else + os.Put(*p++); + + // The rest of string using SIMD + const uint8x16_t s0 = vmovq_n_u8('"'); + const uint8x16_t s1 = vmovq_n_u8('\\'); + const uint8x16_t s2 = vmovq_n_u8('\b'); + const uint8x16_t s3 = vmovq_n_u8(32); + + for (;; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, s0); + x = vorrq_u8(x, vceqq_u8(s, s1)); + x = vorrq_u8(x, vceqq_u8(s, s2)); + x = vorrq_u8(x, vcltq_u8(s, s3)); + + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + SizeType length = 0; + bool escaped = false; + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + length = 8 + (lz >> 3); + escaped = true; + } + } else { + uint32_t lz = internal::clzll(low); + length = lz >> 3; + escaped = true; + } + if (RAPIDJSON_UNLIKELY(escaped)) { // some of characters is escaped + if (length != 0) { + char* q = reinterpret_cast(os.Push(length)); + for (size_t i = 0; i < length; i++) + q[i] = p[i]; + + p += length; + } + break; + } + vst1q_u8(reinterpret_cast(os.Push(16)), s); + } + + is.src_ = p; + } + + // InsituStringStream -> InsituStringStream + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(InsituStringStream& is, InsituStringStream& os) { + RAPIDJSON_ASSERT(&is == &os); + (void)os; + + if (is.src_ == is.dst_) { + SkipUnescapedString(is); + return; + } + + char* p = is.src_; + char *q = is.dst_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = p; + is.dst_ = q; + return; + } + else + *q++ = *p++; + + // The rest of string using SIMD + const uint8x16_t s0 = vmovq_n_u8('"'); + const uint8x16_t s1 = vmovq_n_u8('\\'); + const uint8x16_t s2 = vmovq_n_u8('\b'); + const uint8x16_t s3 = vmovq_n_u8(32); + + for (;; p += 16, q += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, s0); + x = vorrq_u8(x, vceqq_u8(s, s1)); + x = vorrq_u8(x, vceqq_u8(s, s2)); + x = vorrq_u8(x, vcltq_u8(s, s3)); + + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + SizeType length = 0; + bool escaped = false; + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + length = 8 + (lz >> 3); + escaped = true; + } + } else { + uint32_t lz = internal::clzll(low); + length = lz >> 3; + escaped = true; + } + if (RAPIDJSON_UNLIKELY(escaped)) { // some of characters is escaped + for (const char* pend = p + length; p != pend; ) { + *q++ = *p++; + } + break; + } + vst1q_u8(reinterpret_cast(q), s); + } + + is.src_ = p; + is.dst_ = q; + } + + // When read/write pointers are the same for insitu stream, just skip unescaped characters + static RAPIDJSON_FORCEINLINE void SkipUnescapedString(InsituStringStream& is) { + RAPIDJSON_ASSERT(is.src_ == is.dst_); + char* p = is.src_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + for (; p != nextAligned; p++) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = is.dst_ = p; + return; + } + + // The rest of string using SIMD + const uint8x16_t s0 = vmovq_n_u8('"'); + const uint8x16_t s1 = vmovq_n_u8('\\'); + const uint8x16_t s2 = vmovq_n_u8('\b'); + const uint8x16_t s3 = vmovq_n_u8(32); + + for (;; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, s0); + x = vorrq_u8(x, vceqq_u8(s, s1)); + x = vorrq_u8(x, vceqq_u8(s, s2)); + x = vorrq_u8(x, vcltq_u8(s, s3)); + + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + p += 8 + (lz >> 3); + break; + } + } else { + uint32_t lz = internal::clzll(low); + p += lz >> 3; + break; + } + } + + is.src_ = is.dst_ = p; + } +#endif // RAPIDJSON_NEON + + template + class NumberStream; + + template + class NumberStream { + public: + typedef typename InputStream::Ch Ch; + + NumberStream(GenericReader& reader, InputStream& s) : is(s) { (void)reader; } + + RAPIDJSON_FORCEINLINE Ch Peek() const { return is.Peek(); } + RAPIDJSON_FORCEINLINE Ch TakePush() { return is.Take(); } + RAPIDJSON_FORCEINLINE Ch Take() { return is.Take(); } + RAPIDJSON_FORCEINLINE void Push(char) {} + + size_t Tell() { return is.Tell(); } + size_t Length() { return 0; } + const char* Pop() { return 0; } + + protected: + NumberStream& operator=(const NumberStream&); + + InputStream& is; + }; + + template + class NumberStream : public NumberStream { + typedef NumberStream Base; + public: + NumberStream(GenericReader& reader, InputStream& is) : Base(reader, is), stackStream(reader.stack_) {} + + RAPIDJSON_FORCEINLINE Ch TakePush() { + stackStream.Put(static_cast(Base::is.Peek())); + return Base::is.Take(); + } + + RAPIDJSON_FORCEINLINE void Push(char c) { + stackStream.Put(c); + } + + size_t Length() { return stackStream.Length(); } + + const char* Pop() { + stackStream.Put('\0'); + return stackStream.Pop(); + } + + private: + StackStream stackStream; + }; + + template + class NumberStream : public NumberStream { + typedef NumberStream Base; + public: + NumberStream(GenericReader& reader, InputStream& is) : Base(reader, is) {} + + RAPIDJSON_FORCEINLINE Ch Take() { return Base::TakePush(); } + }; + + template + void ParseNumber(InputStream& is, Handler& handler) { + internal::StreamLocalCopy copy(is); + NumberStream s(*this, copy.s); + + size_t startOffset = s.Tell(); + double d = 0.0; + bool useNanOrInf = false; + + // Parse minus + bool minus = Consume(s, '-'); + + // Parse int: zero / ( digit1-9 *DIGIT ) + unsigned i = 0; + uint64_t i64 = 0; + bool use64bit = false; + int significandDigit = 0; + if (RAPIDJSON_UNLIKELY(s.Peek() == '0')) { + i = 0; + s.TakePush(); + } + else if (RAPIDJSON_LIKELY(s.Peek() >= '1' && s.Peek() <= '9')) { + i = static_cast(s.TakePush() - '0'); + + if (minus) + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (RAPIDJSON_UNLIKELY(i >= 214748364)) { // 2^31 = 2147483648 + if (RAPIDJSON_LIKELY(i != 214748364 || s.Peek() > '8')) { + i64 = i; + use64bit = true; + break; + } + } + i = i * 10 + static_cast(s.TakePush() - '0'); + significandDigit++; + } + else + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (RAPIDJSON_UNLIKELY(i >= 429496729)) { // 2^32 - 1 = 4294967295 + if (RAPIDJSON_LIKELY(i != 429496729 || s.Peek() > '5')) { + i64 = i; + use64bit = true; + break; + } + } + i = i * 10 + static_cast(s.TakePush() - '0'); + significandDigit++; + } + } + // Parse NaN or Infinity here + else if ((parseFlags & kParseNanAndInfFlag) && RAPIDJSON_LIKELY((s.Peek() == 'I' || s.Peek() == 'N'))) { + if (Consume(s, 'N')) { + if (Consume(s, 'a') && Consume(s, 'N')) { + d = std::numeric_limits::quiet_NaN(); + useNanOrInf = true; + } + } + else if (RAPIDJSON_LIKELY(Consume(s, 'I'))) { + if (Consume(s, 'n') && Consume(s, 'f')) { + d = (minus ? -std::numeric_limits::infinity() : std::numeric_limits::infinity()); + useNanOrInf = true; + + if (RAPIDJSON_UNLIKELY(s.Peek() == 'i' && !(Consume(s, 'i') && Consume(s, 'n') + && Consume(s, 'i') && Consume(s, 't') && Consume(s, 'y')))) { + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, s.Tell()); + } + } + } + + if (RAPIDJSON_UNLIKELY(!useNanOrInf)) { + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, s.Tell()); + } + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, s.Tell()); + + // Parse 64bit int + bool useDouble = false; + if (use64bit) { + if (minus) + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (RAPIDJSON_UNLIKELY(i64 >= RAPIDJSON_UINT64_C2(0x0CCCCCCC, 0xCCCCCCCC))) // 2^63 = 9223372036854775808 + if (RAPIDJSON_LIKELY(i64 != RAPIDJSON_UINT64_C2(0x0CCCCCCC, 0xCCCCCCCC) || s.Peek() > '8')) { + d = static_cast(i64); + useDouble = true; + break; + } + i64 = i64 * 10 + static_cast(s.TakePush() - '0'); + significandDigit++; + } + else + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (RAPIDJSON_UNLIKELY(i64 >= RAPIDJSON_UINT64_C2(0x19999999, 0x99999999))) // 2^64 - 1 = 18446744073709551615 + if (RAPIDJSON_LIKELY(i64 != RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) || s.Peek() > '5')) { + d = static_cast(i64); + useDouble = true; + break; + } + i64 = i64 * 10 + static_cast(s.TakePush() - '0'); + significandDigit++; + } + } + + // Force double for big integer + if (useDouble) { + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + d = d * 10 + (s.TakePush() - '0'); + } + } + + // Parse frac = decimal-point 1*DIGIT + int expFrac = 0; + size_t decimalPosition; + if (Consume(s, '.')) { + decimalPosition = s.Length(); + + if (RAPIDJSON_UNLIKELY(!(s.Peek() >= '0' && s.Peek() <= '9'))) + RAPIDJSON_PARSE_ERROR(kParseErrorNumberMissFraction, s.Tell()); + + if (!useDouble) { +#if RAPIDJSON_64BIT + // Use i64 to store significand in 64-bit architecture + if (!use64bit) + i64 = i; + + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (i64 > RAPIDJSON_UINT64_C2(0x1FFFFF, 0xFFFFFFFF)) // 2^53 - 1 for fast path + break; + else { + i64 = i64 * 10 + static_cast(s.TakePush() - '0'); + --expFrac; + if (i64 != 0) + significandDigit++; + } + } + + d = static_cast(i64); +#else + // Use double to store significand in 32-bit architecture + d = static_cast(use64bit ? i64 : i); +#endif + useDouble = true; + } + + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (significandDigit < 17) { + d = d * 10.0 + (s.TakePush() - '0'); + --expFrac; + if (RAPIDJSON_LIKELY(d > 0.0)) + significandDigit++; + } + else + s.TakePush(); + } + } + else + decimalPosition = s.Length(); // decimal position at the end of integer. + + // Parse exp = e [ minus / plus ] 1*DIGIT + int exp = 0; + if (Consume(s, 'e') || Consume(s, 'E')) { + if (!useDouble) { + d = static_cast(use64bit ? i64 : i); + useDouble = true; + } + + bool expMinus = false; + if (Consume(s, '+')) + ; + else if (Consume(s, '-')) + expMinus = true; + + if (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + exp = static_cast(s.Take() - '0'); + if (expMinus) { + // (exp + expFrac) must not underflow int => we're detecting when -exp gets + // dangerously close to INT_MIN (a pessimistic next digit 9 would push it into + // underflow territory): + // + // -(exp * 10 + 9) + expFrac >= INT_MIN + // <=> exp <= (expFrac - INT_MIN - 9) / 10 + RAPIDJSON_ASSERT(expFrac <= 0); + int maxExp = (expFrac + 2147483639) / 10; + + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + exp = exp * 10 + static_cast(s.Take() - '0'); + if (RAPIDJSON_UNLIKELY(exp > maxExp)) { + while (RAPIDJSON_UNLIKELY(s.Peek() >= '0' && s.Peek() <= '9')) // Consume the rest of exponent + s.Take(); + } + } + } + else { // positive exp + int maxExp = 308 - expFrac; + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + exp = exp * 10 + static_cast(s.Take() - '0'); + if (RAPIDJSON_UNLIKELY(exp > maxExp)) + RAPIDJSON_PARSE_ERROR(kParseErrorNumberTooBig, startOffset); + } + } + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorNumberMissExponent, s.Tell()); + + if (expMinus) + exp = -exp; + } + + // Finish parsing, call event according to the type of number. + bool cont = true; + + if (parseFlags & kParseNumbersAsStringsFlag) { + if (parseFlags & kParseInsituFlag) { + s.Pop(); // Pop stack no matter if it will be used or not. + typename InputStream::Ch* head = is.PutBegin(); + const size_t length = s.Tell() - startOffset; + RAPIDJSON_ASSERT(length <= 0xFFFFFFFF); + // unable to insert the \0 character here, it will erase the comma after this number + const typename TargetEncoding::Ch* const str = reinterpret_cast(head); + cont = handler.RawNumber(str, SizeType(length), false); + } + else { + SizeType numCharsToCopy = static_cast(s.Length()); + StringStream srcStream(s.Pop()); + StackStream dstStream(stack_); + while (numCharsToCopy--) { + Transcoder, TargetEncoding>::Transcode(srcStream, dstStream); + } + dstStream.Put('\0'); + const typename TargetEncoding::Ch* str = dstStream.Pop(); + const SizeType length = static_cast(dstStream.Length()) - 1; + cont = handler.RawNumber(str, SizeType(length), true); + } + } + else { + size_t length = s.Length(); + const char* decimal = s.Pop(); // Pop stack no matter if it will be used or not. + + if (useDouble) { + int p = exp + expFrac; + if (parseFlags & kParseFullPrecisionFlag) + d = internal::StrtodFullPrecision(d, p, decimal, length, decimalPosition, exp); + else + d = internal::StrtodNormalPrecision(d, p); + + // Use > max, instead of == inf, to fix bogus warning -Wfloat-equal + if (d > (std::numeric_limits::max)()) { + // Overflow + // TODO: internal::StrtodX should report overflow (or underflow) + RAPIDJSON_PARSE_ERROR(kParseErrorNumberTooBig, startOffset); + } + + cont = handler.Double(minus ? -d : d); + } + else if (useNanOrInf) { + cont = handler.Double(d); + } + else { + if (use64bit) { + if (minus) + cont = handler.Int64(static_cast(~i64 + 1)); + else + cont = handler.Uint64(i64); + } + else { + if (minus) + cont = handler.Int(static_cast(~i + 1)); + else + cont = handler.Uint(i); + } + } + } + if (RAPIDJSON_UNLIKELY(!cont)) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, startOffset); + } + + // Parse any JSON value + template + void ParseValue(InputStream& is, Handler& handler) { + switch (is.Peek()) { + case 'n': ParseNull (is, handler); break; + case 't': ParseTrue (is, handler); break; + case 'f': ParseFalse (is, handler); break; + case '"': ParseString(is, handler); break; + case '{': ParseObject(is, handler); break; + case '[': ParseArray (is, handler); break; + default : + ParseNumber(is, handler); + break; + + } + } + + // Iterative Parsing + + // States + enum IterativeParsingState { + IterativeParsingFinishState = 0, // sink states at top + IterativeParsingErrorState, // sink states at top + IterativeParsingStartState, + + // Object states + IterativeParsingObjectInitialState, + IterativeParsingMemberKeyState, + IterativeParsingMemberValueState, + IterativeParsingObjectFinishState, + + // Array states + IterativeParsingArrayInitialState, + IterativeParsingElementState, + IterativeParsingArrayFinishState, + + // Single value state + IterativeParsingValueState, + + // Delimiter states (at bottom) + IterativeParsingElementDelimiterState, + IterativeParsingMemberDelimiterState, + IterativeParsingKeyValueDelimiterState, + + cIterativeParsingStateCount + }; + + // Tokens + enum Token { + LeftBracketToken = 0, + RightBracketToken, + + LeftCurlyBracketToken, + RightCurlyBracketToken, + + CommaToken, + ColonToken, + + StringToken, + FalseToken, + TrueToken, + NullToken, + NumberToken, + + kTokenCount + }; + + RAPIDJSON_FORCEINLINE Token Tokenize(Ch c) const { + +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#define N NumberToken +#define N16 N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N + // Maps from ASCII to Token + static const unsigned char tokenMap[256] = { + N16, // 00~0F + N16, // 10~1F + N, N, StringToken, N, N, N, N, N, N, N, N, N, CommaToken, N, N, N, // 20~2F + N, N, N, N, N, N, N, N, N, N, ColonToken, N, N, N, N, N, // 30~3F + N16, // 40~4F + N, N, N, N, N, N, N, N, N, N, N, LeftBracketToken, N, RightBracketToken, N, N, // 50~5F + N, N, N, N, N, N, FalseToken, N, N, N, N, N, N, N, NullToken, N, // 60~6F + N, N, N, N, TrueToken, N, N, N, N, N, N, LeftCurlyBracketToken, N, RightCurlyBracketToken, N, N, // 70~7F + N16, N16, N16, N16, N16, N16, N16, N16 // 80~FF + }; +#undef N +#undef N16 +//!@endcond + + if (sizeof(Ch) == 1 || static_cast(c) < 256) + return static_cast(tokenMap[static_cast(c)]); + else + return NumberToken; + } + + RAPIDJSON_FORCEINLINE IterativeParsingState Predict(IterativeParsingState state, Token token) const { + // current state x one lookahead token -> new state + static const char G[cIterativeParsingStateCount][kTokenCount] = { + // Finish(sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // Error(sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // Start + { + IterativeParsingArrayInitialState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingObjectInitialState, // Left curly bracket + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingValueState, // String + IterativeParsingValueState, // False + IterativeParsingValueState, // True + IterativeParsingValueState, // Null + IterativeParsingValueState // Number + }, + // ObjectInitial + { + IterativeParsingErrorState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingObjectFinishState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingMemberKeyState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // MemberKey + { + IterativeParsingErrorState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingKeyValueDelimiterState, // Colon + IterativeParsingErrorState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // MemberValue + { + IterativeParsingErrorState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingObjectFinishState, // Right curly bracket + IterativeParsingMemberDelimiterState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingErrorState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // ObjectFinish(sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // ArrayInitial + { + IterativeParsingArrayInitialState, // Left bracket(push Element state) + IterativeParsingArrayFinishState, // Right bracket + IterativeParsingObjectInitialState, // Left curly bracket(push Element state) + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingElementState, // String + IterativeParsingElementState, // False + IterativeParsingElementState, // True + IterativeParsingElementState, // Null + IterativeParsingElementState // Number + }, + // Element + { + IterativeParsingErrorState, // Left bracket + IterativeParsingArrayFinishState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingErrorState, // Right curly bracket + IterativeParsingElementDelimiterState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingErrorState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // ArrayFinish(sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // Single Value (sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // ElementDelimiter + { + IterativeParsingArrayInitialState, // Left bracket(push Element state) + IterativeParsingArrayFinishState, // Right bracket + IterativeParsingObjectInitialState, // Left curly bracket(push Element state) + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingElementState, // String + IterativeParsingElementState, // False + IterativeParsingElementState, // True + IterativeParsingElementState, // Null + IterativeParsingElementState // Number + }, + // MemberDelimiter + { + IterativeParsingErrorState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingObjectFinishState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingMemberKeyState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // KeyValueDelimiter + { + IterativeParsingArrayInitialState, // Left bracket(push MemberValue state) + IterativeParsingErrorState, // Right bracket + IterativeParsingObjectInitialState, // Left curly bracket(push MemberValue state) + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingMemberValueState, // String + IterativeParsingMemberValueState, // False + IterativeParsingMemberValueState, // True + IterativeParsingMemberValueState, // Null + IterativeParsingMemberValueState // Number + }, + }; // End of G + + return static_cast(G[state][token]); + } + + // Make an advance in the token stream and state based on the candidate destination state which was returned by Transit(). + // May return a new state on state pop. + template + RAPIDJSON_FORCEINLINE IterativeParsingState Transit(IterativeParsingState src, Token token, IterativeParsingState dst, InputStream& is, Handler& handler) { + (void)token; + + switch (dst) { + case IterativeParsingErrorState: + return dst; + + case IterativeParsingObjectInitialState: + case IterativeParsingArrayInitialState: + { + // Push the state(Element or MemeberValue) if we are nested in another array or value of member. + // In this way we can get the correct state on ObjectFinish or ArrayFinish by frame pop. + IterativeParsingState n = src; + if (src == IterativeParsingArrayInitialState || src == IterativeParsingElementDelimiterState) + n = IterativeParsingElementState; + else if (src == IterativeParsingKeyValueDelimiterState) + n = IterativeParsingMemberValueState; + // Push current state. + *stack_.template Push(1) = n; + // Initialize and push the member/element count. + *stack_.template Push(1) = 0; + // Call handler + bool hr = (dst == IterativeParsingObjectInitialState) ? handler.StartObject() : handler.StartArray(); + // On handler short circuits the parsing. + if (!hr) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorTermination, is.Tell()); + return IterativeParsingErrorState; + } + else { + is.Take(); + return dst; + } + } + + case IterativeParsingMemberKeyState: + ParseString(is, handler, true); + if (HasParseError()) + return IterativeParsingErrorState; + else + return dst; + + case IterativeParsingKeyValueDelimiterState: + RAPIDJSON_ASSERT(token == ColonToken); + is.Take(); + return dst; + + case IterativeParsingMemberValueState: + // Must be non-compound value. Or it would be ObjectInitial or ArrayInitial state. + ParseValue(is, handler); + if (HasParseError()) { + return IterativeParsingErrorState; + } + return dst; + + case IterativeParsingElementState: + // Must be non-compound value. Or it would be ObjectInitial or ArrayInitial state. + ParseValue(is, handler); + if (HasParseError()) { + return IterativeParsingErrorState; + } + return dst; + + case IterativeParsingMemberDelimiterState: + case IterativeParsingElementDelimiterState: + is.Take(); + // Update member/element count. + *stack_.template Top() = *stack_.template Top() + 1; + return dst; + + case IterativeParsingObjectFinishState: + { + // Transit from delimiter is only allowed when trailing commas are enabled + if (!(parseFlags & kParseTrailingCommasFlag) && src == IterativeParsingMemberDelimiterState) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorObjectMissName, is.Tell()); + return IterativeParsingErrorState; + } + // Get member count. + SizeType c = *stack_.template Pop(1); + // If the object is not empty, count the last member. + if (src == IterativeParsingMemberValueState) + ++c; + // Restore the state. + IterativeParsingState n = static_cast(*stack_.template Pop(1)); + // Transit to Finish state if this is the topmost scope. + if (n == IterativeParsingStartState) + n = IterativeParsingFinishState; + // Call handler + bool hr = handler.EndObject(c); + // On handler short circuits the parsing. + if (!hr) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorTermination, is.Tell()); + return IterativeParsingErrorState; + } + else { + is.Take(); + return n; + } + } + + case IterativeParsingArrayFinishState: + { + // Transit from delimiter is only allowed when trailing commas are enabled + if (!(parseFlags & kParseTrailingCommasFlag) && src == IterativeParsingElementDelimiterState) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorValueInvalid, is.Tell()); + return IterativeParsingErrorState; + } + // Get element count. + SizeType c = *stack_.template Pop(1); + // If the array is not empty, count the last element. + if (src == IterativeParsingElementState) + ++c; + // Restore the state. + IterativeParsingState n = static_cast(*stack_.template Pop(1)); + // Transit to Finish state if this is the topmost scope. + if (n == IterativeParsingStartState) + n = IterativeParsingFinishState; + // Call handler + bool hr = handler.EndArray(c); + // On handler short circuits the parsing. + if (!hr) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorTermination, is.Tell()); + return IterativeParsingErrorState; + } + else { + is.Take(); + return n; + } + } + + default: + // This branch is for IterativeParsingValueState actually. + // Use `default:` rather than + // `case IterativeParsingValueState:` is for code coverage. + + // The IterativeParsingStartState is not enumerated in this switch-case. + // It is impossible for that case. And it can be caught by following assertion. + + // The IterativeParsingFinishState is not enumerated in this switch-case either. + // It is a "derivative" state which cannot triggered from Predict() directly. + // Therefore it cannot happen here. And it can be caught by following assertion. + RAPIDJSON_ASSERT(dst == IterativeParsingValueState); + + // Must be non-compound value. Or it would be ObjectInitial or ArrayInitial state. + ParseValue(is, handler); + if (HasParseError()) { + return IterativeParsingErrorState; + } + return IterativeParsingFinishState; + } + } + + template + void HandleError(IterativeParsingState src, InputStream& is) { + if (HasParseError()) { + // Error flag has been set. + return; + } + + switch (src) { + case IterativeParsingStartState: RAPIDJSON_PARSE_ERROR(kParseErrorDocumentEmpty, is.Tell()); return; + case IterativeParsingFinishState: RAPIDJSON_PARSE_ERROR(kParseErrorDocumentRootNotSingular, is.Tell()); return; + case IterativeParsingObjectInitialState: + case IterativeParsingMemberDelimiterState: RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissName, is.Tell()); return; + case IterativeParsingMemberKeyState: RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissColon, is.Tell()); return; + case IterativeParsingMemberValueState: RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissCommaOrCurlyBracket, is.Tell()); return; + case IterativeParsingKeyValueDelimiterState: + case IterativeParsingArrayInitialState: + case IterativeParsingElementDelimiterState: RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, is.Tell()); return; + default: RAPIDJSON_ASSERT(src == IterativeParsingElementState); RAPIDJSON_PARSE_ERROR(kParseErrorArrayMissCommaOrSquareBracket, is.Tell()); return; + } + } + + RAPIDJSON_FORCEINLINE bool IsIterativeParsingDelimiterState(IterativeParsingState s) const { + return s >= IterativeParsingElementDelimiterState; + } + + RAPIDJSON_FORCEINLINE bool IsIterativeParsingCompleteState(IterativeParsingState s) const { + return s <= IterativeParsingErrorState; + } + + template + ParseResult IterativeParse(InputStream& is, Handler& handler) { + parseResult_.Clear(); + ClearStackOnExit scope(*this); + IterativeParsingState state = IterativeParsingStartState; + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + while (is.Peek() != '\0') { + Token t = Tokenize(is.Peek()); + IterativeParsingState n = Predict(state, t); + IterativeParsingState d = Transit(state, t, n, is, handler); + + if (d == IterativeParsingErrorState) { + HandleError(state, is); + break; + } + + state = d; + + // Do not further consume streams if a root JSON has been parsed. + if ((parseFlags & kParseStopWhenDoneFlag) && state == IterativeParsingFinishState) + break; + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + } + + // Handle the end of file. + if (state != IterativeParsingFinishState) + HandleError(state, is); + + return parseResult_; + } + + static const size_t kDefaultStackCapacity = 256; //!< Default stack capacity in bytes for storing a single decoded string. + internal::Stack stack_; //!< A stack for storing decoded string temporarily during non-destructive parsing. + ParseResult parseResult_; + IterativeParsingState state_; +}; // class GenericReader + +//! Reader with UTF8 encoding and default allocator. +typedef GenericReader, UTF8<> > Reader; + +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) || defined(_MSC_VER) +RAPIDJSON_DIAG_POP +#endif + + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_READER_H_ diff --git a/external/rlottie/src/lottie/rapidjson/schema.h b/external/rlottie/src/lottie/rapidjson/schema.h new file mode 100644 index 000000000..fc39d06c5 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/schema.h @@ -0,0 +1,2496 @@ +// Tencent is pleased to support the open source community by making RapidJSON available-> +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip-> All rights reserved-> +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License-> You may obtain a copy of the License at +// +// http://opensource->org/licenses/MIT +// +// 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-> + +#ifndef RAPIDJSON_SCHEMA_H_ +#define RAPIDJSON_SCHEMA_H_ + +#include "document.h" +#include "pointer.h" +#include "stringbuffer.h" +#include // abs, floor + +#if !defined(RAPIDJSON_SCHEMA_USE_INTERNALREGEX) +#define RAPIDJSON_SCHEMA_USE_INTERNALREGEX 1 +#else +#define RAPIDJSON_SCHEMA_USE_INTERNALREGEX 0 +#endif + +#if !RAPIDJSON_SCHEMA_USE_INTERNALREGEX && defined(RAPIDJSON_SCHEMA_USE_STDREGEX) && (__cplusplus >=201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)) +#define RAPIDJSON_SCHEMA_USE_STDREGEX 1 +#else +#define RAPIDJSON_SCHEMA_USE_STDREGEX 0 +#endif + +#if RAPIDJSON_SCHEMA_USE_INTERNALREGEX +#include "internal/regex.h" +#elif RAPIDJSON_SCHEMA_USE_STDREGEX +#include +#endif + +#if RAPIDJSON_SCHEMA_USE_INTERNALREGEX || RAPIDJSON_SCHEMA_USE_STDREGEX +#define RAPIDJSON_SCHEMA_HAS_REGEX 1 +#else +#define RAPIDJSON_SCHEMA_HAS_REGEX 0 +#endif + +#ifndef RAPIDJSON_SCHEMA_VERBOSE +#define RAPIDJSON_SCHEMA_VERBOSE 0 +#endif + +#if RAPIDJSON_SCHEMA_VERBOSE +#include "stringbuffer.h" +#endif + +RAPIDJSON_DIAG_PUSH + +#if defined(__GNUC__) +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_OFF(weak-vtables) +RAPIDJSON_DIAG_OFF(exit-time-destructors) +RAPIDJSON_DIAG_OFF(c++98-compat-pedantic) +RAPIDJSON_DIAG_OFF(variadic-macros) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// Verbose Utilities + +#if RAPIDJSON_SCHEMA_VERBOSE + +namespace internal { + +inline void PrintInvalidKeyword(const char* keyword) { + printf("Fail keyword: %s\n", keyword); +} + +inline void PrintInvalidKeyword(const wchar_t* keyword) { + wprintf(L"Fail keyword: %ls\n", keyword); +} + +inline void PrintInvalidDocument(const char* document) { + printf("Fail document: %s\n\n", document); +} + +inline void PrintInvalidDocument(const wchar_t* document) { + wprintf(L"Fail document: %ls\n\n", document); +} + +inline void PrintValidatorPointers(unsigned depth, const char* s, const char* d) { + printf("S: %*s%s\nD: %*s%s\n\n", depth * 4, " ", s, depth * 4, " ", d); +} + +inline void PrintValidatorPointers(unsigned depth, const wchar_t* s, const wchar_t* d) { + wprintf(L"S: %*ls%ls\nD: %*ls%ls\n\n", depth * 4, L" ", s, depth * 4, L" ", d); +} + +} // namespace internal + +#endif // RAPIDJSON_SCHEMA_VERBOSE + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_INVALID_KEYWORD_RETURN + +#if RAPIDJSON_SCHEMA_VERBOSE +#define RAPIDJSON_INVALID_KEYWORD_VERBOSE(keyword) internal::PrintInvalidKeyword(keyword) +#else +#define RAPIDJSON_INVALID_KEYWORD_VERBOSE(keyword) +#endif + +#define RAPIDJSON_INVALID_KEYWORD_RETURN(keyword)\ +RAPIDJSON_MULTILINEMACRO_BEGIN\ + context.invalidKeyword = keyword.GetString();\ + RAPIDJSON_INVALID_KEYWORD_VERBOSE(keyword.GetString());\ + return false;\ +RAPIDJSON_MULTILINEMACRO_END + +/////////////////////////////////////////////////////////////////////////////// +// Forward declarations + +template +class GenericSchemaDocument; + +namespace internal { + +template +class Schema; + +/////////////////////////////////////////////////////////////////////////////// +// ISchemaValidator + +class ISchemaValidator { +public: + virtual ~ISchemaValidator() {} + virtual bool IsValid() const = 0; +}; + +/////////////////////////////////////////////////////////////////////////////// +// ISchemaStateFactory + +template +class ISchemaStateFactory { +public: + virtual ~ISchemaStateFactory() {} + virtual ISchemaValidator* CreateSchemaValidator(const SchemaType&) = 0; + virtual void DestroySchemaValidator(ISchemaValidator* validator) = 0; + virtual void* CreateHasher() = 0; + virtual uint64_t GetHashCode(void* hasher) = 0; + virtual void DestroryHasher(void* hasher) = 0; + virtual void* MallocState(size_t size) = 0; + virtual void FreeState(void* p) = 0; +}; + +/////////////////////////////////////////////////////////////////////////////// +// IValidationErrorHandler + +template +class IValidationErrorHandler { +public: + typedef typename SchemaType::Ch Ch; + typedef typename SchemaType::SValue SValue; + + virtual ~IValidationErrorHandler() {} + + virtual void NotMultipleOf(int64_t actual, const SValue& expected) = 0; + virtual void NotMultipleOf(uint64_t actual, const SValue& expected) = 0; + virtual void NotMultipleOf(double actual, const SValue& expected) = 0; + virtual void AboveMaximum(int64_t actual, const SValue& expected, bool exclusive) = 0; + virtual void AboveMaximum(uint64_t actual, const SValue& expected, bool exclusive) = 0; + virtual void AboveMaximum(double actual, const SValue& expected, bool exclusive) = 0; + virtual void BelowMinimum(int64_t actual, const SValue& expected, bool exclusive) = 0; + virtual void BelowMinimum(uint64_t actual, const SValue& expected, bool exclusive) = 0; + virtual void BelowMinimum(double actual, const SValue& expected, bool exclusive) = 0; + + virtual void TooLong(const Ch* str, SizeType length, SizeType expected) = 0; + virtual void TooShort(const Ch* str, SizeType length, SizeType expected) = 0; + virtual void DoesNotMatch(const Ch* str, SizeType length) = 0; + + virtual void DisallowedItem(SizeType index) = 0; + virtual void TooFewItems(SizeType actualCount, SizeType expectedCount) = 0; + virtual void TooManyItems(SizeType actualCount, SizeType expectedCount) = 0; + virtual void DuplicateItems(SizeType index1, SizeType index2) = 0; + + virtual void TooManyProperties(SizeType actualCount, SizeType expectedCount) = 0; + virtual void TooFewProperties(SizeType actualCount, SizeType expectedCount) = 0; + virtual void StartMissingProperties() = 0; + virtual void AddMissingProperty(const SValue& name) = 0; + virtual bool EndMissingProperties() = 0; + virtual void PropertyViolations(ISchemaValidator** subvalidators, SizeType count) = 0; + virtual void DisallowedProperty(const Ch* name, SizeType length) = 0; + + virtual void StartDependencyErrors() = 0; + virtual void StartMissingDependentProperties() = 0; + virtual void AddMissingDependentProperty(const SValue& targetName) = 0; + virtual void EndMissingDependentProperties(const SValue& sourceName) = 0; + virtual void AddDependencySchemaError(const SValue& souceName, ISchemaValidator* subvalidator) = 0; + virtual bool EndDependencyErrors() = 0; + + virtual void DisallowedValue() = 0; + virtual void StartDisallowedType() = 0; + virtual void AddExpectedType(const typename SchemaType::ValueType& expectedType) = 0; + virtual void EndDisallowedType(const typename SchemaType::ValueType& actualType) = 0; + virtual void NotAllOf(ISchemaValidator** subvalidators, SizeType count) = 0; + virtual void NoneOf(ISchemaValidator** subvalidators, SizeType count) = 0; + virtual void NotOneOf(ISchemaValidator** subvalidators, SizeType count) = 0; + virtual void Disallowed() = 0; +}; + + +/////////////////////////////////////////////////////////////////////////////// +// Hasher + +// For comparison of compound value +template +class Hasher { +public: + typedef typename Encoding::Ch Ch; + + Hasher(Allocator* allocator = 0, size_t stackCapacity = kDefaultSize) : stack_(allocator, stackCapacity) {} + + bool Null() { return WriteType(kNullType); } + bool Bool(bool b) { return WriteType(b ? kTrueType : kFalseType); } + bool Int(int i) { Number n; n.u.i = i; n.d = static_cast(i); return WriteNumber(n); } + bool Uint(unsigned u) { Number n; n.u.u = u; n.d = static_cast(u); return WriteNumber(n); } + bool Int64(int64_t i) { Number n; n.u.i = i; n.d = static_cast(i); return WriteNumber(n); } + bool Uint64(uint64_t u) { Number n; n.u.u = u; n.d = static_cast(u); return WriteNumber(n); } + bool Double(double d) { + Number n; + if (d < 0) n.u.i = static_cast(d); + else n.u.u = static_cast(d); + n.d = d; + return WriteNumber(n); + } + + bool RawNumber(const Ch* str, SizeType len, bool) { + WriteBuffer(kNumberType, str, len * sizeof(Ch)); + return true; + } + + bool String(const Ch* str, SizeType len, bool) { + WriteBuffer(kStringType, str, len * sizeof(Ch)); + return true; + } + + bool StartObject() { return true; } + bool Key(const Ch* str, SizeType len, bool copy) { return String(str, len, copy); } + bool EndObject(SizeType memberCount) { + uint64_t h = Hash(0, kObjectType); + uint64_t* kv = stack_.template Pop(memberCount * 2); + for (SizeType i = 0; i < memberCount; i++) + h ^= Hash(kv[i * 2], kv[i * 2 + 1]); // Use xor to achieve member order insensitive + *stack_.template Push() = h; + return true; + } + + bool StartArray() { return true; } + bool EndArray(SizeType elementCount) { + uint64_t h = Hash(0, kArrayType); + uint64_t* e = stack_.template Pop(elementCount); + for (SizeType i = 0; i < elementCount; i++) + h = Hash(h, e[i]); // Use hash to achieve element order sensitive + *stack_.template Push() = h; + return true; + } + + bool IsValid() const { return stack_.GetSize() == sizeof(uint64_t); } + + uint64_t GetHashCode() const { + RAPIDJSON_ASSERT(IsValid()); + return *stack_.template Top(); + } + +private: + static const size_t kDefaultSize = 256; + struct Number { + union U { + uint64_t u; + int64_t i; + }u; + double d; + }; + + bool WriteType(Type type) { return WriteBuffer(type, 0, 0); } + + bool WriteNumber(const Number& n) { return WriteBuffer(kNumberType, &n, sizeof(n)); } + + bool WriteBuffer(Type type, const void* data, size_t len) { + // FNV-1a from http://isthe.com/chongo/tech/comp/fnv/ + uint64_t h = Hash(RAPIDJSON_UINT64_C2(0x84222325, 0xcbf29ce4), type); + const unsigned char* d = static_cast(data); + for (size_t i = 0; i < len; i++) + h = Hash(h, d[i]); + *stack_.template Push() = h; + return true; + } + + static uint64_t Hash(uint64_t h, uint64_t d) { + static const uint64_t kPrime = RAPIDJSON_UINT64_C2(0x00000100, 0x000001b3); + h ^= d; + h *= kPrime; + return h; + } + + Stack stack_; +}; + +/////////////////////////////////////////////////////////////////////////////// +// SchemaValidationContext + +template +struct SchemaValidationContext { + typedef Schema SchemaType; + typedef ISchemaStateFactory SchemaValidatorFactoryType; + typedef IValidationErrorHandler ErrorHandlerType; + typedef typename SchemaType::ValueType ValueType; + typedef typename ValueType::Ch Ch; + + enum PatternValidatorType { + kPatternValidatorOnly, + kPatternValidatorWithProperty, + kPatternValidatorWithAdditionalProperty + }; + + SchemaValidationContext(SchemaValidatorFactoryType& f, ErrorHandlerType& eh, const SchemaType* s) : + factory(f), + error_handler(eh), + schema(s), + valueSchema(), + invalidKeyword(), + hasher(), + arrayElementHashCodes(), + validators(), + validatorCount(), + patternPropertiesValidators(), + patternPropertiesValidatorCount(), + patternPropertiesSchemas(), + patternPropertiesSchemaCount(), + valuePatternValidatorType(kPatternValidatorOnly), + propertyExist(), + inArray(false), + valueUniqueness(false), + arrayUniqueness(false) + { + } + + ~SchemaValidationContext() { + if (hasher) + factory.DestroryHasher(hasher); + if (validators) { + for (SizeType i = 0; i < validatorCount; i++) + factory.DestroySchemaValidator(validators[i]); + factory.FreeState(validators); + } + if (patternPropertiesValidators) { + for (SizeType i = 0; i < patternPropertiesValidatorCount; i++) + factory.DestroySchemaValidator(patternPropertiesValidators[i]); + factory.FreeState(patternPropertiesValidators); + } + if (patternPropertiesSchemas) + factory.FreeState(patternPropertiesSchemas); + if (propertyExist) + factory.FreeState(propertyExist); + } + + SchemaValidatorFactoryType& factory; + ErrorHandlerType& error_handler; + const SchemaType* schema; + const SchemaType* valueSchema; + const Ch* invalidKeyword; + void* hasher; // Only validator access + void* arrayElementHashCodes; // Only validator access this + ISchemaValidator** validators; + SizeType validatorCount; + ISchemaValidator** patternPropertiesValidators; + SizeType patternPropertiesValidatorCount; + const SchemaType** patternPropertiesSchemas; + SizeType patternPropertiesSchemaCount; + PatternValidatorType valuePatternValidatorType; + PatternValidatorType objectPatternValidatorType; + SizeType arrayElementIndex; + bool* propertyExist; + bool inArray; + bool valueUniqueness; + bool arrayUniqueness; +}; + +/////////////////////////////////////////////////////////////////////////////// +// Schema + +template +class Schema { +public: + typedef typename SchemaDocumentType::ValueType ValueType; + typedef typename SchemaDocumentType::AllocatorType AllocatorType; + typedef typename SchemaDocumentType::PointerType PointerType; + typedef typename ValueType::EncodingType EncodingType; + typedef typename EncodingType::Ch Ch; + typedef SchemaValidationContext Context; + typedef Schema SchemaType; + typedef GenericValue SValue; + typedef IValidationErrorHandler ErrorHandler; + friend class GenericSchemaDocument; + + Schema(SchemaDocumentType* schemaDocument, const PointerType& p, const ValueType& value, const ValueType& document, AllocatorType* allocator) : + allocator_(allocator), + uri_(schemaDocument->GetURI(), *allocator), + pointer_(p, allocator), + typeless_(schemaDocument->GetTypeless()), + enum_(), + enumCount_(), + not_(), + type_((1 << kTotalSchemaType) - 1), // typeless + validatorCount_(), + notValidatorIndex_(), + properties_(), + additionalPropertiesSchema_(), + patternProperties_(), + patternPropertyCount_(), + propertyCount_(), + minProperties_(), + maxProperties_(SizeType(~0)), + additionalProperties_(true), + hasDependencies_(), + hasRequired_(), + hasSchemaDependencies_(), + additionalItemsSchema_(), + itemsList_(), + itemsTuple_(), + itemsTupleCount_(), + minItems_(), + maxItems_(SizeType(~0)), + additionalItems_(true), + uniqueItems_(false), + pattern_(), + minLength_(0), + maxLength_(~SizeType(0)), + exclusiveMinimum_(false), + exclusiveMaximum_(false), + defaultValueLength_(0) + { + typedef typename ValueType::ConstValueIterator ConstValueIterator; + typedef typename ValueType::ConstMemberIterator ConstMemberIterator; + + if (!value.IsObject()) + return; + + if (const ValueType* v = GetMember(value, GetTypeString())) { + type_ = 0; + if (v->IsString()) + AddType(*v); + else if (v->IsArray()) + for (ConstValueIterator itr = v->Begin(); itr != v->End(); ++itr) + AddType(*itr); + } + + if (const ValueType* v = GetMember(value, GetEnumString())) + if (v->IsArray() && v->Size() > 0) { + enum_ = static_cast(allocator_->Malloc(sizeof(uint64_t) * v->Size())); + for (ConstValueIterator itr = v->Begin(); itr != v->End(); ++itr) { + typedef Hasher > EnumHasherType; + char buffer[256u + 24]; + MemoryPoolAllocator<> hasherAllocator(buffer, sizeof(buffer)); + EnumHasherType h(&hasherAllocator, 256); + itr->Accept(h); + enum_[enumCount_++] = h.GetHashCode(); + } + } + + if (schemaDocument) { + AssignIfExist(allOf_, *schemaDocument, p, value, GetAllOfString(), document); + AssignIfExist(anyOf_, *schemaDocument, p, value, GetAnyOfString(), document); + AssignIfExist(oneOf_, *schemaDocument, p, value, GetOneOfString(), document); + } + + if (const ValueType* v = GetMember(value, GetNotString())) { + schemaDocument->CreateSchema(¬_, p.Append(GetNotString(), allocator_), *v, document); + notValidatorIndex_ = validatorCount_; + validatorCount_++; + } + + // Object + + const ValueType* properties = GetMember(value, GetPropertiesString()); + const ValueType* required = GetMember(value, GetRequiredString()); + const ValueType* dependencies = GetMember(value, GetDependenciesString()); + { + // Gather properties from properties/required/dependencies + SValue allProperties(kArrayType); + + if (properties && properties->IsObject()) + for (ConstMemberIterator itr = properties->MemberBegin(); itr != properties->MemberEnd(); ++itr) + AddUniqueElement(allProperties, itr->name); + + if (required && required->IsArray()) + for (ConstValueIterator itr = required->Begin(); itr != required->End(); ++itr) + if (itr->IsString()) + AddUniqueElement(allProperties, *itr); + + if (dependencies && dependencies->IsObject()) + for (ConstMemberIterator itr = dependencies->MemberBegin(); itr != dependencies->MemberEnd(); ++itr) { + AddUniqueElement(allProperties, itr->name); + if (itr->value.IsArray()) + for (ConstValueIterator i = itr->value.Begin(); i != itr->value.End(); ++i) + if (i->IsString()) + AddUniqueElement(allProperties, *i); + } + + if (allProperties.Size() > 0) { + propertyCount_ = allProperties.Size(); + properties_ = static_cast(allocator_->Malloc(sizeof(Property) * propertyCount_)); + for (SizeType i = 0; i < propertyCount_; i++) { + new (&properties_[i]) Property(); + properties_[i].name = allProperties[i]; + properties_[i].schema = typeless_; + } + } + } + + if (properties && properties->IsObject()) { + PointerType q = p.Append(GetPropertiesString(), allocator_); + for (ConstMemberIterator itr = properties->MemberBegin(); itr != properties->MemberEnd(); ++itr) { + SizeType index; + if (FindPropertyIndex(itr->name, &index)) + schemaDocument->CreateSchema(&properties_[index].schema, q.Append(itr->name, allocator_), itr->value, document); + } + } + + if (const ValueType* v = GetMember(value, GetPatternPropertiesString())) { + PointerType q = p.Append(GetPatternPropertiesString(), allocator_); + patternProperties_ = static_cast(allocator_->Malloc(sizeof(PatternProperty) * v->MemberCount())); + patternPropertyCount_ = 0; + + for (ConstMemberIterator itr = v->MemberBegin(); itr != v->MemberEnd(); ++itr) { + new (&patternProperties_[patternPropertyCount_]) PatternProperty(); + patternProperties_[patternPropertyCount_].pattern = CreatePattern(itr->name); + schemaDocument->CreateSchema(&patternProperties_[patternPropertyCount_].schema, q.Append(itr->name, allocator_), itr->value, document); + patternPropertyCount_++; + } + } + + if (required && required->IsArray()) + for (ConstValueIterator itr = required->Begin(); itr != required->End(); ++itr) + if (itr->IsString()) { + SizeType index; + if (FindPropertyIndex(*itr, &index)) { + properties_[index].required = true; + hasRequired_ = true; + } + } + + if (dependencies && dependencies->IsObject()) { + PointerType q = p.Append(GetDependenciesString(), allocator_); + hasDependencies_ = true; + for (ConstMemberIterator itr = dependencies->MemberBegin(); itr != dependencies->MemberEnd(); ++itr) { + SizeType sourceIndex; + if (FindPropertyIndex(itr->name, &sourceIndex)) { + if (itr->value.IsArray()) { + properties_[sourceIndex].dependencies = static_cast(allocator_->Malloc(sizeof(bool) * propertyCount_)); + std::memset(properties_[sourceIndex].dependencies, 0, sizeof(bool)* propertyCount_); + for (ConstValueIterator targetItr = itr->value.Begin(); targetItr != itr->value.End(); ++targetItr) { + SizeType targetIndex; + if (FindPropertyIndex(*targetItr, &targetIndex)) + properties_[sourceIndex].dependencies[targetIndex] = true; + } + } + else if (itr->value.IsObject()) { + hasSchemaDependencies_ = true; + schemaDocument->CreateSchema(&properties_[sourceIndex].dependenciesSchema, q.Append(itr->name, allocator_), itr->value, document); + properties_[sourceIndex].dependenciesValidatorIndex = validatorCount_; + validatorCount_++; + } + } + } + } + + if (const ValueType* v = GetMember(value, GetAdditionalPropertiesString())) { + if (v->IsBool()) + additionalProperties_ = v->GetBool(); + else if (v->IsObject()) + schemaDocument->CreateSchema(&additionalPropertiesSchema_, p.Append(GetAdditionalPropertiesString(), allocator_), *v, document); + } + + AssignIfExist(minProperties_, value, GetMinPropertiesString()); + AssignIfExist(maxProperties_, value, GetMaxPropertiesString()); + + // Array + if (const ValueType* v = GetMember(value, GetItemsString())) { + PointerType q = p.Append(GetItemsString(), allocator_); + if (v->IsObject()) // List validation + schemaDocument->CreateSchema(&itemsList_, q, *v, document); + else if (v->IsArray()) { // Tuple validation + itemsTuple_ = static_cast(allocator_->Malloc(sizeof(const Schema*) * v->Size())); + SizeType index = 0; + for (ConstValueIterator itr = v->Begin(); itr != v->End(); ++itr, index++) + schemaDocument->CreateSchema(&itemsTuple_[itemsTupleCount_++], q.Append(index, allocator_), *itr, document); + } + } + + AssignIfExist(minItems_, value, GetMinItemsString()); + AssignIfExist(maxItems_, value, GetMaxItemsString()); + + if (const ValueType* v = GetMember(value, GetAdditionalItemsString())) { + if (v->IsBool()) + additionalItems_ = v->GetBool(); + else if (v->IsObject()) + schemaDocument->CreateSchema(&additionalItemsSchema_, p.Append(GetAdditionalItemsString(), allocator_), *v, document); + } + + AssignIfExist(uniqueItems_, value, GetUniqueItemsString()); + + // String + AssignIfExist(minLength_, value, GetMinLengthString()); + AssignIfExist(maxLength_, value, GetMaxLengthString()); + + if (const ValueType* v = GetMember(value, GetPatternString())) + pattern_ = CreatePattern(*v); + + // Number + if (const ValueType* v = GetMember(value, GetMinimumString())) + if (v->IsNumber()) + minimum_.CopyFrom(*v, *allocator_); + + if (const ValueType* v = GetMember(value, GetMaximumString())) + if (v->IsNumber()) + maximum_.CopyFrom(*v, *allocator_); + + AssignIfExist(exclusiveMinimum_, value, GetExclusiveMinimumString()); + AssignIfExist(exclusiveMaximum_, value, GetExclusiveMaximumString()); + + if (const ValueType* v = GetMember(value, GetMultipleOfString())) + if (v->IsNumber() && v->GetDouble() > 0.0) + multipleOf_.CopyFrom(*v, *allocator_); + + // Default + if (const ValueType* v = GetMember(value, GetDefaultValueString())) + if (v->IsString()) + defaultValueLength_ = v->GetStringLength(); + + } + + ~Schema() { + AllocatorType::Free(enum_); + if (properties_) { + for (SizeType i = 0; i < propertyCount_; i++) + properties_[i].~Property(); + AllocatorType::Free(properties_); + } + if (patternProperties_) { + for (SizeType i = 0; i < patternPropertyCount_; i++) + patternProperties_[i].~PatternProperty(); + AllocatorType::Free(patternProperties_); + } + AllocatorType::Free(itemsTuple_); +#if RAPIDJSON_SCHEMA_HAS_REGEX + if (pattern_) { + pattern_->~RegexType(); + AllocatorType::Free(pattern_); + } +#endif + } + + const SValue& GetURI() const { + return uri_; + } + + const PointerType& GetPointer() const { + return pointer_; + } + + bool BeginValue(Context& context) const { + if (context.inArray) { + if (uniqueItems_) + context.valueUniqueness = true; + + if (itemsList_) + context.valueSchema = itemsList_; + else if (itemsTuple_) { + if (context.arrayElementIndex < itemsTupleCount_) + context.valueSchema = itemsTuple_[context.arrayElementIndex]; + else if (additionalItemsSchema_) + context.valueSchema = additionalItemsSchema_; + else if (additionalItems_) + context.valueSchema = typeless_; + else { + context.error_handler.DisallowedItem(context.arrayElementIndex); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetItemsString()); + } + } + else + context.valueSchema = typeless_; + + context.arrayElementIndex++; + } + return true; + } + + RAPIDJSON_FORCEINLINE bool EndValue(Context& context) const { + if (context.patternPropertiesValidatorCount > 0) { + bool otherValid = false; + SizeType count = context.patternPropertiesValidatorCount; + if (context.objectPatternValidatorType != Context::kPatternValidatorOnly) + otherValid = context.patternPropertiesValidators[--count]->IsValid(); + + bool patternValid = true; + for (SizeType i = 0; i < count; i++) + if (!context.patternPropertiesValidators[i]->IsValid()) { + patternValid = false; + break; + } + + if (context.objectPatternValidatorType == Context::kPatternValidatorOnly) { + if (!patternValid) { + context.error_handler.PropertyViolations(context.patternPropertiesValidators, count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetPatternPropertiesString()); + } + } + else if (context.objectPatternValidatorType == Context::kPatternValidatorWithProperty) { + if (!patternValid || !otherValid) { + context.error_handler.PropertyViolations(context.patternPropertiesValidators, count + 1); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetPatternPropertiesString()); + } + } + else if (!patternValid && !otherValid) { // kPatternValidatorWithAdditionalProperty) + context.error_handler.PropertyViolations(context.patternPropertiesValidators, count + 1); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetPatternPropertiesString()); + } + } + + if (enum_) { + const uint64_t h = context.factory.GetHashCode(context.hasher); + for (SizeType i = 0; i < enumCount_; i++) + if (enum_[i] == h) + goto foundEnum; + context.error_handler.DisallowedValue(); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetEnumString()); + foundEnum:; + } + + if (allOf_.schemas) + for (SizeType i = allOf_.begin; i < allOf_.begin + allOf_.count; i++) + if (!context.validators[i]->IsValid()) { + context.error_handler.NotAllOf(&context.validators[allOf_.begin], allOf_.count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetAllOfString()); + } + + if (anyOf_.schemas) { + for (SizeType i = anyOf_.begin; i < anyOf_.begin + anyOf_.count; i++) + if (context.validators[i]->IsValid()) + goto foundAny; + context.error_handler.NoneOf(&context.validators[anyOf_.begin], anyOf_.count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetAnyOfString()); + foundAny:; + } + + if (oneOf_.schemas) { + bool oneValid = false; + for (SizeType i = oneOf_.begin; i < oneOf_.begin + oneOf_.count; i++) + if (context.validators[i]->IsValid()) { + if (oneValid) { + context.error_handler.NotOneOf(&context.validators[oneOf_.begin], oneOf_.count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetOneOfString()); + } else + oneValid = true; + } + if (!oneValid) { + context.error_handler.NotOneOf(&context.validators[oneOf_.begin], oneOf_.count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetOneOfString()); + } + } + + if (not_ && context.validators[notValidatorIndex_]->IsValid()) { + context.error_handler.Disallowed(); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetNotString()); + } + + return true; + } + + bool Null(Context& context) const { + if (!(type_ & (1 << kNullSchemaType))) { + DisallowedType(context, GetNullString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + return CreateParallelValidator(context); + } + + bool Bool(Context& context, bool) const { + if (!(type_ & (1 << kBooleanSchemaType))) { + DisallowedType(context, GetBooleanString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + return CreateParallelValidator(context); + } + + bool Int(Context& context, int i) const { + if (!CheckInt(context, i)) + return false; + return CreateParallelValidator(context); + } + + bool Uint(Context& context, unsigned u) const { + if (!CheckUint(context, u)) + return false; + return CreateParallelValidator(context); + } + + bool Int64(Context& context, int64_t i) const { + if (!CheckInt(context, i)) + return false; + return CreateParallelValidator(context); + } + + bool Uint64(Context& context, uint64_t u) const { + if (!CheckUint(context, u)) + return false; + return CreateParallelValidator(context); + } + + bool Double(Context& context, double d) const { + if (!(type_ & (1 << kNumberSchemaType))) { + DisallowedType(context, GetNumberString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (!minimum_.IsNull() && !CheckDoubleMinimum(context, d)) + return false; + + if (!maximum_.IsNull() && !CheckDoubleMaximum(context, d)) + return false; + + if (!multipleOf_.IsNull() && !CheckDoubleMultipleOf(context, d)) + return false; + + return CreateParallelValidator(context); + } + + bool String(Context& context, const Ch* str, SizeType length, bool) const { + if (!(type_ & (1 << kStringSchemaType))) { + DisallowedType(context, GetStringString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (minLength_ != 0 || maxLength_ != SizeType(~0)) { + SizeType count; + if (internal::CountStringCodePoint(str, length, &count)) { + if (count < minLength_) { + context.error_handler.TooShort(str, length, minLength_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinLengthString()); + } + if (count > maxLength_) { + context.error_handler.TooLong(str, length, maxLength_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaxLengthString()); + } + } + } + + if (pattern_ && !IsPatternMatch(pattern_, str, length)) { + context.error_handler.DoesNotMatch(str, length); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetPatternString()); + } + + return CreateParallelValidator(context); + } + + bool StartObject(Context& context) const { + if (!(type_ & (1 << kObjectSchemaType))) { + DisallowedType(context, GetObjectString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (hasDependencies_ || hasRequired_) { + context.propertyExist = static_cast(context.factory.MallocState(sizeof(bool) * propertyCount_)); + std::memset(context.propertyExist, 0, sizeof(bool) * propertyCount_); + } + + if (patternProperties_) { // pre-allocate schema array + SizeType count = patternPropertyCount_ + 1; // extra for valuePatternValidatorType + context.patternPropertiesSchemas = static_cast(context.factory.MallocState(sizeof(const SchemaType*) * count)); + context.patternPropertiesSchemaCount = 0; + std::memset(context.patternPropertiesSchemas, 0, sizeof(SchemaType*) * count); + } + + return CreateParallelValidator(context); + } + + bool Key(Context& context, const Ch* str, SizeType len, bool) const { + if (patternProperties_) { + context.patternPropertiesSchemaCount = 0; + for (SizeType i = 0; i < patternPropertyCount_; i++) + if (patternProperties_[i].pattern && IsPatternMatch(patternProperties_[i].pattern, str, len)) { + context.patternPropertiesSchemas[context.patternPropertiesSchemaCount++] = patternProperties_[i].schema; + context.valueSchema = typeless_; + } + } + + SizeType index = 0; + if (FindPropertyIndex(ValueType(str, len).Move(), &index)) { + if (context.patternPropertiesSchemaCount > 0) { + context.patternPropertiesSchemas[context.patternPropertiesSchemaCount++] = properties_[index].schema; + context.valueSchema = typeless_; + context.valuePatternValidatorType = Context::kPatternValidatorWithProperty; + } + else + context.valueSchema = properties_[index].schema; + + if (context.propertyExist) + context.propertyExist[index] = true; + + return true; + } + + if (additionalPropertiesSchema_) { + if (additionalPropertiesSchema_ && context.patternPropertiesSchemaCount > 0) { + context.patternPropertiesSchemas[context.patternPropertiesSchemaCount++] = additionalPropertiesSchema_; + context.valueSchema = typeless_; + context.valuePatternValidatorType = Context::kPatternValidatorWithAdditionalProperty; + } + else + context.valueSchema = additionalPropertiesSchema_; + return true; + } + else if (additionalProperties_) { + context.valueSchema = typeless_; + return true; + } + + if (context.patternPropertiesSchemaCount == 0) { // patternProperties are not additional properties + context.error_handler.DisallowedProperty(str, len); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetAdditionalPropertiesString()); + } + + return true; + } + + bool EndObject(Context& context, SizeType memberCount) const { + if (hasRequired_) { + context.error_handler.StartMissingProperties(); + for (SizeType index = 0; index < propertyCount_; index++) + if (properties_[index].required && !context.propertyExist[index]) + if (properties_[index].schema->defaultValueLength_ == 0 ) + context.error_handler.AddMissingProperty(properties_[index].name); + if (context.error_handler.EndMissingProperties()) + RAPIDJSON_INVALID_KEYWORD_RETURN(GetRequiredString()); + } + + if (memberCount < minProperties_) { + context.error_handler.TooFewProperties(memberCount, minProperties_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinPropertiesString()); + } + + if (memberCount > maxProperties_) { + context.error_handler.TooManyProperties(memberCount, maxProperties_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaxPropertiesString()); + } + + if (hasDependencies_) { + context.error_handler.StartDependencyErrors(); + for (SizeType sourceIndex = 0; sourceIndex < propertyCount_; sourceIndex++) { + const Property& source = properties_[sourceIndex]; + if (context.propertyExist[sourceIndex]) { + if (source.dependencies) { + context.error_handler.StartMissingDependentProperties(); + for (SizeType targetIndex = 0; targetIndex < propertyCount_; targetIndex++) + if (source.dependencies[targetIndex] && !context.propertyExist[targetIndex]) + context.error_handler.AddMissingDependentProperty(properties_[targetIndex].name); + context.error_handler.EndMissingDependentProperties(source.name); + } + else if (source.dependenciesSchema) { + ISchemaValidator* dependenciesValidator = context.validators[source.dependenciesValidatorIndex]; + if (!dependenciesValidator->IsValid()) + context.error_handler.AddDependencySchemaError(source.name, dependenciesValidator); + } + } + } + if (context.error_handler.EndDependencyErrors()) + RAPIDJSON_INVALID_KEYWORD_RETURN(GetDependenciesString()); + } + + return true; + } + + bool StartArray(Context& context) const { + if (!(type_ & (1 << kArraySchemaType))) { + DisallowedType(context, GetArrayString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + context.arrayElementIndex = 0; + context.inArray = true; + + return CreateParallelValidator(context); + } + + bool EndArray(Context& context, SizeType elementCount) const { + context.inArray = false; + + if (elementCount < minItems_) { + context.error_handler.TooFewItems(elementCount, minItems_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinItemsString()); + } + + if (elementCount > maxItems_) { + context.error_handler.TooManyItems(elementCount, maxItems_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaxItemsString()); + } + + return true; + } + + // Generate functions for string literal according to Ch +#define RAPIDJSON_STRING_(name, ...) \ + static const ValueType& Get##name##String() {\ + static const Ch s[] = { __VA_ARGS__, '\0' };\ + static const ValueType v(s, static_cast(sizeof(s) / sizeof(Ch) - 1));\ + return v;\ + } + + RAPIDJSON_STRING_(Null, 'n', 'u', 'l', 'l') + RAPIDJSON_STRING_(Boolean, 'b', 'o', 'o', 'l', 'e', 'a', 'n') + RAPIDJSON_STRING_(Object, 'o', 'b', 'j', 'e', 'c', 't') + RAPIDJSON_STRING_(Array, 'a', 'r', 'r', 'a', 'y') + RAPIDJSON_STRING_(String, 's', 't', 'r', 'i', 'n', 'g') + RAPIDJSON_STRING_(Number, 'n', 'u', 'm', 'b', 'e', 'r') + RAPIDJSON_STRING_(Integer, 'i', 'n', 't', 'e', 'g', 'e', 'r') + RAPIDJSON_STRING_(Type, 't', 'y', 'p', 'e') + RAPIDJSON_STRING_(Enum, 'e', 'n', 'u', 'm') + RAPIDJSON_STRING_(AllOf, 'a', 'l', 'l', 'O', 'f') + RAPIDJSON_STRING_(AnyOf, 'a', 'n', 'y', 'O', 'f') + RAPIDJSON_STRING_(OneOf, 'o', 'n', 'e', 'O', 'f') + RAPIDJSON_STRING_(Not, 'n', 'o', 't') + RAPIDJSON_STRING_(Properties, 'p', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(Required, 'r', 'e', 'q', 'u', 'i', 'r', 'e', 'd') + RAPIDJSON_STRING_(Dependencies, 'd', 'e', 'p', 'e', 'n', 'd', 'e', 'n', 'c', 'i', 'e', 's') + RAPIDJSON_STRING_(PatternProperties, 'p', 'a', 't', 't', 'e', 'r', 'n', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(AdditionalProperties, 'a', 'd', 'd', 'i', 't', 'i', 'o', 'n', 'a', 'l', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(MinProperties, 'm', 'i', 'n', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(MaxProperties, 'm', 'a', 'x', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(Items, 'i', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(MinItems, 'm', 'i', 'n', 'I', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(MaxItems, 'm', 'a', 'x', 'I', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(AdditionalItems, 'a', 'd', 'd', 'i', 't', 'i', 'o', 'n', 'a', 'l', 'I', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(UniqueItems, 'u', 'n', 'i', 'q', 'u', 'e', 'I', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(MinLength, 'm', 'i', 'n', 'L', 'e', 'n', 'g', 't', 'h') + RAPIDJSON_STRING_(MaxLength, 'm', 'a', 'x', 'L', 'e', 'n', 'g', 't', 'h') + RAPIDJSON_STRING_(Pattern, 'p', 'a', 't', 't', 'e', 'r', 'n') + RAPIDJSON_STRING_(Minimum, 'm', 'i', 'n', 'i', 'm', 'u', 'm') + RAPIDJSON_STRING_(Maximum, 'm', 'a', 'x', 'i', 'm', 'u', 'm') + RAPIDJSON_STRING_(ExclusiveMinimum, 'e', 'x', 'c', 'l', 'u', 's', 'i', 'v', 'e', 'M', 'i', 'n', 'i', 'm', 'u', 'm') + RAPIDJSON_STRING_(ExclusiveMaximum, 'e', 'x', 'c', 'l', 'u', 's', 'i', 'v', 'e', 'M', 'a', 'x', 'i', 'm', 'u', 'm') + RAPIDJSON_STRING_(MultipleOf, 'm', 'u', 'l', 't', 'i', 'p', 'l', 'e', 'O', 'f') + RAPIDJSON_STRING_(DefaultValue, 'd', 'e', 'f', 'a', 'u', 'l', 't') + +#undef RAPIDJSON_STRING_ + +private: + enum SchemaValueType { + kNullSchemaType, + kBooleanSchemaType, + kObjectSchemaType, + kArraySchemaType, + kStringSchemaType, + kNumberSchemaType, + kIntegerSchemaType, + kTotalSchemaType + }; + +#if RAPIDJSON_SCHEMA_USE_INTERNALREGEX + typedef internal::GenericRegex RegexType; +#elif RAPIDJSON_SCHEMA_USE_STDREGEX + typedef std::basic_regex RegexType; +#else + typedef char RegexType; +#endif + + struct SchemaArray { + SchemaArray() : schemas(), count() {} + ~SchemaArray() { AllocatorType::Free(schemas); } + const SchemaType** schemas; + SizeType begin; // begin index of context.validators + SizeType count; + }; + + template + void AddUniqueElement(V1& a, const V2& v) { + for (typename V1::ConstValueIterator itr = a.Begin(); itr != a.End(); ++itr) + if (*itr == v) + return; + V1 c(v, *allocator_); + a.PushBack(c, *allocator_); + } + + static const ValueType* GetMember(const ValueType& value, const ValueType& name) { + typename ValueType::ConstMemberIterator itr = value.FindMember(name); + return itr != value.MemberEnd() ? &(itr->value) : 0; + } + + static void AssignIfExist(bool& out, const ValueType& value, const ValueType& name) { + if (const ValueType* v = GetMember(value, name)) + if (v->IsBool()) + out = v->GetBool(); + } + + static void AssignIfExist(SizeType& out, const ValueType& value, const ValueType& name) { + if (const ValueType* v = GetMember(value, name)) + if (v->IsUint64() && v->GetUint64() <= SizeType(~0)) + out = static_cast(v->GetUint64()); + } + + void AssignIfExist(SchemaArray& out, SchemaDocumentType& schemaDocument, const PointerType& p, const ValueType& value, const ValueType& name, const ValueType& document) { + if (const ValueType* v = GetMember(value, name)) { + if (v->IsArray() && v->Size() > 0) { + PointerType q = p.Append(name, allocator_); + out.count = v->Size(); + out.schemas = static_cast(allocator_->Malloc(out.count * sizeof(const Schema*))); + memset(out.schemas, 0, sizeof(Schema*)* out.count); + for (SizeType i = 0; i < out.count; i++) + schemaDocument.CreateSchema(&out.schemas[i], q.Append(i, allocator_), (*v)[i], document); + out.begin = validatorCount_; + validatorCount_ += out.count; + } + } + } + +#if RAPIDJSON_SCHEMA_USE_INTERNALREGEX + template + RegexType* CreatePattern(const ValueType& value) { + if (value.IsString()) { + RegexType* r = new (allocator_->Malloc(sizeof(RegexType))) RegexType(value.GetString(), allocator_); + if (!r->IsValid()) { + r->~RegexType(); + AllocatorType::Free(r); + r = 0; + } + return r; + } + return 0; + } + + static bool IsPatternMatch(const RegexType* pattern, const Ch *str, SizeType) { + GenericRegexSearch rs(*pattern); + return rs.Search(str); + } +#elif RAPIDJSON_SCHEMA_USE_STDREGEX + template + RegexType* CreatePattern(const ValueType& value) { + if (value.IsString()) { + RegexType *r = static_cast(allocator_->Malloc(sizeof(RegexType))); + try { + return new (r) RegexType(value.GetString(), std::size_t(value.GetStringLength()), std::regex_constants::ECMAScript); + } + catch (const std::regex_error&) { + AllocatorType::Free(r); + } + } + return 0; + } + + static bool IsPatternMatch(const RegexType* pattern, const Ch *str, SizeType length) { + std::match_results r; + return std::regex_search(str, str + length, r, *pattern); + } +#else + template + RegexType* CreatePattern(const ValueType&) { return 0; } + + static bool IsPatternMatch(const RegexType*, const Ch *, SizeType) { return true; } +#endif // RAPIDJSON_SCHEMA_USE_STDREGEX + + void AddType(const ValueType& type) { + if (type == GetNullString() ) type_ |= 1 << kNullSchemaType; + else if (type == GetBooleanString()) type_ |= 1 << kBooleanSchemaType; + else if (type == GetObjectString() ) type_ |= 1 << kObjectSchemaType; + else if (type == GetArrayString() ) type_ |= 1 << kArraySchemaType; + else if (type == GetStringString() ) type_ |= 1 << kStringSchemaType; + else if (type == GetIntegerString()) type_ |= 1 << kIntegerSchemaType; + else if (type == GetNumberString() ) type_ |= (1 << kNumberSchemaType) | (1 << kIntegerSchemaType); + } + + bool CreateParallelValidator(Context& context) const { + if (enum_ || context.arrayUniqueness) + context.hasher = context.factory.CreateHasher(); + + if (validatorCount_) { + RAPIDJSON_ASSERT(context.validators == 0); + context.validators = static_cast(context.factory.MallocState(sizeof(ISchemaValidator*) * validatorCount_)); + context.validatorCount = validatorCount_; + + if (allOf_.schemas) + CreateSchemaValidators(context, allOf_); + + if (anyOf_.schemas) + CreateSchemaValidators(context, anyOf_); + + if (oneOf_.schemas) + CreateSchemaValidators(context, oneOf_); + + if (not_) + context.validators[notValidatorIndex_] = context.factory.CreateSchemaValidator(*not_); + + if (hasSchemaDependencies_) { + for (SizeType i = 0; i < propertyCount_; i++) + if (properties_[i].dependenciesSchema) + context.validators[properties_[i].dependenciesValidatorIndex] = context.factory.CreateSchemaValidator(*properties_[i].dependenciesSchema); + } + } + + return true; + } + + void CreateSchemaValidators(Context& context, const SchemaArray& schemas) const { + for (SizeType i = 0; i < schemas.count; i++) + context.validators[schemas.begin + i] = context.factory.CreateSchemaValidator(*schemas.schemas[i]); + } + + // O(n) + bool FindPropertyIndex(const ValueType& name, SizeType* outIndex) const { + SizeType len = name.GetStringLength(); + const Ch* str = name.GetString(); + for (SizeType index = 0; index < propertyCount_; index++) + if (properties_[index].name.GetStringLength() == len && + (std::memcmp(properties_[index].name.GetString(), str, sizeof(Ch) * len) == 0)) + { + *outIndex = index; + return true; + } + return false; + } + + bool CheckInt(Context& context, int64_t i) const { + if (!(type_ & ((1 << kIntegerSchemaType) | (1 << kNumberSchemaType)))) { + DisallowedType(context, GetIntegerString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (!minimum_.IsNull()) { + if (minimum_.IsInt64()) { + if (exclusiveMinimum_ ? i <= minimum_.GetInt64() : i < minimum_.GetInt64()) { + context.error_handler.BelowMinimum(i, minimum_, exclusiveMinimum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinimumString()); + } + } + else if (minimum_.IsUint64()) { + context.error_handler.BelowMinimum(i, minimum_, exclusiveMinimum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinimumString()); // i <= max(int64_t) < minimum.GetUint64() + } + else if (!CheckDoubleMinimum(context, static_cast(i))) + return false; + } + + if (!maximum_.IsNull()) { + if (maximum_.IsInt64()) { + if (exclusiveMaximum_ ? i >= maximum_.GetInt64() : i > maximum_.GetInt64()) { + context.error_handler.AboveMaximum(i, maximum_, exclusiveMaximum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaximumString()); + } + } + else if (maximum_.IsUint64()) { } + /* do nothing */ // i <= max(int64_t) < maximum_.GetUint64() + else if (!CheckDoubleMaximum(context, static_cast(i))) + return false; + } + + if (!multipleOf_.IsNull()) { + if (multipleOf_.IsUint64()) { + if (static_cast(i >= 0 ? i : -i) % multipleOf_.GetUint64() != 0) { + context.error_handler.NotMultipleOf(i, multipleOf_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMultipleOfString()); + } + } + else if (!CheckDoubleMultipleOf(context, static_cast(i))) + return false; + } + + return true; + } + + bool CheckUint(Context& context, uint64_t i) const { + if (!(type_ & ((1 << kIntegerSchemaType) | (1 << kNumberSchemaType)))) { + DisallowedType(context, GetIntegerString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (!minimum_.IsNull()) { + if (minimum_.IsUint64()) { + if (exclusiveMinimum_ ? i <= minimum_.GetUint64() : i < minimum_.GetUint64()) { + context.error_handler.BelowMinimum(i, minimum_, exclusiveMinimum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinimumString()); + } + } + else if (minimum_.IsInt64()) + /* do nothing */; // i >= 0 > minimum.Getint64() + else if (!CheckDoubleMinimum(context, static_cast(i))) + return false; + } + + if (!maximum_.IsNull()) { + if (maximum_.IsUint64()) { + if (exclusiveMaximum_ ? i >= maximum_.GetUint64() : i > maximum_.GetUint64()) { + context.error_handler.AboveMaximum(i, maximum_, exclusiveMaximum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaximumString()); + } + } + else if (maximum_.IsInt64()) { + context.error_handler.AboveMaximum(i, maximum_, exclusiveMaximum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaximumString()); // i >= 0 > maximum_ + } + else if (!CheckDoubleMaximum(context, static_cast(i))) + return false; + } + + if (!multipleOf_.IsNull()) { + if (multipleOf_.IsUint64()) { + if (i % multipleOf_.GetUint64() != 0) { + context.error_handler.NotMultipleOf(i, multipleOf_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMultipleOfString()); + } + } + else if (!CheckDoubleMultipleOf(context, static_cast(i))) + return false; + } + + return true; + } + + bool CheckDoubleMinimum(Context& context, double d) const { + if (exclusiveMinimum_ ? d <= minimum_.GetDouble() : d < minimum_.GetDouble()) { + context.error_handler.BelowMinimum(d, minimum_, exclusiveMinimum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinimumString()); + } + return true; + } + + bool CheckDoubleMaximum(Context& context, double d) const { + if (exclusiveMaximum_ ? d >= maximum_.GetDouble() : d > maximum_.GetDouble()) { + context.error_handler.AboveMaximum(d, maximum_, exclusiveMaximum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaximumString()); + } + return true; + } + + bool CheckDoubleMultipleOf(Context& context, double d) const { + double a = std::abs(d), b = std::abs(multipleOf_.GetDouble()); + double q = std::floor(a / b); + double r = a - q * b; + if (r > 0.0) { + context.error_handler.NotMultipleOf(d, multipleOf_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMultipleOfString()); + } + return true; + } + + void DisallowedType(Context& context, const ValueType& actualType) const { + ErrorHandler& eh = context.error_handler; + eh.StartDisallowedType(); + + if (type_ & (1 << kNullSchemaType)) eh.AddExpectedType(GetNullString()); + if (type_ & (1 << kBooleanSchemaType)) eh.AddExpectedType(GetBooleanString()); + if (type_ & (1 << kObjectSchemaType)) eh.AddExpectedType(GetObjectString()); + if (type_ & (1 << kArraySchemaType)) eh.AddExpectedType(GetArrayString()); + if (type_ & (1 << kStringSchemaType)) eh.AddExpectedType(GetStringString()); + + if (type_ & (1 << kNumberSchemaType)) eh.AddExpectedType(GetNumberString()); + else if (type_ & (1 << kIntegerSchemaType)) eh.AddExpectedType(GetIntegerString()); + + eh.EndDisallowedType(actualType); + } + + struct Property { + Property() : schema(), dependenciesSchema(), dependenciesValidatorIndex(), dependencies(), required(false) {} + ~Property() { AllocatorType::Free(dependencies); } + SValue name; + const SchemaType* schema; + const SchemaType* dependenciesSchema; + SizeType dependenciesValidatorIndex; + bool* dependencies; + bool required; + }; + + struct PatternProperty { + PatternProperty() : schema(), pattern() {} + ~PatternProperty() { + if (pattern) { + pattern->~RegexType(); + AllocatorType::Free(pattern); + } + } + const SchemaType* schema; + RegexType* pattern; + }; + + AllocatorType* allocator_; + SValue uri_; + PointerType pointer_; + const SchemaType* typeless_; + uint64_t* enum_; + SizeType enumCount_; + SchemaArray allOf_; + SchemaArray anyOf_; + SchemaArray oneOf_; + const SchemaType* not_; + unsigned type_; // bitmask of kSchemaType + SizeType validatorCount_; + SizeType notValidatorIndex_; + + Property* properties_; + const SchemaType* additionalPropertiesSchema_; + PatternProperty* patternProperties_; + SizeType patternPropertyCount_; + SizeType propertyCount_; + SizeType minProperties_; + SizeType maxProperties_; + bool additionalProperties_; + bool hasDependencies_; + bool hasRequired_; + bool hasSchemaDependencies_; + + const SchemaType* additionalItemsSchema_; + const SchemaType* itemsList_; + const SchemaType** itemsTuple_; + SizeType itemsTupleCount_; + SizeType minItems_; + SizeType maxItems_; + bool additionalItems_; + bool uniqueItems_; + + RegexType* pattern_; + SizeType minLength_; + SizeType maxLength_; + + SValue minimum_; + SValue maximum_; + SValue multipleOf_; + bool exclusiveMinimum_; + bool exclusiveMaximum_; + + SizeType defaultValueLength_; +}; + +template +struct TokenHelper { + RAPIDJSON_FORCEINLINE static void AppendIndexToken(Stack& documentStack, SizeType index) { + *documentStack.template Push() = '/'; + char buffer[21]; + size_t length = static_cast((sizeof(SizeType) == 4 ? u32toa(index, buffer) : u64toa(index, buffer)) - buffer); + for (size_t i = 0; i < length; i++) + *documentStack.template Push() = static_cast(buffer[i]); + } +}; + +// Partial specialized version for char to prevent buffer copying. +template +struct TokenHelper { + RAPIDJSON_FORCEINLINE static void AppendIndexToken(Stack& documentStack, SizeType index) { + if (sizeof(SizeType) == 4) { + char *buffer = documentStack.template Push(1 + 10); // '/' + uint + *buffer++ = '/'; + const char* end = internal::u32toa(index, buffer); + documentStack.template Pop(static_cast(10 - (end - buffer))); + } + else { + char *buffer = documentStack.template Push(1 + 20); // '/' + uint64 + *buffer++ = '/'; + const char* end = internal::u64toa(index, buffer); + documentStack.template Pop(static_cast(20 - (end - buffer))); + } + } +}; + +} // namespace internal + +/////////////////////////////////////////////////////////////////////////////// +// IGenericRemoteSchemaDocumentProvider + +template +class IGenericRemoteSchemaDocumentProvider { +public: + typedef typename SchemaDocumentType::Ch Ch; + + virtual ~IGenericRemoteSchemaDocumentProvider() {} + virtual const SchemaDocumentType* GetRemoteDocument(const Ch* uri, SizeType length) = 0; +}; + +/////////////////////////////////////////////////////////////////////////////// +// GenericSchemaDocument + +//! JSON schema document. +/*! + A JSON schema document is a compiled version of a JSON schema. + It is basically a tree of internal::Schema. + + \note This is an immutable class (i.e. its instance cannot be modified after construction). + \tparam ValueT Type of JSON value (e.g. \c Value ), which also determine the encoding. + \tparam Allocator Allocator type for allocating memory of this document. +*/ +template +class GenericSchemaDocument { +public: + typedef ValueT ValueType; + typedef IGenericRemoteSchemaDocumentProvider IRemoteSchemaDocumentProviderType; + typedef Allocator AllocatorType; + typedef typename ValueType::EncodingType EncodingType; + typedef typename EncodingType::Ch Ch; + typedef internal::Schema SchemaType; + typedef GenericPointer PointerType; + typedef GenericValue URIType; + friend class internal::Schema; + template + friend class GenericSchemaValidator; + + //! Constructor. + /*! + Compile a JSON document into schema document. + + \param document A JSON document as source. + \param uri The base URI of this schema document for purposes of violation reporting. + \param uriLength Length of \c name, in code points. + \param remoteProvider An optional remote schema document provider for resolving remote reference. Can be null. + \param allocator An optional allocator instance for allocating memory. Can be null. + */ + explicit GenericSchemaDocument(const ValueType& document, const Ch* uri = 0, SizeType uriLength = 0, + IRemoteSchemaDocumentProviderType* remoteProvider = 0, Allocator* allocator = 0) : + remoteProvider_(remoteProvider), + allocator_(allocator), + ownAllocator_(), + root_(), + typeless_(), + schemaMap_(allocator, kInitialSchemaMapSize), + schemaRef_(allocator, kInitialSchemaRefSize) + { + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + + Ch noUri[1] = {0}; + uri_.SetString(uri ? uri : noUri, uriLength, *allocator_); + + typeless_ = static_cast(allocator_->Malloc(sizeof(SchemaType))); + new (typeless_) SchemaType(this, PointerType(), ValueType(kObjectType).Move(), ValueType(kObjectType).Move(), allocator_); + + // Generate root schema, it will call CreateSchema() to create sub-schemas, + // And call AddRefSchema() if there are $ref. + CreateSchemaRecursive(&root_, PointerType(), document, document); + + // Resolve $ref + while (!schemaRef_.Empty()) { + SchemaRefEntry* refEntry = schemaRef_.template Pop(1); + if (const SchemaType* s = GetSchema(refEntry->target)) { + if (refEntry->schema) + *refEntry->schema = s; + + // Create entry in map if not exist + if (!GetSchema(refEntry->source)) { + new (schemaMap_.template Push()) SchemaEntry(refEntry->source, const_cast(s), false, allocator_); + } + } + else if (refEntry->schema) + *refEntry->schema = typeless_; + + refEntry->~SchemaRefEntry(); + } + + RAPIDJSON_ASSERT(root_ != 0); + + schemaRef_.ShrinkToFit(); // Deallocate all memory for ref + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move constructor in C++11 + GenericSchemaDocument(GenericSchemaDocument&& rhs) RAPIDJSON_NOEXCEPT : + remoteProvider_(rhs.remoteProvider_), + allocator_(rhs.allocator_), + ownAllocator_(rhs.ownAllocator_), + root_(rhs.root_), + typeless_(rhs.typeless_), + schemaMap_(std::move(rhs.schemaMap_)), + schemaRef_(std::move(rhs.schemaRef_)), + uri_(std::move(rhs.uri_)) + { + rhs.remoteProvider_ = 0; + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.typeless_ = 0; + } +#endif + + //! Destructor + ~GenericSchemaDocument() { + while (!schemaMap_.Empty()) + schemaMap_.template Pop(1)->~SchemaEntry(); + + if (typeless_) { + typeless_->~SchemaType(); + Allocator::Free(typeless_); + } + + RAPIDJSON_DELETE(ownAllocator_); + } + + const URIType& GetURI() const { return uri_; } + + //! Get the root schema. + const SchemaType& GetRoot() const { return *root_; } + +private: + //! Prohibit copying + GenericSchemaDocument(const GenericSchemaDocument&); + //! Prohibit assignment + GenericSchemaDocument& operator=(const GenericSchemaDocument&); + + struct SchemaRefEntry { + SchemaRefEntry(const PointerType& s, const PointerType& t, const SchemaType** outSchema, Allocator *allocator) : source(s, allocator), target(t, allocator), schema(outSchema) {} + PointerType source; + PointerType target; + const SchemaType** schema; + }; + + struct SchemaEntry { + SchemaEntry(const PointerType& p, SchemaType* s, bool o, Allocator* allocator) : pointer(p, allocator), schema(s), owned(o) {} + ~SchemaEntry() { + if (owned) { + schema->~SchemaType(); + Allocator::Free(schema); + } + } + PointerType pointer; + SchemaType* schema; + bool owned; + }; + + void CreateSchemaRecursive(const SchemaType** schema, const PointerType& pointer, const ValueType& v, const ValueType& document) { + if (schema) + *schema = typeless_; + + if (v.GetType() == kObjectType) { + const SchemaType* s = GetSchema(pointer); + if (!s) + CreateSchema(schema, pointer, v, document); + + for (typename ValueType::ConstMemberIterator itr = v.MemberBegin(); itr != v.MemberEnd(); ++itr) + CreateSchemaRecursive(0, pointer.Append(itr->name, allocator_), itr->value, document); + } + else if (v.GetType() == kArrayType) + for (SizeType i = 0; i < v.Size(); i++) + CreateSchemaRecursive(0, pointer.Append(i, allocator_), v[i], document); + } + + void CreateSchema(const SchemaType** schema, const PointerType& pointer, const ValueType& v, const ValueType& document) { + RAPIDJSON_ASSERT(pointer.IsValid()); + if (v.IsObject()) { + if (!HandleRefSchema(pointer, schema, v, document)) { + SchemaType* s = new (allocator_->Malloc(sizeof(SchemaType))) SchemaType(this, pointer, v, document, allocator_); + new (schemaMap_.template Push()) SchemaEntry(pointer, s, true, allocator_); + if (schema) + *schema = s; + } + } + } + + bool HandleRefSchema(const PointerType& source, const SchemaType** schema, const ValueType& v, const ValueType& document) { + static const Ch kRefString[] = { '$', 'r', 'e', 'f', '\0' }; + static const ValueType kRefValue(kRefString, 4); + + typename ValueType::ConstMemberIterator itr = v.FindMember(kRefValue); + if (itr == v.MemberEnd()) + return false; + + if (itr->value.IsString()) { + SizeType len = itr->value.GetStringLength(); + if (len > 0) { + const Ch* s = itr->value.GetString(); + SizeType i = 0; + while (i < len && s[i] != '#') // Find the first # + i++; + + if (i > 0) { // Remote reference, resolve immediately + if (remoteProvider_) { + if (const GenericSchemaDocument* remoteDocument = remoteProvider_->GetRemoteDocument(s, i)) { + PointerType pointer(&s[i], len - i, allocator_); + if (pointer.IsValid()) { + if (const SchemaType* sc = remoteDocument->GetSchema(pointer)) { + if (schema) + *schema = sc; + new (schemaMap_.template Push()) SchemaEntry(source, const_cast(sc), false, allocator_); + return true; + } + } + } + } + } + else if (s[i] == '#') { // Local reference, defer resolution + PointerType pointer(&s[i], len - i, allocator_); + if (pointer.IsValid()) { + if (const ValueType* nv = pointer.Get(document)) + if (HandleRefSchema(source, schema, *nv, document)) + return true; + + new (schemaRef_.template Push()) SchemaRefEntry(source, pointer, schema, allocator_); + return true; + } + } + } + } + return false; + } + + const SchemaType* GetSchema(const PointerType& pointer) const { + for (const SchemaEntry* target = schemaMap_.template Bottom(); target != schemaMap_.template End(); ++target) + if (pointer == target->pointer) + return target->schema; + return 0; + } + + PointerType GetPointer(const SchemaType* schema) const { + for (const SchemaEntry* target = schemaMap_.template Bottom(); target != schemaMap_.template End(); ++target) + if (schema == target->schema) + return target->pointer; + return PointerType(); + } + + const SchemaType* GetTypeless() const { return typeless_; } + + static const size_t kInitialSchemaMapSize = 64; + static const size_t kInitialSchemaRefSize = 64; + + IRemoteSchemaDocumentProviderType* remoteProvider_; + Allocator *allocator_; + Allocator *ownAllocator_; + const SchemaType* root_; //!< Root schema. + SchemaType* typeless_; + internal::Stack schemaMap_; // Stores created Pointer -> Schemas + internal::Stack schemaRef_; // Stores Pointer from $ref and schema which holds the $ref + URIType uri_; +}; + +//! GenericSchemaDocument using Value type. +typedef GenericSchemaDocument SchemaDocument; +//! IGenericRemoteSchemaDocumentProvider using SchemaDocument. +typedef IGenericRemoteSchemaDocumentProvider IRemoteSchemaDocumentProvider; + +/////////////////////////////////////////////////////////////////////////////// +// GenericSchemaValidator + +//! JSON Schema Validator. +/*! + A SAX style JSON schema validator. + It uses a \c GenericSchemaDocument to validate SAX events. + It delegates the incoming SAX events to an output handler. + The default output handler does nothing. + It can be reused multiple times by calling \c Reset(). + + \tparam SchemaDocumentType Type of schema document. + \tparam OutputHandler Type of output handler. Default handler does nothing. + \tparam StateAllocator Allocator for storing the internal validation states. +*/ +template < + typename SchemaDocumentType, + typename OutputHandler = BaseReaderHandler, + typename StateAllocator = CrtAllocator> +class GenericSchemaValidator : + public internal::ISchemaStateFactory, + public internal::ISchemaValidator, + public internal::IValidationErrorHandler +{ +public: + typedef typename SchemaDocumentType::SchemaType SchemaType; + typedef typename SchemaDocumentType::PointerType PointerType; + typedef typename SchemaType::EncodingType EncodingType; + typedef typename SchemaType::SValue SValue; + typedef typename EncodingType::Ch Ch; + typedef GenericStringRef StringRefType; + typedef GenericValue ValueType; + + //! Constructor without output handler. + /*! + \param schemaDocument The schema document to conform to. + \param allocator Optional allocator for storing internal validation states. + \param schemaStackCapacity Optional initial capacity of schema path stack. + \param documentStackCapacity Optional initial capacity of document path stack. + */ + GenericSchemaValidator( + const SchemaDocumentType& schemaDocument, + StateAllocator* allocator = 0, + size_t schemaStackCapacity = kDefaultSchemaStackCapacity, + size_t documentStackCapacity = kDefaultDocumentStackCapacity) + : + schemaDocument_(&schemaDocument), + root_(schemaDocument.GetRoot()), + stateAllocator_(allocator), + ownStateAllocator_(0), + schemaStack_(allocator, schemaStackCapacity), + documentStack_(allocator, documentStackCapacity), + outputHandler_(0), + error_(kObjectType), + currentError_(), + missingDependents_(), + valid_(true) +#if RAPIDJSON_SCHEMA_VERBOSE + , depth_(0) +#endif + { + } + + //! Constructor with output handler. + /*! + \param schemaDocument The schema document to conform to. + \param allocator Optional allocator for storing internal validation states. + \param schemaStackCapacity Optional initial capacity of schema path stack. + \param documentStackCapacity Optional initial capacity of document path stack. + */ + GenericSchemaValidator( + const SchemaDocumentType& schemaDocument, + OutputHandler& outputHandler, + StateAllocator* allocator = 0, + size_t schemaStackCapacity = kDefaultSchemaStackCapacity, + size_t documentStackCapacity = kDefaultDocumentStackCapacity) + : + schemaDocument_(&schemaDocument), + root_(schemaDocument.GetRoot()), + stateAllocator_(allocator), + ownStateAllocator_(0), + schemaStack_(allocator, schemaStackCapacity), + documentStack_(allocator, documentStackCapacity), + outputHandler_(&outputHandler), + error_(kObjectType), + currentError_(), + missingDependents_(), + valid_(true) +#if RAPIDJSON_SCHEMA_VERBOSE + , depth_(0) +#endif + { + } + + //! Destructor. + ~GenericSchemaValidator() { + Reset(); + RAPIDJSON_DELETE(ownStateAllocator_); + } + + //! Reset the internal states. + void Reset() { + while (!schemaStack_.Empty()) + PopSchema(); + documentStack_.Clear(); + error_.SetObject(); + currentError_.SetNull(); + missingDependents_.SetNull(); + valid_ = true; + } + + //! Checks whether the current state is valid. + // Implementation of ISchemaValidator + virtual bool IsValid() const { return valid_; } + + //! Gets the error object. + ValueType& GetError() { return error_; } + const ValueType& GetError() const { return error_; } + + //! Gets the JSON pointer pointed to the invalid schema. + PointerType GetInvalidSchemaPointer() const { + return schemaStack_.Empty() ? PointerType() : CurrentSchema().GetPointer(); + } + + //! Gets the keyword of invalid schema. + const Ch* GetInvalidSchemaKeyword() const { + return schemaStack_.Empty() ? 0 : CurrentContext().invalidKeyword; + } + + //! Gets the JSON pointer pointed to the invalid value. + PointerType GetInvalidDocumentPointer() const { + if (documentStack_.Empty()) { + return PointerType(); + } + else { + return PointerType(documentStack_.template Bottom(), documentStack_.GetSize() / sizeof(Ch)); + } + } + + void NotMultipleOf(int64_t actual, const SValue& expected) { + AddNumberError(SchemaType::GetMultipleOfString(), ValueType(actual).Move(), expected); + } + void NotMultipleOf(uint64_t actual, const SValue& expected) { + AddNumberError(SchemaType::GetMultipleOfString(), ValueType(actual).Move(), expected); + } + void NotMultipleOf(double actual, const SValue& expected) { + AddNumberError(SchemaType::GetMultipleOfString(), ValueType(actual).Move(), expected); + } + void AboveMaximum(int64_t actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMaximumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMaximumString : 0); + } + void AboveMaximum(uint64_t actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMaximumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMaximumString : 0); + } + void AboveMaximum(double actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMaximumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMaximumString : 0); + } + void BelowMinimum(int64_t actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMinimumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMinimumString : 0); + } + void BelowMinimum(uint64_t actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMinimumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMinimumString : 0); + } + void BelowMinimum(double actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMinimumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMinimumString : 0); + } + + void TooLong(const Ch* str, SizeType length, SizeType expected) { + AddNumberError(SchemaType::GetMaxLengthString(), + ValueType(str, length, GetStateAllocator()).Move(), SValue(expected).Move()); + } + void TooShort(const Ch* str, SizeType length, SizeType expected) { + AddNumberError(SchemaType::GetMinLengthString(), + ValueType(str, length, GetStateAllocator()).Move(), SValue(expected).Move()); + } + void DoesNotMatch(const Ch* str, SizeType length) { + currentError_.SetObject(); + currentError_.AddMember(GetActualString(), ValueType(str, length, GetStateAllocator()).Move(), GetStateAllocator()); + AddCurrentError(SchemaType::GetPatternString()); + } + + void DisallowedItem(SizeType index) { + currentError_.SetObject(); + currentError_.AddMember(GetDisallowedString(), ValueType(index).Move(), GetStateAllocator()); + AddCurrentError(SchemaType::GetAdditionalItemsString(), true); + } + void TooFewItems(SizeType actualCount, SizeType expectedCount) { + AddNumberError(SchemaType::GetMinItemsString(), + ValueType(actualCount).Move(), SValue(expectedCount).Move()); + } + void TooManyItems(SizeType actualCount, SizeType expectedCount) { + AddNumberError(SchemaType::GetMaxItemsString(), + ValueType(actualCount).Move(), SValue(expectedCount).Move()); + } + void DuplicateItems(SizeType index1, SizeType index2) { + ValueType duplicates(kArrayType); + duplicates.PushBack(index1, GetStateAllocator()); + duplicates.PushBack(index2, GetStateAllocator()); + currentError_.SetObject(); + currentError_.AddMember(GetDuplicatesString(), duplicates, GetStateAllocator()); + AddCurrentError(SchemaType::GetUniqueItemsString(), true); + } + + void TooManyProperties(SizeType actualCount, SizeType expectedCount) { + AddNumberError(SchemaType::GetMaxPropertiesString(), + ValueType(actualCount).Move(), SValue(expectedCount).Move()); + } + void TooFewProperties(SizeType actualCount, SizeType expectedCount) { + AddNumberError(SchemaType::GetMinPropertiesString(), + ValueType(actualCount).Move(), SValue(expectedCount).Move()); + } + void StartMissingProperties() { + currentError_.SetArray(); + } + void AddMissingProperty(const SValue& name) { + currentError_.PushBack(ValueType(name, GetStateAllocator()).Move(), GetStateAllocator()); + } + bool EndMissingProperties() { + if (currentError_.Empty()) + return false; + ValueType error(kObjectType); + error.AddMember(GetMissingString(), currentError_, GetStateAllocator()); + currentError_ = error; + AddCurrentError(SchemaType::GetRequiredString()); + return true; + } + void PropertyViolations(ISchemaValidator** subvalidators, SizeType count) { + for (SizeType i = 0; i < count; ++i) + MergeError(static_cast(subvalidators[i])->GetError()); + } + void DisallowedProperty(const Ch* name, SizeType length) { + currentError_.SetObject(); + currentError_.AddMember(GetDisallowedString(), ValueType(name, length, GetStateAllocator()).Move(), GetStateAllocator()); + AddCurrentError(SchemaType::GetAdditionalPropertiesString(), true); + } + + void StartDependencyErrors() { + currentError_.SetObject(); + } + void StartMissingDependentProperties() { + missingDependents_.SetArray(); + } + void AddMissingDependentProperty(const SValue& targetName) { + missingDependents_.PushBack(ValueType(targetName, GetStateAllocator()).Move(), GetStateAllocator()); + } + void EndMissingDependentProperties(const SValue& sourceName) { + if (!missingDependents_.Empty()) + currentError_.AddMember(ValueType(sourceName, GetStateAllocator()).Move(), + missingDependents_, GetStateAllocator()); + } + void AddDependencySchemaError(const SValue& sourceName, ISchemaValidator* subvalidator) { + currentError_.AddMember(ValueType(sourceName, GetStateAllocator()).Move(), + static_cast(subvalidator)->GetError(), GetStateAllocator()); + } + bool EndDependencyErrors() { + if (currentError_.ObjectEmpty()) + return false; + ValueType error(kObjectType); + error.AddMember(GetErrorsString(), currentError_, GetStateAllocator()); + currentError_ = error; + AddCurrentError(SchemaType::GetDependenciesString()); + return true; + } + + void DisallowedValue() { + currentError_.SetObject(); + AddCurrentError(SchemaType::GetEnumString()); + } + void StartDisallowedType() { + currentError_.SetArray(); + } + void AddExpectedType(const typename SchemaType::ValueType& expectedType) { + currentError_.PushBack(ValueType(expectedType, GetStateAllocator()).Move(), GetStateAllocator()); + } + void EndDisallowedType(const typename SchemaType::ValueType& actualType) { + ValueType error(kObjectType); + error.AddMember(GetExpectedString(), currentError_, GetStateAllocator()); + error.AddMember(GetActualString(), ValueType(actualType, GetStateAllocator()).Move(), GetStateAllocator()); + currentError_ = error; + AddCurrentError(SchemaType::GetTypeString()); + } + void NotAllOf(ISchemaValidator** subvalidators, SizeType count) { + for (SizeType i = 0; i < count; ++i) { + MergeError(static_cast(subvalidators[i])->GetError()); + } + } + void NoneOf(ISchemaValidator** subvalidators, SizeType count) { + AddErrorArray(SchemaType::GetAnyOfString(), subvalidators, count); + } + void NotOneOf(ISchemaValidator** subvalidators, SizeType count) { + AddErrorArray(SchemaType::GetOneOfString(), subvalidators, count); + } + void Disallowed() { + currentError_.SetObject(); + AddCurrentError(SchemaType::GetNotString()); + } + +#define RAPIDJSON_STRING_(name, ...) \ + static const StringRefType& Get##name##String() {\ + static const Ch s[] = { __VA_ARGS__, '\0' };\ + static const StringRefType v(s, static_cast(sizeof(s) / sizeof(Ch) - 1)); \ + return v;\ + } + + RAPIDJSON_STRING_(InstanceRef, 'i', 'n', 's', 't', 'a', 'n', 'c', 'e', 'R', 'e', 'f') + RAPIDJSON_STRING_(SchemaRef, 's', 'c', 'h', 'e', 'm', 'a', 'R', 'e', 'f') + RAPIDJSON_STRING_(Expected, 'e', 'x', 'p', 'e', 'c', 't', 'e', 'd') + RAPIDJSON_STRING_(Actual, 'a', 'c', 't', 'u', 'a', 'l') + RAPIDJSON_STRING_(Disallowed, 'd', 'i', 's', 'a', 'l', 'l', 'o', 'w', 'e', 'd') + RAPIDJSON_STRING_(Missing, 'm', 'i', 's', 's', 'i', 'n', 'g') + RAPIDJSON_STRING_(Errors, 'e', 'r', 'r', 'o', 'r', 's') + RAPIDJSON_STRING_(Duplicates, 'd', 'u', 'p', 'l', 'i', 'c', 'a', 't', 'e', 's') + +#undef RAPIDJSON_STRING_ + +#if RAPIDJSON_SCHEMA_VERBOSE +#define RAPIDJSON_SCHEMA_HANDLE_BEGIN_VERBOSE_() \ +RAPIDJSON_MULTILINEMACRO_BEGIN\ + *documentStack_.template Push() = '\0';\ + documentStack_.template Pop(1);\ + internal::PrintInvalidDocument(documentStack_.template Bottom());\ +RAPIDJSON_MULTILINEMACRO_END +#else +#define RAPIDJSON_SCHEMA_HANDLE_BEGIN_VERBOSE_() +#endif + +#define RAPIDJSON_SCHEMA_HANDLE_BEGIN_(method, arg1)\ + if (!valid_) return false; \ + if (!BeginValue() || !CurrentSchema().method arg1) {\ + RAPIDJSON_SCHEMA_HANDLE_BEGIN_VERBOSE_();\ + return valid_ = false;\ + } + +#define RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(method, arg2)\ + for (Context* context = schemaStack_.template Bottom(); context != schemaStack_.template End(); context++) {\ + if (context->hasher)\ + static_cast(context->hasher)->method arg2;\ + if (context->validators)\ + for (SizeType i_ = 0; i_ < context->validatorCount; i_++)\ + static_cast(context->validators[i_])->method arg2;\ + if (context->patternPropertiesValidators)\ + for (SizeType i_ = 0; i_ < context->patternPropertiesValidatorCount; i_++)\ + static_cast(context->patternPropertiesValidators[i_])->method arg2;\ + } + +#define RAPIDJSON_SCHEMA_HANDLE_END_(method, arg2)\ + return valid_ = EndValue() && (!outputHandler_ || outputHandler_->method arg2) + +#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2) \ + RAPIDJSON_SCHEMA_HANDLE_BEGIN_ (method, arg1);\ + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(method, arg2);\ + RAPIDJSON_SCHEMA_HANDLE_END_ (method, arg2) + + bool Null() { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Null, (CurrentContext()), ( )); } + bool Bool(bool b) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Bool, (CurrentContext(), b), (b)); } + bool Int(int i) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Int, (CurrentContext(), i), (i)); } + bool Uint(unsigned u) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Uint, (CurrentContext(), u), (u)); } + bool Int64(int64_t i) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Int64, (CurrentContext(), i), (i)); } + bool Uint64(uint64_t u) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Uint64, (CurrentContext(), u), (u)); } + bool Double(double d) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Double, (CurrentContext(), d), (d)); } + bool RawNumber(const Ch* str, SizeType length, bool copy) + { RAPIDJSON_SCHEMA_HANDLE_VALUE_(String, (CurrentContext(), str, length, copy), (str, length, copy)); } + bool String(const Ch* str, SizeType length, bool copy) + { RAPIDJSON_SCHEMA_HANDLE_VALUE_(String, (CurrentContext(), str, length, copy), (str, length, copy)); } + + bool StartObject() { + RAPIDJSON_SCHEMA_HANDLE_BEGIN_(StartObject, (CurrentContext())); + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(StartObject, ()); + return valid_ = !outputHandler_ || outputHandler_->StartObject(); + } + + bool Key(const Ch* str, SizeType len, bool copy) { + if (!valid_) return false; + AppendToken(str, len); + if (!CurrentSchema().Key(CurrentContext(), str, len, copy)) return valid_ = false; + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(Key, (str, len, copy)); + return valid_ = !outputHandler_ || outputHandler_->Key(str, len, copy); + } + + bool EndObject(SizeType memberCount) { + if (!valid_) return false; + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(EndObject, (memberCount)); + if (!CurrentSchema().EndObject(CurrentContext(), memberCount)) return valid_ = false; + RAPIDJSON_SCHEMA_HANDLE_END_(EndObject, (memberCount)); + } + + bool StartArray() { + RAPIDJSON_SCHEMA_HANDLE_BEGIN_(StartArray, (CurrentContext())); + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(StartArray, ()); + return valid_ = !outputHandler_ || outputHandler_->StartArray(); + } + + bool EndArray(SizeType elementCount) { + if (!valid_) return false; + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(EndArray, (elementCount)); + if (!CurrentSchema().EndArray(CurrentContext(), elementCount)) return valid_ = false; + RAPIDJSON_SCHEMA_HANDLE_END_(EndArray, (elementCount)); + } + +#undef RAPIDJSON_SCHEMA_HANDLE_BEGIN_VERBOSE_ +#undef RAPIDJSON_SCHEMA_HANDLE_BEGIN_ +#undef RAPIDJSON_SCHEMA_HANDLE_PARALLEL_ +#undef RAPIDJSON_SCHEMA_HANDLE_VALUE_ + + // Implementation of ISchemaStateFactory + virtual ISchemaValidator* CreateSchemaValidator(const SchemaType& root) { + return new (GetStateAllocator().Malloc(sizeof(GenericSchemaValidator))) GenericSchemaValidator(*schemaDocument_, root, documentStack_.template Bottom(), documentStack_.GetSize(), +#if RAPIDJSON_SCHEMA_VERBOSE + depth_ + 1, +#endif + &GetStateAllocator()); + } + + virtual void DestroySchemaValidator(ISchemaValidator* validator) { + GenericSchemaValidator* v = static_cast(validator); + v->~GenericSchemaValidator(); + StateAllocator::Free(v); + } + + virtual void* CreateHasher() { + return new (GetStateAllocator().Malloc(sizeof(HasherType))) HasherType(&GetStateAllocator()); + } + + virtual uint64_t GetHashCode(void* hasher) { + return static_cast(hasher)->GetHashCode(); + } + + virtual void DestroryHasher(void* hasher) { + HasherType* h = static_cast(hasher); + h->~HasherType(); + StateAllocator::Free(h); + } + + virtual void* MallocState(size_t size) { + return GetStateAllocator().Malloc(size); + } + + virtual void FreeState(void* p) { + StateAllocator::Free(p); + } + +private: + typedef typename SchemaType::Context Context; + typedef GenericValue, StateAllocator> HashCodeArray; + typedef internal::Hasher HasherType; + + GenericSchemaValidator( + const SchemaDocumentType& schemaDocument, + const SchemaType& root, + const char* basePath, size_t basePathSize, +#if RAPIDJSON_SCHEMA_VERBOSE + unsigned depth, +#endif + StateAllocator* allocator = 0, + size_t schemaStackCapacity = kDefaultSchemaStackCapacity, + size_t documentStackCapacity = kDefaultDocumentStackCapacity) + : + schemaDocument_(&schemaDocument), + root_(root), + stateAllocator_(allocator), + ownStateAllocator_(0), + schemaStack_(allocator, schemaStackCapacity), + documentStack_(allocator, documentStackCapacity), + outputHandler_(0), + error_(kObjectType), + currentError_(), + missingDependents_(), + valid_(true) +#if RAPIDJSON_SCHEMA_VERBOSE + , depth_(depth) +#endif + { + if (basePath && basePathSize) + memcpy(documentStack_.template Push(basePathSize), basePath, basePathSize); + } + + StateAllocator& GetStateAllocator() { + if (!stateAllocator_) + stateAllocator_ = ownStateAllocator_ = RAPIDJSON_NEW(StateAllocator)(); + return *stateAllocator_; + } + + bool BeginValue() { + if (schemaStack_.Empty()) + PushSchema(root_); + else { + if (CurrentContext().inArray) + internal::TokenHelper, Ch>::AppendIndexToken(documentStack_, CurrentContext().arrayElementIndex); + + if (!CurrentSchema().BeginValue(CurrentContext())) + return false; + + SizeType count = CurrentContext().patternPropertiesSchemaCount; + const SchemaType** sa = CurrentContext().patternPropertiesSchemas; + typename Context::PatternValidatorType patternValidatorType = CurrentContext().valuePatternValidatorType; + bool valueUniqueness = CurrentContext().valueUniqueness; + RAPIDJSON_ASSERT(CurrentContext().valueSchema); + PushSchema(*CurrentContext().valueSchema); + + if (count > 0) { + CurrentContext().objectPatternValidatorType = patternValidatorType; + ISchemaValidator**& va = CurrentContext().patternPropertiesValidators; + SizeType& validatorCount = CurrentContext().patternPropertiesValidatorCount; + va = static_cast(MallocState(sizeof(ISchemaValidator*) * count)); + for (SizeType i = 0; i < count; i++) + va[validatorCount++] = CreateSchemaValidator(*sa[i]); + } + + CurrentContext().arrayUniqueness = valueUniqueness; + } + return true; + } + + bool EndValue() { + if (!CurrentSchema().EndValue(CurrentContext())) + return false; + +#if RAPIDJSON_SCHEMA_VERBOSE + GenericStringBuffer sb; + schemaDocument_->GetPointer(&CurrentSchema()).Stringify(sb); + + *documentStack_.template Push() = '\0'; + documentStack_.template Pop(1); + internal::PrintValidatorPointers(depth_, sb.GetString(), documentStack_.template Bottom()); +#endif + + uint64_t h = CurrentContext().arrayUniqueness ? static_cast(CurrentContext().hasher)->GetHashCode() : 0; + + PopSchema(); + + if (!schemaStack_.Empty()) { + Context& context = CurrentContext(); + if (context.valueUniqueness) { + HashCodeArray* a = static_cast(context.arrayElementHashCodes); + if (!a) + CurrentContext().arrayElementHashCodes = a = new (GetStateAllocator().Malloc(sizeof(HashCodeArray))) HashCodeArray(kArrayType); + for (typename HashCodeArray::ConstValueIterator itr = a->Begin(); itr != a->End(); ++itr) + if (itr->GetUint64() == h) { + DuplicateItems(static_cast(itr - a->Begin()), a->Size()); + RAPIDJSON_INVALID_KEYWORD_RETURN(SchemaType::GetUniqueItemsString()); + } + a->PushBack(h, GetStateAllocator()); + } + } + + // Remove the last token of document pointer + while (!documentStack_.Empty() && *documentStack_.template Pop(1) != '/') + ; + + return true; + } + + void AppendToken(const Ch* str, SizeType len) { + documentStack_.template Reserve(1 + len * 2); // worst case all characters are escaped as two characters + *documentStack_.template PushUnsafe() = '/'; + for (SizeType i = 0; i < len; i++) { + if (str[i] == '~') { + *documentStack_.template PushUnsafe() = '~'; + *documentStack_.template PushUnsafe() = '0'; + } + else if (str[i] == '/') { + *documentStack_.template PushUnsafe() = '~'; + *documentStack_.template PushUnsafe() = '1'; + } + else + *documentStack_.template PushUnsafe() = str[i]; + } + } + + RAPIDJSON_FORCEINLINE void PushSchema(const SchemaType& schema) { new (schemaStack_.template Push()) Context(*this, *this, &schema); } + + RAPIDJSON_FORCEINLINE void PopSchema() { + Context* c = schemaStack_.template Pop(1); + if (HashCodeArray* a = static_cast(c->arrayElementHashCodes)) { + a->~HashCodeArray(); + StateAllocator::Free(a); + } + c->~Context(); + } + + void AddErrorLocation(ValueType& result, bool parent) { + GenericStringBuffer sb; + PointerType instancePointer = GetInvalidDocumentPointer(); + ((parent && instancePointer.GetTokenCount() > 0) + ? PointerType(instancePointer.GetTokens(), instancePointer.GetTokenCount() - 1) + : instancePointer).StringifyUriFragment(sb); + ValueType instanceRef(sb.GetString(), static_cast(sb.GetSize() / sizeof(Ch)), + GetStateAllocator()); + result.AddMember(GetInstanceRefString(), instanceRef, GetStateAllocator()); + sb.Clear(); + memcpy(sb.Push(CurrentSchema().GetURI().GetStringLength()), + CurrentSchema().GetURI().GetString(), + CurrentSchema().GetURI().GetStringLength() * sizeof(Ch)); + GetInvalidSchemaPointer().StringifyUriFragment(sb); + ValueType schemaRef(sb.GetString(), static_cast(sb.GetSize() / sizeof(Ch)), + GetStateAllocator()); + result.AddMember(GetSchemaRefString(), schemaRef, GetStateAllocator()); + } + + void AddError(ValueType& keyword, ValueType& error) { + typename ValueType::MemberIterator member = error_.FindMember(keyword); + if (member == error_.MemberEnd()) + error_.AddMember(keyword, error, GetStateAllocator()); + else { + if (member->value.IsObject()) { + ValueType errors(kArrayType); + errors.PushBack(member->value, GetStateAllocator()); + member->value = errors; + } + member->value.PushBack(error, GetStateAllocator()); + } + } + + void AddCurrentError(const typename SchemaType::ValueType& keyword, bool parent = false) { + AddErrorLocation(currentError_, parent); + AddError(ValueType(keyword, GetStateAllocator(), false).Move(), currentError_); + } + + void MergeError(ValueType& other) { + for (typename ValueType::MemberIterator it = other.MemberBegin(), end = other.MemberEnd(); it != end; ++it) { + AddError(it->name, it->value); + } + } + + void AddNumberError(const typename SchemaType::ValueType& keyword, ValueType& actual, const SValue& expected, + const typename SchemaType::ValueType& (*exclusive)() = 0) { + currentError_.SetObject(); + currentError_.AddMember(GetActualString(), actual, GetStateAllocator()); + currentError_.AddMember(GetExpectedString(), ValueType(expected, GetStateAllocator()).Move(), GetStateAllocator()); + if (exclusive) + currentError_.AddMember(ValueType(exclusive(), GetStateAllocator()).Move(), true, GetStateAllocator()); + AddCurrentError(keyword); + } + + void AddErrorArray(const typename SchemaType::ValueType& keyword, + ISchemaValidator** subvalidators, SizeType count) { + ValueType errors(kArrayType); + for (SizeType i = 0; i < count; ++i) + errors.PushBack(static_cast(subvalidators[i])->GetError(), GetStateAllocator()); + currentError_.SetObject(); + currentError_.AddMember(GetErrorsString(), errors, GetStateAllocator()); + AddCurrentError(keyword); + } + + const SchemaType& CurrentSchema() const { return *schemaStack_.template Top()->schema; } + Context& CurrentContext() { return *schemaStack_.template Top(); } + const Context& CurrentContext() const { return *schemaStack_.template Top(); } + + static const size_t kDefaultSchemaStackCapacity = 1024; + static const size_t kDefaultDocumentStackCapacity = 256; + const SchemaDocumentType* schemaDocument_; + const SchemaType& root_; + StateAllocator* stateAllocator_; + StateAllocator* ownStateAllocator_; + internal::Stack schemaStack_; //!< stack to store the current path of schema (BaseSchemaType *) + internal::Stack documentStack_; //!< stack to store the current path of validating document (Ch) + OutputHandler* outputHandler_; + ValueType error_; + ValueType currentError_; + ValueType missingDependents_; + bool valid_; +#if RAPIDJSON_SCHEMA_VERBOSE + unsigned depth_; +#endif +}; + +typedef GenericSchemaValidator SchemaValidator; + +/////////////////////////////////////////////////////////////////////////////// +// SchemaValidatingReader + +//! A helper class for parsing with validation. +/*! + This helper class is a functor, designed as a parameter of \ref GenericDocument::Populate(). + + \tparam parseFlags Combination of \ref ParseFlag. + \tparam InputStream Type of input stream, implementing Stream concept. + \tparam SourceEncoding Encoding of the input stream. + \tparam SchemaDocumentType Type of schema document. + \tparam StackAllocator Allocator type for stack. +*/ +template < + unsigned parseFlags, + typename InputStream, + typename SourceEncoding, + typename SchemaDocumentType = SchemaDocument, + typename StackAllocator = CrtAllocator> +class SchemaValidatingReader { +public: + typedef typename SchemaDocumentType::PointerType PointerType; + typedef typename InputStream::Ch Ch; + typedef GenericValue ValueType; + + //! Constructor + /*! + \param is Input stream. + \param sd Schema document. + */ + SchemaValidatingReader(InputStream& is, const SchemaDocumentType& sd) : is_(is), sd_(sd), invalidSchemaKeyword_(), error_(kObjectType), isValid_(true) {} + + template + bool operator()(Handler& handler) { + GenericReader reader; + GenericSchemaValidator validator(sd_, handler); + parseResult_ = reader.template Parse(is_, validator); + + isValid_ = validator.IsValid(); + if (isValid_) { + invalidSchemaPointer_ = PointerType(); + invalidSchemaKeyword_ = 0; + invalidDocumentPointer_ = PointerType(); + error_.SetObject(); + } + else { + invalidSchemaPointer_ = validator.GetInvalidSchemaPointer(); + invalidSchemaKeyword_ = validator.GetInvalidSchemaKeyword(); + invalidDocumentPointer_ = validator.GetInvalidDocumentPointer(); + error_.CopyFrom(validator.GetError(), allocator_); + } + + return parseResult_; + } + + const ParseResult& GetParseResult() const { return parseResult_; } + bool IsValid() const { return isValid_; } + const PointerType& GetInvalidSchemaPointer() const { return invalidSchemaPointer_; } + const Ch* GetInvalidSchemaKeyword() const { return invalidSchemaKeyword_; } + const PointerType& GetInvalidDocumentPointer() const { return invalidDocumentPointer_; } + const ValueType& GetError() const { return error_; } + +private: + InputStream& is_; + const SchemaDocumentType& sd_; + + ParseResult parseResult_; + PointerType invalidSchemaPointer_; + const Ch* invalidSchemaKeyword_; + PointerType invalidDocumentPointer_; + StackAllocator allocator_; + ValueType error_; + bool isValid_; +}; + +RAPIDJSON_NAMESPACE_END +RAPIDJSON_DIAG_POP + +#endif // RAPIDJSON_SCHEMA_H_ diff --git a/external/rlottie/src/lottie/rapidjson/stream.h b/external/rlottie/src/lottie/rapidjson/stream.h new file mode 100644 index 000000000..7f2643e48 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/stream.h @@ -0,0 +1,223 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#include "rapidjson.h" + +#ifndef RAPIDJSON_STREAM_H_ +#define RAPIDJSON_STREAM_H_ + +#include "encodings.h" + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// Stream + +/*! \class rapidjson::Stream + \brief Concept for reading and writing characters. + + For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd(). + + For write-only stream, only need to implement Put() and Flush(). + +\code +concept Stream { + typename Ch; //!< Character type of the stream. + + //! Read the current character from stream without moving the read cursor. + Ch Peek() const; + + //! Read the current character from stream and moving the read cursor to next character. + Ch Take(); + + //! Get the current read cursor. + //! \return Number of characters read from start. + size_t Tell(); + + //! Begin writing operation at the current read pointer. + //! \return The begin writer pointer. + Ch* PutBegin(); + + //! Write a character. + void Put(Ch c); + + //! Flush the buffer. + void Flush(); + + //! End the writing operation. + //! \param begin The begin write pointer returned by PutBegin(). + //! \return Number of characters written. + size_t PutEnd(Ch* begin); +} +\endcode +*/ + +//! Provides additional information for stream. +/*! + By using traits pattern, this type provides a default configuration for stream. + For custom stream, this type can be specialized for other configuration. + See TEST(Reader, CustomStringStream) in readertest.cpp for example. +*/ +template +struct StreamTraits { + //! Whether to make local copy of stream for optimization during parsing. + /*! + By default, for safety, streams do not use local copy optimization. + Stream that can be copied fast should specialize this, like StreamTraits. + */ + enum { copyOptimization = 0 }; +}; + +//! Reserve n characters for writing to a stream. +template +inline void PutReserve(Stream& stream, size_t count) { + (void)stream; + (void)count; +} + +//! Write character to a stream, presuming buffer is reserved. +template +inline void PutUnsafe(Stream& stream, typename Stream::Ch c) { + stream.Put(c); +} + +//! Put N copies of a character to a stream. +template +inline void PutN(Stream& stream, Ch c, size_t n) { + PutReserve(stream, n); + for (size_t i = 0; i < n; i++) + PutUnsafe(stream, c); +} + +/////////////////////////////////////////////////////////////////////////////// +// GenericStreamWrapper + +//! A Stream Wrapper +/*! \tThis string stream is a wrapper for any stream by just forwarding any + \treceived message to the origin stream. + \note implements Stream concept +*/ + +#if defined(_MSC_VER) && _MSC_VER <= 1800 +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4702) // unreachable code +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +template > +class GenericStreamWrapper { +public: + typedef typename Encoding::Ch Ch; + GenericStreamWrapper(InputStream& is): is_(is) {} + + Ch Peek() const { return is_.Peek(); } + Ch Take() { return is_.Take(); } + size_t Tell() { return is_.Tell(); } + Ch* PutBegin() { return is_.PutBegin(); } + void Put(Ch ch) { is_.Put(ch); } + void Flush() { is_.Flush(); } + size_t PutEnd(Ch* ch) { return is_.PutEnd(ch); } + + // wrapper for MemoryStream + const Ch* Peek4() const { return is_.Peek4(); } + + // wrapper for AutoUTFInputStream + UTFType GetType() const { return is_.GetType(); } + bool HasBOM() const { return is_.HasBOM(); } + +protected: + InputStream& is_; +}; + +#if defined(_MSC_VER) && _MSC_VER <= 1800 +RAPIDJSON_DIAG_POP +#endif + +/////////////////////////////////////////////////////////////////////////////// +// StringStream + +//! Read-only string stream. +/*! \note implements Stream concept +*/ +template +struct GenericStringStream { + typedef typename Encoding::Ch Ch; + + GenericStringStream(const Ch *src) : src_(src), head_(src) {} + + Ch Peek() const { return *src_; } + Ch Take() { return *src_++; } + size_t Tell() const { return static_cast(src_ - head_); } + + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + + const Ch* src_; //!< Current read position. + const Ch* head_; //!< Original head of the string. +}; + +template +struct StreamTraits > { + enum { copyOptimization = 1 }; +}; + +//! String stream with UTF8 encoding. +typedef GenericStringStream > StringStream; + +/////////////////////////////////////////////////////////////////////////////// +// InsituStringStream + +//! A read-write string stream. +/*! This string stream is particularly designed for in-situ parsing. + \note implements Stream concept +*/ +template +struct GenericInsituStringStream { + typedef typename Encoding::Ch Ch; + + GenericInsituStringStream(Ch *src) : src_(src), dst_(0), head_(src) {} + + // Read + Ch Peek() { return *src_; } + Ch Take() { return *src_++; } + size_t Tell() { return static_cast(src_ - head_); } + + // Write + void Put(Ch c) { RAPIDJSON_ASSERT(dst_ != 0); *dst_++ = c; } + + Ch* PutBegin() { return dst_ = src_; } + size_t PutEnd(Ch* begin) { return static_cast(dst_ - begin); } + void Flush() {} + + Ch* Push(size_t count) { Ch* begin = dst_; dst_ += count; return begin; } + void Pop(size_t count) { dst_ -= count; } + + Ch* src_; + Ch* dst_; + Ch* head_; +}; + +template +struct StreamTraits > { + enum { copyOptimization = 1 }; +}; + +//! Insitu string stream with UTF8 encoding. +typedef GenericInsituStringStream > InsituStringStream; + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_STREAM_H_ diff --git a/external/rlottie/src/lottie/rapidjson/stringbuffer.h b/external/rlottie/src/lottie/rapidjson/stringbuffer.h new file mode 100644 index 000000000..4e38b82c3 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/stringbuffer.h @@ -0,0 +1,121 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_STRINGBUFFER_H_ +#define RAPIDJSON_STRINGBUFFER_H_ + +#include "stream.h" +#include "internal/stack.h" + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS +#include // std::move +#endif + +#include "internal/stack.h" + +#if defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(c++98-compat) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Represents an in-memory output stream. +/*! + \tparam Encoding Encoding of the stream. + \tparam Allocator type for allocating memory buffer. + \note implements Stream concept +*/ +template +class GenericStringBuffer { +public: + typedef typename Encoding::Ch Ch; + + GenericStringBuffer(Allocator* allocator = 0, size_t capacity = kDefaultCapacity) : stack_(allocator, capacity) {} + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericStringBuffer(GenericStringBuffer&& rhs) : stack_(std::move(rhs.stack_)) {} + GenericStringBuffer& operator=(GenericStringBuffer&& rhs) { + if (&rhs != this) + stack_ = std::move(rhs.stack_); + return *this; + } +#endif + + void Put(Ch c) { *stack_.template Push() = c; } + void PutUnsafe(Ch c) { *stack_.template PushUnsafe() = c; } + void Flush() {} + + void Clear() { stack_.Clear(); } + void ShrinkToFit() { + // Push and pop a null terminator. This is safe. + *stack_.template Push() = '\0'; + stack_.ShrinkToFit(); + stack_.template Pop(1); + } + + void Reserve(size_t count) { stack_.template Reserve(count); } + Ch* Push(size_t count) { return stack_.template Push(count); } + Ch* PushUnsafe(size_t count) { return stack_.template PushUnsafe(count); } + void Pop(size_t count) { stack_.template Pop(count); } + + const Ch* GetString() const { + // Push and pop a null terminator. This is safe. + *stack_.template Push() = '\0'; + stack_.template Pop(1); + + return stack_.template Bottom(); + } + + //! Get the size of string in bytes in the string buffer. + size_t GetSize() const { return stack_.GetSize(); } + + //! Get the length of string in Ch in the string buffer. + size_t GetLength() const { return stack_.GetSize() / sizeof(Ch); } + + static const size_t kDefaultCapacity = 256; + mutable internal::Stack stack_; + +private: + // Prohibit copy constructor & assignment operator. + GenericStringBuffer(const GenericStringBuffer&); + GenericStringBuffer& operator=(const GenericStringBuffer&); +}; + +//! String buffer with UTF8 encoding +typedef GenericStringBuffer > StringBuffer; + +template +inline void PutReserve(GenericStringBuffer& stream, size_t count) { + stream.Reserve(count); +} + +template +inline void PutUnsafe(GenericStringBuffer& stream, typename Encoding::Ch c) { + stream.PutUnsafe(c); +} + +//! Implement specialized version of PutN() with memset() for better performance. +template<> +inline void PutN(GenericStringBuffer >& stream, char c, size_t n) { + std::memset(stream.stack_.Push(n), c, n * sizeof(c)); +} + +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_STRINGBUFFER_H_ diff --git a/external/rlottie/src/lottie/rapidjson/writer.h b/external/rlottie/src/lottie/rapidjson/writer.h new file mode 100644 index 000000000..51dd86d58 --- /dev/null +++ b/external/rlottie/src/lottie/rapidjson/writer.h @@ -0,0 +1,710 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// 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. + +#ifndef RAPIDJSON_WRITER_H_ +#define RAPIDJSON_WRITER_H_ + +#include "stream.h" +#include "internal/clzll.h" +#include "internal/meta.h" +#include "internal/stack.h" +#include "internal/strfunc.h" +#include "internal/dtoa.h" +#include "internal/itoa.h" +#include "stringbuffer.h" +#include // placement new + +#if defined(RAPIDJSON_SIMD) && defined(_MSC_VER) +#include +#pragma intrinsic(_BitScanForward) +#endif +#ifdef RAPIDJSON_SSE42 +#include +#elif defined(RAPIDJSON_SSE2) +#include +#elif defined(RAPIDJSON_NEON) +#include +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(unreachable-code) +RAPIDJSON_DIAG_OFF(c++98-compat) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// WriteFlag + +/*! \def RAPIDJSON_WRITE_DEFAULT_FLAGS + \ingroup RAPIDJSON_CONFIG + \brief User-defined kWriteDefaultFlags definition. + + User can define this as any \c WriteFlag combinations. +*/ +#ifndef RAPIDJSON_WRITE_DEFAULT_FLAGS +#define RAPIDJSON_WRITE_DEFAULT_FLAGS kWriteNoFlags +#endif + +//! Combination of writeFlags +enum WriteFlag { + kWriteNoFlags = 0, //!< No flags are set. + kWriteValidateEncodingFlag = 1, //!< Validate encoding of JSON strings. + kWriteNanAndInfFlag = 2, //!< Allow writing of Infinity, -Infinity and NaN. + kWriteDefaultFlags = RAPIDJSON_WRITE_DEFAULT_FLAGS //!< Default write flags. Can be customized by defining RAPIDJSON_WRITE_DEFAULT_FLAGS +}; + +//! JSON writer +/*! Writer implements the concept Handler. + It generates JSON text by events to an output os. + + User may programmatically calls the functions of a writer to generate JSON text. + + On the other side, a writer can also be passed to objects that generates events, + + for example Reader::Parse() and Document::Accept(). + + \tparam OutputStream Type of output stream. + \tparam SourceEncoding Encoding of source string. + \tparam TargetEncoding Encoding of output stream. + \tparam StackAllocator Type of allocator for allocating memory of stack. + \note implements Handler concept +*/ +template, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> +class Writer { +public: + typedef typename SourceEncoding::Ch Ch; + + static const int kDefaultMaxDecimalPlaces = 324; + + //! Constructor + /*! \param os Output stream. + \param stackAllocator User supplied allocator. If it is null, it will create a private one. + \param levelDepth Initial capacity of stack. + */ + explicit + Writer(OutputStream& os, StackAllocator* stackAllocator = 0, size_t levelDepth = kDefaultLevelDepth) : + os_(&os), level_stack_(stackAllocator, levelDepth * sizeof(Level)), maxDecimalPlaces_(kDefaultMaxDecimalPlaces), hasRoot_(false) {} + + explicit + Writer(StackAllocator* allocator = 0, size_t levelDepth = kDefaultLevelDepth) : + os_(0), level_stack_(allocator, levelDepth * sizeof(Level)), maxDecimalPlaces_(kDefaultMaxDecimalPlaces), hasRoot_(false) {} + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + Writer(Writer&& rhs) : + os_(rhs.os_), level_stack_(std::move(rhs.level_stack_)), maxDecimalPlaces_(rhs.maxDecimalPlaces_), hasRoot_(rhs.hasRoot_) { + rhs.os_ = 0; + } +#endif + + //! Reset the writer with a new stream. + /*! + This function reset the writer with a new stream and default settings, + in order to make a Writer object reusable for output multiple JSONs. + + \param os New output stream. + \code + Writer writer(os1); + writer.StartObject(); + // ... + writer.EndObject(); + + writer.Reset(os2); + writer.StartObject(); + // ... + writer.EndObject(); + \endcode + */ + void Reset(OutputStream& os) { + os_ = &os; + hasRoot_ = false; + level_stack_.Clear(); + } + + //! Checks whether the output is a complete JSON. + /*! + A complete JSON has a complete root object or array. + */ + bool IsComplete() const { + return hasRoot_ && level_stack_.Empty(); + } + + int GetMaxDecimalPlaces() const { + return maxDecimalPlaces_; + } + + //! Sets the maximum number of decimal places for double output. + /*! + This setting truncates the output with specified number of decimal places. + + For example, + + \code + writer.SetMaxDecimalPlaces(3); + writer.StartArray(); + writer.Double(0.12345); // "0.123" + writer.Double(0.0001); // "0.0" + writer.Double(1.234567890123456e30); // "1.234567890123456e30" (do not truncate significand for positive exponent) + writer.Double(1.23e-4); // "0.0" (do truncate significand for negative exponent) + writer.EndArray(); + \endcode + + The default setting does not truncate any decimal places. You can restore to this setting by calling + \code + writer.SetMaxDecimalPlaces(Writer::kDefaultMaxDecimalPlaces); + \endcode + */ + void SetMaxDecimalPlaces(int maxDecimalPlaces) { + maxDecimalPlaces_ = maxDecimalPlaces; + } + + /*!@name Implementation of Handler + \see Handler + */ + //@{ + + bool Null() { Prefix(kNullType); return EndValue(WriteNull()); } + bool Bool(bool b) { Prefix(b ? kTrueType : kFalseType); return EndValue(WriteBool(b)); } + bool Int(int i) { Prefix(kNumberType); return EndValue(WriteInt(i)); } + bool Uint(unsigned u) { Prefix(kNumberType); return EndValue(WriteUint(u)); } + bool Int64(int64_t i64) { Prefix(kNumberType); return EndValue(WriteInt64(i64)); } + bool Uint64(uint64_t u64) { Prefix(kNumberType); return EndValue(WriteUint64(u64)); } + + //! Writes the given \c double value to the stream + /*! + \param d The value to be written. + \return Whether it is succeed. + */ + bool Double(double d) { Prefix(kNumberType); return EndValue(WriteDouble(d)); } + + bool RawNumber(const Ch* str, SizeType length, bool copy = false) { + RAPIDJSON_ASSERT(str != 0); + (void)copy; + Prefix(kNumberType); + return EndValue(WriteString(str, length)); + } + + bool String(const Ch* str, SizeType length, bool copy = false) { + RAPIDJSON_ASSERT(str != 0); + (void)copy; + Prefix(kStringType); + return EndValue(WriteString(str, length)); + } + +#if RAPIDJSON_HAS_STDSTRING + bool String(const std::basic_string& str) { + return String(str.data(), SizeType(str.size())); + } +#endif + + bool StartObject() { + Prefix(kObjectType); + new (level_stack_.template Push()) Level(false); + return WriteStartObject(); + } + + bool Key(const Ch* str, SizeType length, bool copy = false) { return String(str, length, copy); } + +#if RAPIDJSON_HAS_STDSTRING + bool Key(const std::basic_string& str) + { + return Key(str.data(), SizeType(str.size())); + } +#endif + + bool EndObject(SizeType memberCount = 0) { + (void)memberCount; + RAPIDJSON_ASSERT(level_stack_.GetSize() >= sizeof(Level)); // not inside an Object + RAPIDJSON_ASSERT(!level_stack_.template Top()->inArray); // currently inside an Array, not Object + RAPIDJSON_ASSERT(0 == level_stack_.template Top()->valueCount % 2); // Object has a Key without a Value + level_stack_.template Pop(1); + return EndValue(WriteEndObject()); + } + + bool StartArray() { + Prefix(kArrayType); + new (level_stack_.template Push()) Level(true); + return WriteStartArray(); + } + + bool EndArray(SizeType elementCount = 0) { + (void)elementCount; + RAPIDJSON_ASSERT(level_stack_.GetSize() >= sizeof(Level)); + RAPIDJSON_ASSERT(level_stack_.template Top()->inArray); + level_stack_.template Pop(1); + return EndValue(WriteEndArray()); + } + //@} + + /*! @name Convenience extensions */ + //@{ + + //! Simpler but slower overload. + bool String(const Ch* const& str) { return String(str, internal::StrLen(str)); } + bool Key(const Ch* const& str) { return Key(str, internal::StrLen(str)); } + + //@} + + //! Write a raw JSON value. + /*! + For user to write a stringified JSON as a value. + + \param json A well-formed JSON value. It should not contain null character within [0, length - 1] range. + \param length Length of the json. + \param type Type of the root of json. + */ + bool RawValue(const Ch* json, size_t length, Type type) { + RAPIDJSON_ASSERT(json != 0); + Prefix(type); + return EndValue(WriteRawValue(json, length)); + } + + //! Flush the output stream. + /*! + Allows the user to flush the output stream immediately. + */ + void Flush() { + os_->Flush(); + } + + static const size_t kDefaultLevelDepth = 32; + +protected: + //! Information for each nested level + struct Level { + Level(bool inArray_) : valueCount(0), inArray(inArray_) {} + size_t valueCount; //!< number of values in this level + bool inArray; //!< true if in array, otherwise in object + }; + + bool WriteNull() { + PutReserve(*os_, 4); + PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'u'); PutUnsafe(*os_, 'l'); PutUnsafe(*os_, 'l'); return true; + } + + bool WriteBool(bool b) { + if (b) { + PutReserve(*os_, 4); + PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'r'); PutUnsafe(*os_, 'u'); PutUnsafe(*os_, 'e'); + } + else { + PutReserve(*os_, 5); + PutUnsafe(*os_, 'f'); PutUnsafe(*os_, 'a'); PutUnsafe(*os_, 'l'); PutUnsafe(*os_, 's'); PutUnsafe(*os_, 'e'); + } + return true; + } + + bool WriteInt(int i) { + char buffer[11]; + const char* end = internal::i32toa(i, buffer); + PutReserve(*os_, static_cast(end - buffer)); + for (const char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteUint(unsigned u) { + char buffer[10]; + const char* end = internal::u32toa(u, buffer); + PutReserve(*os_, static_cast(end - buffer)); + for (const char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteInt64(int64_t i64) { + char buffer[21]; + const char* end = internal::i64toa(i64, buffer); + PutReserve(*os_, static_cast(end - buffer)); + for (const char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteUint64(uint64_t u64) { + char buffer[20]; + char* end = internal::u64toa(u64, buffer); + PutReserve(*os_, static_cast(end - buffer)); + for (char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteDouble(double d) { + if (internal::Double(d).IsNanOrInf()) { + if (!(writeFlags & kWriteNanAndInfFlag)) + return false; + if (internal::Double(d).IsNan()) { + PutReserve(*os_, 3); + PutUnsafe(*os_, 'N'); PutUnsafe(*os_, 'a'); PutUnsafe(*os_, 'N'); + return true; + } + if (internal::Double(d).Sign()) { + PutReserve(*os_, 9); + PutUnsafe(*os_, '-'); + } + else + PutReserve(*os_, 8); + PutUnsafe(*os_, 'I'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'f'); + PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y'); + return true; + } + + char buffer[25]; + char* end = internal::dtoa(d, buffer, maxDecimalPlaces_); + PutReserve(*os_, static_cast(end - buffer)); + for (char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteString(const Ch* str, SizeType length) { + static const typename OutputStream::Ch hexDigits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + static const char escape[256] = { +#define Z16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + //0 1 2 3 4 5 6 7 8 9 A B C D E F + 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'b', 't', 'n', 'u', 'f', 'r', 'u', 'u', // 00 + 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', // 10 + 0, 0, '"', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 20 + Z16, Z16, // 30~4F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,'\\', 0, 0, 0, // 50 + Z16, Z16, Z16, Z16, Z16, Z16, Z16, Z16, Z16, Z16 // 60~FF +#undef Z16 + }; + + if (TargetEncoding::supportUnicode) + PutReserve(*os_, 2 + length * 6); // "\uxxxx..." + else + PutReserve(*os_, 2 + length * 12); // "\uxxxx\uyyyy..." + + PutUnsafe(*os_, '\"'); + GenericStringStream is(str); + while (ScanWriteUnescapedString(is, length)) { + const Ch c = is.Peek(); + if (!TargetEncoding::supportUnicode && static_cast(c) >= 0x80) { + // Unicode escaping + unsigned codepoint; + if (RAPIDJSON_UNLIKELY(!SourceEncoding::Decode(is, &codepoint))) + return false; + PutUnsafe(*os_, '\\'); + PutUnsafe(*os_, 'u'); + if (codepoint <= 0xD7FF || (codepoint >= 0xE000 && codepoint <= 0xFFFF)) { + PutUnsafe(*os_, hexDigits[(codepoint >> 12) & 15]); + PutUnsafe(*os_, hexDigits[(codepoint >> 8) & 15]); + PutUnsafe(*os_, hexDigits[(codepoint >> 4) & 15]); + PutUnsafe(*os_, hexDigits[(codepoint ) & 15]); + } + else { + RAPIDJSON_ASSERT(codepoint >= 0x010000 && codepoint <= 0x10FFFF); + // Surrogate pair + unsigned s = codepoint - 0x010000; + unsigned lead = (s >> 10) + 0xD800; + unsigned trail = (s & 0x3FF) + 0xDC00; + PutUnsafe(*os_, hexDigits[(lead >> 12) & 15]); + PutUnsafe(*os_, hexDigits[(lead >> 8) & 15]); + PutUnsafe(*os_, hexDigits[(lead >> 4) & 15]); + PutUnsafe(*os_, hexDigits[(lead ) & 15]); + PutUnsafe(*os_, '\\'); + PutUnsafe(*os_, 'u'); + PutUnsafe(*os_, hexDigits[(trail >> 12) & 15]); + PutUnsafe(*os_, hexDigits[(trail >> 8) & 15]); + PutUnsafe(*os_, hexDigits[(trail >> 4) & 15]); + PutUnsafe(*os_, hexDigits[(trail ) & 15]); + } + } + else if ((sizeof(Ch) == 1 || static_cast(c) < 256) && RAPIDJSON_UNLIKELY(escape[static_cast(c)])) { + is.Take(); + PutUnsafe(*os_, '\\'); + PutUnsafe(*os_, static_cast(escape[static_cast(c)])); + if (escape[static_cast(c)] == 'u') { + PutUnsafe(*os_, '0'); + PutUnsafe(*os_, '0'); + PutUnsafe(*os_, hexDigits[static_cast(c) >> 4]); + PutUnsafe(*os_, hexDigits[static_cast(c) & 0xF]); + } + } + else if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ? + Transcoder::Validate(is, *os_) : + Transcoder::TranscodeUnsafe(is, *os_)))) + return false; + } + PutUnsafe(*os_, '\"'); + return true; + } + + bool ScanWriteUnescapedString(GenericStringStream& is, size_t length) { + return RAPIDJSON_LIKELY(is.Tell() < length); + } + + bool WriteStartObject() { os_->Put('{'); return true; } + bool WriteEndObject() { os_->Put('}'); return true; } + bool WriteStartArray() { os_->Put('['); return true; } + bool WriteEndArray() { os_->Put(']'); return true; } + + bool WriteRawValue(const Ch* json, size_t length) { + PutReserve(*os_, length); + GenericStringStream is(json); + while (RAPIDJSON_LIKELY(is.Tell() < length)) { + RAPIDJSON_ASSERT(is.Peek() != '\0'); + if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ? + Transcoder::Validate(is, *os_) : + Transcoder::TranscodeUnsafe(is, *os_)))) + return false; + } + return true; + } + + void Prefix(Type type) { + (void)type; + if (RAPIDJSON_LIKELY(level_stack_.GetSize() != 0)) { // this value is not at root + Level* level = level_stack_.template Top(); + if (level->valueCount > 0) { + if (level->inArray) + os_->Put(','); // add comma if it is not the first element in array + else // in object + os_->Put((level->valueCount % 2 == 0) ? ',' : ':'); + } + if (!level->inArray && level->valueCount % 2 == 0) + RAPIDJSON_ASSERT(type == kStringType); // if it's in object, then even number should be a name + level->valueCount++; + } + else { + RAPIDJSON_ASSERT(!hasRoot_); // Should only has one and only one root. + hasRoot_ = true; + } + } + + // Flush the value if it is the top level one. + bool EndValue(bool ret) { + if (RAPIDJSON_UNLIKELY(level_stack_.Empty())) // end of json text + Flush(); + return ret; + } + + OutputStream* os_; + internal::Stack level_stack_; + int maxDecimalPlaces_; + bool hasRoot_; + +private: + // Prohibit copy constructor & assignment operator. + Writer(const Writer&); + Writer& operator=(const Writer&); +}; + +// Full specialization for StringStream to prevent memory copying + +template<> +inline bool Writer::WriteInt(int i) { + char *buffer = os_->Push(11); + const char* end = internal::i32toa(i, buffer); + os_->Pop(static_cast(11 - (end - buffer))); + return true; +} + +template<> +inline bool Writer::WriteUint(unsigned u) { + char *buffer = os_->Push(10); + const char* end = internal::u32toa(u, buffer); + os_->Pop(static_cast(10 - (end - buffer))); + return true; +} + +template<> +inline bool Writer::WriteInt64(int64_t i64) { + char *buffer = os_->Push(21); + const char* end = internal::i64toa(i64, buffer); + os_->Pop(static_cast(21 - (end - buffer))); + return true; +} + +template<> +inline bool Writer::WriteUint64(uint64_t u) { + char *buffer = os_->Push(20); + const char* end = internal::u64toa(u, buffer); + os_->Pop(static_cast(20 - (end - buffer))); + return true; +} + +template<> +inline bool Writer::WriteDouble(double d) { + if (internal::Double(d).IsNanOrInf()) { + // Note: This code path can only be reached if (RAPIDJSON_WRITE_DEFAULT_FLAGS & kWriteNanAndInfFlag). + if (!(kWriteDefaultFlags & kWriteNanAndInfFlag)) + return false; + if (internal::Double(d).IsNan()) { + PutReserve(*os_, 3); + PutUnsafe(*os_, 'N'); PutUnsafe(*os_, 'a'); PutUnsafe(*os_, 'N'); + return true; + } + if (internal::Double(d).Sign()) { + PutReserve(*os_, 9); + PutUnsafe(*os_, '-'); + } + else + PutReserve(*os_, 8); + PutUnsafe(*os_, 'I'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'f'); + PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y'); + return true; + } + + char *buffer = os_->Push(25); + char* end = internal::dtoa(d, buffer, maxDecimalPlaces_); + os_->Pop(static_cast(25 - (end - buffer))); + return true; +} + +#if defined(RAPIDJSON_SSE2) || defined(RAPIDJSON_SSE42) +template<> +inline bool Writer::ScanWriteUnescapedString(StringStream& is, size_t length) { + if (length < 16) + return RAPIDJSON_LIKELY(is.Tell() < length); + + if (!RAPIDJSON_LIKELY(is.Tell() < length)) + return false; + + const char* p = is.src_; + const char* end = is.head_ + length; + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + const char* endAligned = reinterpret_cast(reinterpret_cast(end) & static_cast(~15)); + if (nextAligned > end) + return true; + + while (p != nextAligned) + if (*p < 0x20 || *p == '\"' || *p == '\\') { + is.src_ = p; + return RAPIDJSON_LIKELY(is.Tell() < length); + } + else + os_->PutUnsafe(*p++); + + // The rest of string using SIMD + static const char dquote[16] = { '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"' }; + static const char bslash[16] = { '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\' }; + static const char space[16] = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F }; + const __m128i dq = _mm_loadu_si128(reinterpret_cast(&dquote[0])); + const __m128i bs = _mm_loadu_si128(reinterpret_cast(&bslash[0])); + const __m128i sp = _mm_loadu_si128(reinterpret_cast(&space[0])); + + for (; p != endAligned; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const __m128i t1 = _mm_cmpeq_epi8(s, dq); + const __m128i t2 = _mm_cmpeq_epi8(s, bs); + const __m128i t3 = _mm_cmpeq_epi8(_mm_max_epu8(s, sp), sp); // s < 0x20 <=> max(s, 0x1F) == 0x1F + const __m128i x = _mm_or_si128(_mm_or_si128(t1, t2), t3); + unsigned short r = static_cast(_mm_movemask_epi8(x)); + if (RAPIDJSON_UNLIKELY(r != 0)) { // some of characters is escaped + SizeType len; +#ifdef _MSC_VER // Find the index of first escaped + unsigned long offset; + _BitScanForward(&offset, r); + len = offset; +#else + len = static_cast(__builtin_ffs(r) - 1); +#endif + char* q = reinterpret_cast(os_->PushUnsafe(len)); + for (size_t i = 0; i < len; i++) + q[i] = p[i]; + + p += len; + break; + } + _mm_storeu_si128(reinterpret_cast<__m128i *>(os_->PushUnsafe(16)), s); + } + + is.src_ = p; + return RAPIDJSON_LIKELY(is.Tell() < length); +} +#elif defined(RAPIDJSON_NEON) +template<> +inline bool Writer::ScanWriteUnescapedString(StringStream& is, size_t length) { + if (length < 16) + return RAPIDJSON_LIKELY(is.Tell() < length); + + if (!RAPIDJSON_LIKELY(is.Tell() < length)) + return false; + + const char* p = is.src_; + const char* end = is.head_ + length; + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + const char* endAligned = reinterpret_cast(reinterpret_cast(end) & static_cast(~15)); + if (nextAligned > end) + return true; + + while (p != nextAligned) + if (*p < 0x20 || *p == '\"' || *p == '\\') { + is.src_ = p; + return RAPIDJSON_LIKELY(is.Tell() < length); + } + else + os_->PutUnsafe(*p++); + + // The rest of string using SIMD + const uint8x16_t s0 = vmovq_n_u8('"'); + const uint8x16_t s1 = vmovq_n_u8('\\'); + const uint8x16_t s2 = vmovq_n_u8('\b'); + const uint8x16_t s3 = vmovq_n_u8(32); + + for (; p != endAligned; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, s0); + x = vorrq_u8(x, vceqq_u8(s, s1)); + x = vorrq_u8(x, vceqq_u8(s, s2)); + x = vorrq_u8(x, vcltq_u8(s, s3)); + + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + SizeType len = 0; + bool escaped = false; + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + len = 8 + (lz >> 3); + escaped = true; + } + } else { + uint32_t lz = internal::clzll(low); + len = lz >> 3; + escaped = true; + } + if (RAPIDJSON_UNLIKELY(escaped)) { // some of characters is escaped + char* q = reinterpret_cast(os_->PushUnsafe(len)); + for (size_t i = 0; i < len; i++) + q[i] = p[i]; + + p += len; + break; + } + vst1q_u8(reinterpret_cast(os_->PushUnsafe(16)), s); + } + + is.src_ = p; + return RAPIDJSON_LIKELY(is.Tell() < length); +} +#endif // RAPIDJSON_NEON + +RAPIDJSON_NAMESPACE_END + +#if defined(_MSC_VER) || defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_RAPIDJSON_H_ diff --git a/external/rlottie/src/meson.build b/external/rlottie/src/meson.build new file mode 100644 index 000000000..d93a7e37a --- /dev/null +++ b/external/rlottie/src/meson.build @@ -0,0 +1,57 @@ +compiler_flags = ['-DRLOTTIE_BUILD'] + +cc = meson.get_compiler('cpp') +if (cc.get_id() != 'msvc') + compiler_flags += ['-fno-exceptions', '-fno-rtti', + '-fno-unwind-tables' , '-fno-asynchronous-unwind-tables', + '-Woverloaded-virtual', '-Wno-unused-parameter'] +endif + +linker_flags = [] +if (host_machine.system() not in ['darwin', 'windows']) + linker_flags += ['-Wl,--version-script=@0@/../rlottie.expmap'.format(meson.current_source_dir())] +endif + +subdir('vector') +subdir('lottie') +subdir('binding') + +rlottie_lib_dep = [ vector_dep, lottie_dep, binding_dep] + +if get_option('thread') == true + rlottie_lib_dep += dependency('threads') +endif + +rlottie_lib = library('rlottie', + include_directories : inc, + version : meson.project_version(), + dependencies : rlottie_lib_dep, + install : true, + cpp_args : compiler_flags, + link_args : linker_flags, + gnu_symbol_visibility : 'hidden', + ) + +# Make rlottie library usable as a Meson subproject. +rlottie_dep = declare_dependency( + include_directories: inc, + link_with : rlottie_lib) + +if (cc.get_id() == 'emscripten') + + subdir('wasm') + + executable('rlottie-wasm', + [], + dependencies : [rlottie_dep, rlottie_wasm_dep], + ) +endif + +pkg_mod = import('pkgconfig') + +pkg_mod.generate( libraries : rlottie_lib, + version : meson.project_version(), + name : 'librlottie', + filebase : 'rlottie', + description : 'A Library for rendering lottie files.' + ) diff --git a/external/rlottie/src/vector/CMakeLists.txt b/external/rlottie/src/vector/CMakeLists.txt new file mode 100644 index 000000000..3ae96e662 --- /dev/null +++ b/external/rlottie/src/vector/CMakeLists.txt @@ -0,0 +1,34 @@ +add_subdirectory(freetype) +add_subdirectory(pixman) +add_subdirectory(stb) + + +target_sources(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/vrect.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vdasher.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vbrush.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vbitmap.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vpainter.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vdrawhelper_common.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vdrawhelper.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vdrawhelper_sse2.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vdrawhelper_neon.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vrle.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vpath.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vpathmesure.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vmatrix.cpp" + "${CMAKE_CURRENT_LIST_DIR}/velapsedtimer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vdebug.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vinterpolator.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vbezier.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vraster.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vdrawable.cpp" + "${CMAKE_CURRENT_LIST_DIR}/vimageloader.cpp" + "${CMAKE_CURRENT_LIST_DIR}/varenaalloc.cpp" + ) + +target_include_directories(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}" + ) diff --git a/external/rlottie/src/vector/freetype/CMakeLists.txt b/external/rlottie/src/vector/freetype/CMakeLists.txt new file mode 100644 index 000000000..add0d4223 --- /dev/null +++ b/external/rlottie/src/vector/freetype/CMakeLists.txt @@ -0,0 +1,11 @@ +target_sources(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/v_ft_math.cpp" + "${CMAKE_CURRENT_LIST_DIR}/v_ft_raster.cpp" + "${CMAKE_CURRENT_LIST_DIR}/v_ft_stroker.cpp" + ) + +target_include_directories(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}" + ) diff --git a/external/rlottie/src/vector/freetype/meson.build b/external/rlottie/src/vector/freetype/meson.build new file mode 100644 index 000000000..7c1217feb --- /dev/null +++ b/external/rlottie/src/vector/freetype/meson.build @@ -0,0 +1,11 @@ + +source_file = [ + 'v_ft_math.cpp', + 'v_ft_raster.cpp', + 'v_ft_stroker.cpp', + ] + +freetype_dep = declare_dependency( + include_directories : include_directories('.'), + sources : source_file + ) diff --git a/external/rlottie/src/vector/freetype/v_ft_math.cpp b/external/rlottie/src/vector/freetype/v_ft_math.cpp new file mode 100644 index 000000000..a3f0af2e4 --- /dev/null +++ b/external/rlottie/src/vector/freetype/v_ft_math.cpp @@ -0,0 +1,461 @@ +/***************************************************************************/ +/* */ +/* fttrigon.c */ +/* */ +/* FreeType trigonometric functions (body). */ +/* */ +/* Copyright 2001-2005, 2012-2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + +#include "v_ft_math.h" +#include + +//form https://github.com/chromium/chromium/blob/59afd8336009c9d97c22854c52e0382b62b3aa5e/third_party/abseil-cpp/absl/base/internal/bits.h + +#if defined(_MSC_VER) +#include +static unsigned int __inline clz(unsigned int x) { + unsigned long r = 0; + if (x != 0) + { + _BitScanReverse(&r, x); + } + return r; +} +#define SW_FT_MSB(x) (clz(x)) +#elif defined(__GNUC__) +#define SW_FT_MSB(x) (31 - __builtin_clz(x)) +#else +static unsigned int __inline clz(unsigned int x) { + int c = 31; + x &= ~x + 1; + if (n & 0x0000FFFF) c -= 16; + if (n & 0x00FF00FF) c -= 8; + if (n & 0x0F0F0F0F) c -= 4; + if (n & 0x33333333) c -= 2; + if (n & 0x55555555) c -= 1; + return c; +} +#define SW_FT_MSB(x) (clz(x)) +#endif + + + + + +#define SW_FT_PAD_FLOOR(x, n) ((x) & ~((n)-1)) +#define SW_FT_PAD_ROUND(x, n) SW_FT_PAD_FLOOR((x) + ((n) / 2), n) +#define SW_FT_PAD_CEIL(x, n) SW_FT_PAD_FLOOR((x) + ((n)-1), n) + +#define SW_FT_BEGIN_STMNT do { +#define SW_FT_END_STMNT \ + } \ + while (0) +/* transfer sign leaving a positive number */ +#define SW_FT_MOVE_SIGN(x, s) \ + SW_FT_BEGIN_STMNT \ + if (x < 0) { \ + x = -x; \ + s = -s; \ + } \ + SW_FT_END_STMNT + +SW_FT_Long SW_FT_MulFix(SW_FT_Long a, SW_FT_Long b) +{ + SW_FT_Int s = 1; + SW_FT_Long c; + + SW_FT_MOVE_SIGN(a, s); + SW_FT_MOVE_SIGN(b, s); + + c = (SW_FT_Long)(((SW_FT_Int64)a * b + 0x8000L) >> 16); + + return (s > 0) ? c : -c; +} + +SW_FT_Long SW_FT_MulDiv(SW_FT_Long a, SW_FT_Long b, SW_FT_Long c) +{ + SW_FT_Int s = 1; + SW_FT_Long d; + + SW_FT_MOVE_SIGN(a, s); + SW_FT_MOVE_SIGN(b, s); + SW_FT_MOVE_SIGN(c, s); + + d = (SW_FT_Long)(c > 0 ? ((SW_FT_Int64)a * b + (c >> 1)) / c : 0x7FFFFFFFL); + + return (s > 0) ? d : -d; +} + +SW_FT_Long SW_FT_DivFix(SW_FT_Long a, SW_FT_Long b) +{ + SW_FT_Int s = 1; + SW_FT_Long q; + + SW_FT_MOVE_SIGN(a, s); + SW_FT_MOVE_SIGN(b, s); + + q = (SW_FT_Long)(b > 0 ? (((SW_FT_UInt64)a << 16) + (b >> 1)) / b + : 0x7FFFFFFFL); + + return (s < 0 ? -q : q); +} + +/*************************************************************************/ +/* */ +/* This is a fixed-point CORDIC implementation of trigonometric */ +/* functions as well as transformations between Cartesian and polar */ +/* coordinates. The angles are represented as 16.16 fixed-point values */ +/* in degrees, i.e., the angular resolution is 2^-16 degrees. Note that */ +/* only vectors longer than 2^16*180/pi (or at least 22 bits) on a */ +/* discrete Cartesian grid can have the same or better angular */ +/* resolution. Therefore, to maintain this precision, some functions */ +/* require an interim upscaling of the vectors, whereas others operate */ +/* with 24-bit long vectors directly. */ +/* */ +/*************************************************************************/ + +/* the Cordic shrink factor 0.858785336480436 * 2^32 */ +#define SW_FT_TRIG_SCALE 0xDBD95B16UL + +/* the highest bit in overflow-safe vector components, */ +/* MSB of 0.858785336480436 * sqrt(0.5) * 2^30 */ +#define SW_FT_TRIG_SAFE_MSB 29 + +/* this table was generated for SW_FT_PI = 180L << 16, i.e. degrees */ +#define SW_FT_TRIG_MAX_ITERS 23 + +static const SW_FT_Fixed ft_trig_arctan_table[] = { + 1740967L, 919879L, 466945L, 234379L, 117304L, 58666L, 29335L, 14668L, + 7334L, 3667L, 1833L, 917L, 458L, 229L, 115L, 57L, + 29L, 14L, 7L, 4L, 2L, 1L}; + +/* multiply a given value by the CORDIC shrink factor */ +static SW_FT_Fixed ft_trig_downscale(SW_FT_Fixed val) +{ + SW_FT_Fixed s; + SW_FT_Int64 v; + + s = val; + val = SW_FT_ABS(val); + + v = (val * (SW_FT_Int64)SW_FT_TRIG_SCALE) + 0x100000000UL; + val = (SW_FT_Fixed)(v >> 32); + + return (s >= 0) ? val : -val; +} + +/* undefined and never called for zero vector */ +static SW_FT_Int ft_trig_prenorm(SW_FT_Vector* vec) +{ + SW_FT_Pos x, y; + SW_FT_Int shift; + + x = vec->x; + y = vec->y; + + shift = SW_FT_MSB(SW_FT_ABS(x) | SW_FT_ABS(y)); + + if (shift <= SW_FT_TRIG_SAFE_MSB) { + shift = SW_FT_TRIG_SAFE_MSB - shift; + vec->x = (SW_FT_Pos)((SW_FT_ULong)x << shift); + vec->y = (SW_FT_Pos)((SW_FT_ULong)y << shift); + } else { + shift -= SW_FT_TRIG_SAFE_MSB; + vec->x = x >> shift; + vec->y = y >> shift; + shift = -shift; + } + + return shift; +} + +static void ft_trig_pseudo_rotate(SW_FT_Vector* vec, SW_FT_Angle theta) +{ + SW_FT_Int i; + SW_FT_Fixed x, y, xtemp, b; + const SW_FT_Fixed* arctanptr; + + x = vec->x; + y = vec->y; + + /* Rotate inside [-PI/4,PI/4] sector */ + while (theta < -SW_FT_ANGLE_PI4) { + xtemp = y; + y = -x; + x = xtemp; + theta += SW_FT_ANGLE_PI2; + } + + while (theta > SW_FT_ANGLE_PI4) { + xtemp = -y; + y = x; + x = xtemp; + theta -= SW_FT_ANGLE_PI2; + } + + arctanptr = ft_trig_arctan_table; + + /* Pseudorotations, with right shifts */ + for (i = 1, b = 1; i < SW_FT_TRIG_MAX_ITERS; b <<= 1, i++) { + SW_FT_Fixed v1 = ((y + b) >> i); + SW_FT_Fixed v2 = ((x + b) >> i); + if (theta < 0) { + xtemp = x + v1; + y = y - v2; + x = xtemp; + theta += *arctanptr++; + } else { + xtemp = x - v1; + y = y + v2; + x = xtemp; + theta -= *arctanptr++; + } + } + + vec->x = x; + vec->y = y; +} + +static void ft_trig_pseudo_polarize(SW_FT_Vector* vec) +{ + SW_FT_Angle theta; + SW_FT_Int i; + SW_FT_Fixed x, y, xtemp, b; + const SW_FT_Fixed* arctanptr; + + x = vec->x; + y = vec->y; + + /* Get the vector into [-PI/4,PI/4] sector */ + if (y > x) { + if (y > -x) { + theta = SW_FT_ANGLE_PI2; + xtemp = y; + y = -x; + x = xtemp; + } else { + theta = y > 0 ? SW_FT_ANGLE_PI : -SW_FT_ANGLE_PI; + x = -x; + y = -y; + } + } else { + if (y < -x) { + theta = -SW_FT_ANGLE_PI2; + xtemp = -y; + y = x; + x = xtemp; + } else { + theta = 0; + } + } + + arctanptr = ft_trig_arctan_table; + + /* Pseudorotations, with right shifts */ + for (i = 1, b = 1; i < SW_FT_TRIG_MAX_ITERS; b <<= 1, i++) { + SW_FT_Fixed v1 = ((y + b) >> i); + SW_FT_Fixed v2 = ((x + b) >> i); + if (y > 0) { + xtemp = x + v1; + y = y - v2; + x = xtemp; + theta += *arctanptr++; + } else { + xtemp = x - v1; + y = y + v2; + x = xtemp; + theta -= *arctanptr++; + } + } + + /* round theta */ + if (theta >= 0) + theta = SW_FT_PAD_ROUND(theta, 32); + else + theta = -SW_FT_PAD_ROUND(-theta, 32); + + vec->x = x; + vec->y = theta; +} + +/* documentation is in fttrigon.h */ + +SW_FT_Fixed SW_FT_Cos(SW_FT_Angle angle) +{ + SW_FT_Vector v; + + v.x = SW_FT_TRIG_SCALE >> 8; + v.y = 0; + ft_trig_pseudo_rotate(&v, angle); + + return (v.x + 0x80L) >> 8; +} + +/* documentation is in fttrigon.h */ + +SW_FT_Fixed SW_FT_Sin(SW_FT_Angle angle) +{ + return SW_FT_Cos(SW_FT_ANGLE_PI2 - angle); +} + +/* documentation is in fttrigon.h */ + +SW_FT_Fixed SW_FT_Tan(SW_FT_Angle angle) +{ + SW_FT_Vector v; + + v.x = SW_FT_TRIG_SCALE >> 8; + v.y = 0; + ft_trig_pseudo_rotate(&v, angle); + + return SW_FT_DivFix(v.y, v.x); +} + +/* documentation is in fttrigon.h */ + +SW_FT_Angle SW_FT_Atan2(SW_FT_Fixed dx, SW_FT_Fixed dy) +{ + SW_FT_Vector v; + + if (dx == 0 && dy == 0) return 0; + + v.x = dx; + v.y = dy; + ft_trig_prenorm(&v); + ft_trig_pseudo_polarize(&v); + + return v.y; +} + +/* documentation is in fttrigon.h */ + +void SW_FT_Vector_Unit(SW_FT_Vector* vec, SW_FT_Angle angle) +{ + vec->x = SW_FT_TRIG_SCALE >> 8; + vec->y = 0; + ft_trig_pseudo_rotate(vec, angle); + vec->x = (vec->x + 0x80L) >> 8; + vec->y = (vec->y + 0x80L) >> 8; +} + +/* these macros return 0 for positive numbers, + and -1 for negative ones */ +#define SW_FT_SIGN_LONG(x) ((x) >> (SW_FT_SIZEOF_LONG * 8 - 1)) +#define SW_FT_SIGN_INT(x) ((x) >> (SW_FT_SIZEOF_INT * 8 - 1)) +#define SW_FT_SIGN_INT32(x) ((x) >> 31) +#define SW_FT_SIGN_INT16(x) ((x) >> 15) + +/* documentation is in fttrigon.h */ + +void SW_FT_Vector_Rotate(SW_FT_Vector* vec, SW_FT_Angle angle) +{ + SW_FT_Int shift; + SW_FT_Vector v; + + v.x = vec->x; + v.y = vec->y; + + if (angle && (v.x != 0 || v.y != 0)) { + shift = ft_trig_prenorm(&v); + ft_trig_pseudo_rotate(&v, angle); + v.x = ft_trig_downscale(v.x); + v.y = ft_trig_downscale(v.y); + + if (shift > 0) { + SW_FT_Int32 half = (SW_FT_Int32)1L << (shift - 1); + + vec->x = (v.x + half + SW_FT_SIGN_LONG(v.x)) >> shift; + vec->y = (v.y + half + SW_FT_SIGN_LONG(v.y)) >> shift; + } else { + shift = -shift; + vec->x = (SW_FT_Pos)((SW_FT_ULong)v.x << shift); + vec->y = (SW_FT_Pos)((SW_FT_ULong)v.y << shift); + } + } +} + +/* documentation is in fttrigon.h */ + +SW_FT_Fixed SW_FT_Vector_Length(SW_FT_Vector* vec) +{ + SW_FT_Int shift; + SW_FT_Vector v; + + v = *vec; + + /* handle trivial cases */ + if (v.x == 0) { + return SW_FT_ABS(v.y); + } else if (v.y == 0) { + return SW_FT_ABS(v.x); + } + + /* general case */ + shift = ft_trig_prenorm(&v); + ft_trig_pseudo_polarize(&v); + + v.x = ft_trig_downscale(v.x); + + if (shift > 0) return (v.x + (1 << (shift - 1))) >> shift; + + return (SW_FT_Fixed)((SW_FT_UInt32)v.x << -shift); +} + +/* documentation is in fttrigon.h */ + +void SW_FT_Vector_Polarize(SW_FT_Vector* vec, SW_FT_Fixed* length, + SW_FT_Angle* angle) +{ + SW_FT_Int shift; + SW_FT_Vector v; + + v = *vec; + + if (v.x == 0 && v.y == 0) return; + + shift = ft_trig_prenorm(&v); + ft_trig_pseudo_polarize(&v); + + v.x = ft_trig_downscale(v.x); + + *length = (shift >= 0) ? (v.x >> shift) + : (SW_FT_Fixed)((SW_FT_UInt32)v.x << -shift); + *angle = v.y; +} + +/* documentation is in fttrigon.h */ + +void SW_FT_Vector_From_Polar(SW_FT_Vector* vec, SW_FT_Fixed length, + SW_FT_Angle angle) +{ + vec->x = length; + vec->y = 0; + + SW_FT_Vector_Rotate(vec, angle); +} + +/* documentation is in fttrigon.h */ + +SW_FT_Angle SW_FT_Angle_Diff( SW_FT_Angle angle1, SW_FT_Angle angle2 ) +{ + SW_FT_Angle delta = angle2 - angle1; + + while ( delta <= -SW_FT_ANGLE_PI ) + delta += SW_FT_ANGLE_2PI; + + while ( delta > SW_FT_ANGLE_PI ) + delta -= SW_FT_ANGLE_2PI; + + return delta; +} + +/* END */ diff --git a/external/rlottie/src/vector/freetype/v_ft_math.h b/external/rlottie/src/vector/freetype/v_ft_math.h new file mode 100644 index 000000000..b4611d8d4 --- /dev/null +++ b/external/rlottie/src/vector/freetype/v_ft_math.h @@ -0,0 +1,438 @@ +#ifndef V_FT_MATH_H +#define V_FT_MATH_H + +/***************************************************************************/ +/* */ +/* fttrigon.h */ +/* */ +/* FreeType trigonometric functions (specification). */ +/* */ +/* Copyright 2001, 2003, 2005, 2007, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + +#include "v_ft_types.h" + + +/*************************************************************************/ +/* */ +/* The min and max functions missing in C. As usual, be careful not to */ +/* write things like SW_FT_MIN( a++, b++ ) to avoid side effects. */ +/* */ +#define SW_FT_MIN( a, b ) ( (a) < (b) ? (a) : (b) ) +#define SW_FT_MAX( a, b ) ( (a) > (b) ? (a) : (b) ) + +#define SW_FT_ABS( a ) ( (a) < 0 ? -(a) : (a) ) + +/* + * Approximate sqrt(x*x+y*y) using the `alpha max plus beta min' + * algorithm. We use alpha = 1, beta = 3/8, giving us results with a + * largest error less than 7% compared to the exact value. + */ +#define SW_FT_HYPOT( x, y ) \ + ( x = SW_FT_ABS( x ), \ + y = SW_FT_ABS( y ), \ + x > y ? x + ( 3 * y >> 3 ) \ + : y + ( 3 * x >> 3 ) ) + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_MulFix */ +/* */ +/* */ +/* A very simple function used to perform the computation */ +/* `(a*b)/0x10000' with maximum accuracy. Most of the time this is */ +/* used to multiply a given value by a 16.16 fixed-point factor. */ +/* */ +/* */ +/* a :: The first multiplier. */ +/* b :: The second multiplier. Use a 16.16 factor here whenever */ +/* possible (see note below). */ +/* */ +/* */ +/* The result of `(a*b)/0x10000'. */ +/* */ +/* */ +/* This function has been optimized for the case where the absolute */ +/* value of `a' is less than 2048, and `b' is a 16.16 scaling factor. */ +/* As this happens mainly when scaling from notional units to */ +/* fractional pixels in FreeType, it resulted in noticeable speed */ +/* improvements between versions 2.x and 1.x. */ +/* */ +/* As a conclusion, always try to place a 16.16 factor as the */ +/* _second_ argument of this function; this can make a great */ +/* difference. */ +/* */ +SW_FT_Long +SW_FT_MulFix( SW_FT_Long a, + SW_FT_Long b ); + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_MulDiv */ +/* */ +/* */ +/* A very simple function used to perform the computation `(a*b)/c' */ +/* with maximum accuracy (it uses a 64-bit intermediate integer */ +/* whenever necessary). */ +/* */ +/* This function isn't necessarily as fast as some processor specific */ +/* operations, but is at least completely portable. */ +/* */ +/* */ +/* a :: The first multiplier. */ +/* b :: The second multiplier. */ +/* c :: The divisor. */ +/* */ +/* */ +/* The result of `(a*b)/c'. This function never traps when trying to */ +/* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ +/* on the signs of `a' and `b'. */ +/* */ +SW_FT_Long +SW_FT_MulDiv( SW_FT_Long a, + SW_FT_Long b, + SW_FT_Long c ); + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_DivFix */ +/* */ +/* */ +/* A very simple function used to perform the computation */ +/* `(a*0x10000)/b' with maximum accuracy. Most of the time, this is */ +/* used to divide a given value by a 16.16 fixed-point factor. */ +/* */ +/* */ +/* a :: The numerator. */ +/* b :: The denominator. Use a 16.16 factor here. */ +/* */ +/* */ +/* The result of `(a*0x10000)/b'. */ +/* */ +SW_FT_Long +SW_FT_DivFix( SW_FT_Long a, + SW_FT_Long b ); + + + + /*************************************************************************/ + /* */ + /*
*/ + /* computations */ + /* */ + /*************************************************************************/ + + + /************************************************************************* + * + * @type: + * SW_FT_Angle + * + * @description: + * This type is used to model angle values in FreeType. Note that the + * angle is a 16.16 fixed-point value expressed in degrees. + * + */ + typedef SW_FT_Fixed SW_FT_Angle; + + + /************************************************************************* + * + * @macro: + * SW_FT_ANGLE_PI + * + * @description: + * The angle pi expressed in @SW_FT_Angle units. + * + */ +#define SW_FT_ANGLE_PI ( 180L << 16 ) + + + /************************************************************************* + * + * @macro: + * SW_FT_ANGLE_2PI + * + * @description: + * The angle 2*pi expressed in @SW_FT_Angle units. + * + */ +#define SW_FT_ANGLE_2PI ( SW_FT_ANGLE_PI * 2 ) + + + /************************************************************************* + * + * @macro: + * SW_FT_ANGLE_PI2 + * + * @description: + * The angle pi/2 expressed in @SW_FT_Angle units. + * + */ +#define SW_FT_ANGLE_PI2 ( SW_FT_ANGLE_PI / 2 ) + + + /************************************************************************* + * + * @macro: + * SW_FT_ANGLE_PI4 + * + * @description: + * The angle pi/4 expressed in @SW_FT_Angle units. + * + */ +#define SW_FT_ANGLE_PI4 ( SW_FT_ANGLE_PI / 4 ) + + + /************************************************************************* + * + * @function: + * SW_FT_Sin + * + * @description: + * Return the sinus of a given angle in fixed-point format. + * + * @input: + * angle :: + * The input angle. + * + * @return: + * The sinus value. + * + * @note: + * If you need both the sinus and cosinus for a given angle, use the + * function @SW_FT_Vector_Unit. + * + */ + SW_FT_Fixed + SW_FT_Sin( SW_FT_Angle angle ); + + + /************************************************************************* + * + * @function: + * SW_FT_Cos + * + * @description: + * Return the cosinus of a given angle in fixed-point format. + * + * @input: + * angle :: + * The input angle. + * + * @return: + * The cosinus value. + * + * @note: + * If you need both the sinus and cosinus for a given angle, use the + * function @SW_FT_Vector_Unit. + * + */ + SW_FT_Fixed + SW_FT_Cos( SW_FT_Angle angle ); + + + /************************************************************************* + * + * @function: + * SW_FT_Tan + * + * @description: + * Return the tangent of a given angle in fixed-point format. + * + * @input: + * angle :: + * The input angle. + * + * @return: + * The tangent value. + * + */ + SW_FT_Fixed + SW_FT_Tan( SW_FT_Angle angle ); + + + /************************************************************************* + * + * @function: + * SW_FT_Atan2 + * + * @description: + * Return the arc-tangent corresponding to a given vector (x,y) in + * the 2d plane. + * + * @input: + * x :: + * The horizontal vector coordinate. + * + * y :: + * The vertical vector coordinate. + * + * @return: + * The arc-tangent value (i.e. angle). + * + */ + SW_FT_Angle + SW_FT_Atan2( SW_FT_Fixed x, + SW_FT_Fixed y ); + + + /************************************************************************* + * + * @function: + * SW_FT_Angle_Diff + * + * @description: + * Return the difference between two angles. The result is always + * constrained to the ]-PI..PI] interval. + * + * @input: + * angle1 :: + * First angle. + * + * angle2 :: + * Second angle. + * + * @return: + * Constrained value of `value2-value1'. + * + */ + SW_FT_Angle + SW_FT_Angle_Diff( SW_FT_Angle angle1, + SW_FT_Angle angle2 ); + + + /************************************************************************* + * + * @function: + * SW_FT_Vector_Unit + * + * @description: + * Return the unit vector corresponding to a given angle. After the + * call, the value of `vec.x' will be `sin(angle)', and the value of + * `vec.y' will be `cos(angle)'. + * + * This function is useful to retrieve both the sinus and cosinus of a + * given angle quickly. + * + * @output: + * vec :: + * The address of target vector. + * + * @input: + * angle :: + * The input angle. + * + */ + void + SW_FT_Vector_Unit( SW_FT_Vector* vec, + SW_FT_Angle angle ); + + + /************************************************************************* + * + * @function: + * SW_FT_Vector_Rotate + * + * @description: + * Rotate a vector by a given angle. + * + * @inout: + * vec :: + * The address of target vector. + * + * @input: + * angle :: + * The input angle. + * + */ + void + SW_FT_Vector_Rotate( SW_FT_Vector* vec, + SW_FT_Angle angle ); + + + /************************************************************************* + * + * @function: + * SW_FT_Vector_Length + * + * @description: + * Return the length of a given vector. + * + * @input: + * vec :: + * The address of target vector. + * + * @return: + * The vector length, expressed in the same units that the original + * vector coordinates. + * + */ + SW_FT_Fixed + SW_FT_Vector_Length( SW_FT_Vector* vec ); + + + /************************************************************************* + * + * @function: + * SW_FT_Vector_Polarize + * + * @description: + * Compute both the length and angle of a given vector. + * + * @input: + * vec :: + * The address of source vector. + * + * @output: + * length :: + * The vector length. + * + * angle :: + * The vector angle. + * + */ + void + SW_FT_Vector_Polarize( SW_FT_Vector* vec, + SW_FT_Fixed *length, + SW_FT_Angle *angle ); + + + /************************************************************************* + * + * @function: + * SW_FT_Vector_From_Polar + * + * @description: + * Compute vector coordinates from a length and angle. + * + * @output: + * vec :: + * The address of source vector. + * + * @input: + * length :: + * The vector length. + * + * angle :: + * The vector angle. + * + */ + void + SW_FT_Vector_From_Polar( SW_FT_Vector* vec, + SW_FT_Fixed length, + SW_FT_Angle angle ); + + +#endif // V_FT_MATH_H diff --git a/external/rlottie/src/vector/freetype/v_ft_raster.cpp b/external/rlottie/src/vector/freetype/v_ft_raster.cpp new file mode 100644 index 000000000..e48ad1b10 --- /dev/null +++ b/external/rlottie/src/vector/freetype/v_ft_raster.cpp @@ -0,0 +1,1423 @@ +/***************************************************************************/ +/* */ +/* ftgrays.c */ +/* */ +/* A new `perfect' anti-aliasing renderer (body). */ +/* */ +/* Copyright 2000-2003, 2005-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + +/*************************************************************************/ +/* */ +/* This is a new anti-aliasing scan-converter for FreeType 2. The */ +/* algorithm used here is _very_ different from the one in the standard */ +/* `ftraster' module. Actually, `ftgrays' computes the _exact_ */ +/* coverage of the outline on each pixel cell. */ +/* */ +/* It is based on ideas that I initially found in Raph Levien's */ +/* excellent LibArt graphics library (see http://www.levien.com/libart */ +/* for more information, though the web pages do not tell anything */ +/* about the renderer; you'll have to dive into the source code to */ +/* understand how it works). */ +/* */ +/* Note, however, that this is a _very_ different implementation */ +/* compared to Raph's. Coverage information is stored in a very */ +/* different way, and I don't use sorted vector paths. Also, it doesn't */ +/* use floating point values. */ +/* */ +/* This renderer has the following advantages: */ +/* */ +/* - It doesn't need an intermediate bitmap. Instead, one can supply a */ +/* callback function that will be called by the renderer to draw gray */ +/* spans on any target surface. You can thus do direct composition on */ +/* any kind of bitmap, provided that you give the renderer the right */ +/* callback. */ +/* */ +/* - A perfect anti-aliaser, i.e., it computes the _exact_ coverage on */ +/* each pixel cell. */ +/* */ +/* - It performs a single pass on the outline (the `standard' FT2 */ +/* renderer makes two passes). */ +/* */ +/* - It can easily be modified to render to _any_ number of gray levels */ +/* cheaply. */ +/* */ +/* - For small (< 20) pixel sizes, it is faster than the standard */ +/* renderer. */ +/* */ +/*************************************************************************/ + +#include "v_ft_raster.h" +#include "v_ft_math.h" + +/* Auxiliary macros for token concatenation. */ +#define SW_FT_ERR_XCAT(x, y) x##y +#define SW_FT_ERR_CAT(x, y) SW_FT_ERR_XCAT(x, y) + +#define SW_FT_BEGIN_STMNT do { +#define SW_FT_END_STMNT \ + } \ + while (0) + +#include +#include +#include +#include +#define SW_FT_UINT_MAX UINT_MAX +#define SW_FT_INT_MAX INT_MAX +#define SW_FT_ULONG_MAX ULONG_MAX +#define SW_FT_CHAR_BIT CHAR_BIT + +#define ft_memset memset + +#define ft_setjmp setjmp +#define ft_longjmp longjmp +#define ft_jmp_buf jmp_buf + +typedef ptrdiff_t SW_FT_PtrDist; + +#define ErrRaster_Invalid_Mode -2 +#define ErrRaster_Invalid_Outline -1 +#define ErrRaster_Invalid_Argument -3 +#define ErrRaster_Memory_Overflow -4 + +#define SW_FT_BEGIN_HEADER +#define SW_FT_END_HEADER + +/* This macro is used to indicate that a function parameter is unused. */ +/* Its purpose is simply to reduce compiler warnings. Note also that */ +/* simply defining it as `(void)x' doesn't avoid warnings with certain */ +/* ANSI compilers (e.g. LCC). */ +#define SW_FT_UNUSED(x) (x) = (x) + +#define SW_FT_THROW(e) SW_FT_ERR_CAT(ErrRaster_, e) + +/* The size in bytes of the render pool used by the scan-line converter */ +/* to do all of its work. */ +#define SW_FT_RENDER_POOL_SIZE 16384L + +typedef int (*SW_FT_Outline_MoveToFunc)(const SW_FT_Vector* to, void* user); + +#define SW_FT_Outline_MoveTo_Func SW_FT_Outline_MoveToFunc + +typedef int (*SW_FT_Outline_LineToFunc)(const SW_FT_Vector* to, void* user); + +#define SW_FT_Outline_LineTo_Func SW_FT_Outline_LineToFunc + +typedef int (*SW_FT_Outline_ConicToFunc)(const SW_FT_Vector* control, + const SW_FT_Vector* to, void* user); + +#define SW_FT_Outline_ConicTo_Func SW_FT_Outline_ConicToFunc + +typedef int (*SW_FT_Outline_CubicToFunc)(const SW_FT_Vector* control1, + const SW_FT_Vector* control2, + const SW_FT_Vector* to, void* user); + +#define SW_FT_Outline_CubicTo_Func SW_FT_Outline_CubicToFunc + +typedef struct SW_FT_Outline_Funcs_ { + SW_FT_Outline_MoveToFunc move_to; + SW_FT_Outline_LineToFunc line_to; + SW_FT_Outline_ConicToFunc conic_to; + SW_FT_Outline_CubicToFunc cubic_to; + + int shift; + SW_FT_Pos delta; + +} SW_FT_Outline_Funcs; + +#define SW_FT_DEFINE_OUTLINE_FUNCS(class_, move_to_, line_to_, conic_to_, \ + cubic_to_, shift_, delta_) \ + static const SW_FT_Outline_Funcs class_ = {move_to_, line_to_, conic_to_, \ + cubic_to_, shift_, delta_}; + +#define SW_FT_DEFINE_RASTER_FUNCS(class_, raster_new_, raster_reset_, \ + raster_render_, raster_done_) \ + const SW_FT_Raster_Funcs class_ = {raster_new_, raster_reset_, \ + raster_render_, raster_done_}; + +#ifndef SW_FT_MEM_SET +#define SW_FT_MEM_SET(d, s, c) ft_memset(d, s, c) +#endif + +#ifndef SW_FT_MEM_ZERO +#define SW_FT_MEM_ZERO(dest, count) SW_FT_MEM_SET(dest, 0, count) +#endif + +/* as usual, for the speed hungry :-) */ + +#undef RAS_ARG +#undef RAS_ARG_ +#undef RAS_VAR +#undef RAS_VAR_ + +#ifndef SW_FT_STATIC_RASTER + +#define RAS_ARG gray_PWorker worker +#define RAS_ARG_ gray_PWorker worker, + +#define RAS_VAR worker +#define RAS_VAR_ worker, + +#else /* SW_FT_STATIC_RASTER */ + +#define RAS_ARG /* empty */ +#define RAS_ARG_ /* empty */ +#define RAS_VAR /* empty */ +#define RAS_VAR_ /* empty */ + +#endif /* SW_FT_STATIC_RASTER */ + +/* must be at least 6 bits! */ +#define PIXEL_BITS 8 + +#undef FLOOR +#undef CEILING +#undef TRUNC +#undef SCALED + +#define ONE_PIXEL (1L << PIXEL_BITS) +#define PIXEL_MASK (-1L << PIXEL_BITS) +#define TRUNC(x) ((TCoord)((x) >> PIXEL_BITS)) +#define SUBPIXELS(x) ((TPos)(x) << PIXEL_BITS) +#define FLOOR(x) ((x) & -ONE_PIXEL) +#define CEILING(x) (((x) + ONE_PIXEL - 1) & -ONE_PIXEL) +#define ROUND(x) (((x) + ONE_PIXEL / 2) & -ONE_PIXEL) + +#if PIXEL_BITS >= 6 +#define UPSCALE(x) ((x) << (PIXEL_BITS - 6)) +#define DOWNSCALE(x) ((x) >> (PIXEL_BITS - 6)) +#else +#define UPSCALE(x) ((x) >> (6 - PIXEL_BITS)) +#define DOWNSCALE(x) ((x) << (6 - PIXEL_BITS)) +#endif + +/* Compute `dividend / divisor' and return both its quotient and */ +/* remainder, cast to a specific type. This macro also ensures that */ +/* the remainder is always positive. */ +#define SW_FT_DIV_MOD(type, dividend, divisor, quotient, remainder) \ + SW_FT_BEGIN_STMNT(quotient) = (type)((dividend) / (divisor)); \ + (remainder) = (type)((dividend) % (divisor)); \ + if ((remainder) < 0) { \ + (quotient)--; \ + (remainder) += (type)(divisor); \ + } \ + SW_FT_END_STMNT + +#ifdef __arm__ +/* Work around a bug specific to GCC which make the compiler fail to */ +/* optimize a division and modulo operation on the same parameters */ +/* into a single call to `__aeabi_idivmod'. See */ +/* */ +/* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43721 */ +#undef SW_FT_DIV_MOD +#define SW_FT_DIV_MOD(type, dividend, divisor, quotient, remainder) \ + SW_FT_BEGIN_STMNT(quotient) = (type)((dividend) / (divisor)); \ + (remainder) = (type)((dividend) - (quotient) * (divisor)); \ + if ((remainder) < 0) { \ + (quotient)--; \ + (remainder) += (type)(divisor); \ + } \ + SW_FT_END_STMNT +#endif /* __arm__ */ + +/* These macros speed up repetitive divisions by replacing them */ +/* with multiplications and right shifts. */ +#define SW_FT_UDIVPREP(b) \ + long b##_r = (long)(SW_FT_ULONG_MAX >> PIXEL_BITS) / (b) +#define SW_FT_UDIV(a, b) \ + (((unsigned long)(a) * (unsigned long)(b##_r)) >> \ + (sizeof(long) * SW_FT_CHAR_BIT - PIXEL_BITS)) + +/*************************************************************************/ +/* */ +/* TYPE DEFINITIONS */ +/* */ + +/* don't change the following types to SW_FT_Int or SW_FT_Pos, since we might */ +/* need to define them to "float" or "double" when experimenting with */ +/* new algorithms */ + +typedef long TCoord; /* integer scanline/pixel coordinate */ +typedef long TPos; /* sub-pixel coordinate */ + +/* determine the type used to store cell areas. This normally takes at */ +/* least PIXEL_BITS*2 + 1 bits. On 16-bit systems, we need to use */ +/* `long' instead of `int', otherwise bad things happen */ + +#if PIXEL_BITS <= 7 + +typedef int TArea; + +#else /* PIXEL_BITS >= 8 */ + +/* approximately determine the size of integers using an ANSI-C header */ +#if SW_FT_UINT_MAX == 0xFFFFU +typedef long TArea; +#else +typedef int TArea; +#endif + +#endif /* PIXEL_BITS >= 8 */ + +/* maximum number of gray spans in a call to the span callback */ +#define SW_FT_MAX_GRAY_SPANS 256 + +typedef struct TCell_* PCell; + +typedef struct TCell_ { + TPos x; /* same with gray_TWorker.ex */ + TCoord cover; /* same with gray_TWorker.cover */ + TArea area; + PCell next; + +} TCell; + +#if defined(_MSC_VER) /* Visual C++ (and Intel C++) */ +/* We disable the warning `structure was padded due to */ +/* __declspec(align())' in order to compile cleanly with */ +/* the maximum level of warnings. */ +#pragma warning(push) +#pragma warning(disable : 4324) +#endif /* _MSC_VER */ + +typedef struct gray_TWorker_ { + TCoord ex, ey; + TPos min_ex, max_ex; + TPos min_ey, max_ey; + TPos count_ex, count_ey; + + TArea area; + TCoord cover; + int invalid; + + PCell cells; + SW_FT_PtrDist max_cells; + SW_FT_PtrDist num_cells; + + TPos x, y; + + SW_FT_Vector bez_stack[32 * 3 + 1]; + int lev_stack[32]; + + SW_FT_Outline outline; + SW_FT_BBox clip_box; + + int bound_left; + int bound_top; + int bound_right; + int bound_bottom; + + SW_FT_Span gray_spans[SW_FT_MAX_GRAY_SPANS]; + int num_gray_spans; + + SW_FT_Raster_Span_Func render_span; + void* render_span_data; + + int band_size; + int band_shoot; + + ft_jmp_buf jump_buffer; + + void* buffer; + long buffer_size; + + PCell* ycells; + TPos ycount; + +} gray_TWorker, *gray_PWorker; + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + +#ifndef SW_FT_STATIC_RASTER +#define ras (*worker) +#else +static gray_TWorker ras; +#endif + +typedef struct gray_TRaster_ { + void* memory; + +} gray_TRaster, *gray_PRaster; + +/*************************************************************************/ +/* */ +/* Initialize the cells table. */ +/* */ +static void gray_init_cells(RAS_ARG_ void* buffer, long byte_size) +{ + ras.buffer = buffer; + ras.buffer_size = byte_size; + + ras.ycells = (PCell*)buffer; + ras.cells = NULL; + ras.max_cells = 0; + ras.num_cells = 0; + ras.area = 0; + ras.cover = 0; + ras.invalid = 1; + + ras.bound_left = INT_MAX; + ras.bound_top = INT_MAX; + ras.bound_right = INT_MIN; + ras.bound_bottom = INT_MIN; +} + +/*************************************************************************/ +/* */ +/* Compute the outline bounding box. */ +/* */ +static void gray_compute_cbox(RAS_ARG) +{ + SW_FT_Outline* outline = &ras.outline; + SW_FT_Vector* vec = outline->points; + SW_FT_Vector* limit = vec + outline->n_points; + + if (outline->n_points <= 0) { + ras.min_ex = ras.max_ex = 0; + ras.min_ey = ras.max_ey = 0; + return; + } + + ras.min_ex = ras.max_ex = vec->x; + ras.min_ey = ras.max_ey = vec->y; + + vec++; + + for (; vec < limit; vec++) { + TPos x = vec->x; + TPos y = vec->y; + + if (x < ras.min_ex) ras.min_ex = x; + if (x > ras.max_ex) ras.max_ex = x; + if (y < ras.min_ey) ras.min_ey = y; + if (y > ras.max_ey) ras.max_ey = y; + } + + /* truncate the bounding box to integer pixels */ + ras.min_ex = ras.min_ex >> 6; + ras.min_ey = ras.min_ey >> 6; + ras.max_ex = (ras.max_ex + 63) >> 6; + ras.max_ey = (ras.max_ey + 63) >> 6; +} + +/*************************************************************************/ +/* */ +/* Record the current cell in the table. */ +/* */ +static PCell gray_find_cell(RAS_ARG) +{ + PCell *pcell, cell; + TPos x = ras.ex; + + if (x > ras.count_ex) x = ras.count_ex; + + pcell = &ras.ycells[ras.ey]; + for (;;) { + cell = *pcell; + if (cell == NULL || cell->x > x) break; + + if (cell->x == x) goto Exit; + + pcell = &cell->next; + } + + if (ras.num_cells >= ras.max_cells) ft_longjmp(ras.jump_buffer, 1); + + cell = ras.cells + ras.num_cells++; + cell->x = x; + cell->area = 0; + cell->cover = 0; + + cell->next = *pcell; + *pcell = cell; + +Exit: + return cell; +} + +static void gray_record_cell(RAS_ARG) +{ + if (ras.area | ras.cover) { + PCell cell = gray_find_cell(RAS_VAR); + + cell->area += ras.area; + cell->cover += ras.cover; + } +} + +/*************************************************************************/ +/* */ +/* Set the current cell to a new position. */ +/* */ +static void gray_set_cell(RAS_ARG_ TCoord ex, TCoord ey) +{ + /* Move the cell pointer to a new position. We set the `invalid' */ + /* flag to indicate that the cell isn't part of those we're interested */ + /* in during the render phase. This means that: */ + /* */ + /* . the new vertical position must be within min_ey..max_ey-1. */ + /* . the new horizontal position must be strictly less than max_ex */ + /* */ + /* Note that if a cell is to the left of the clipping region, it is */ + /* actually set to the (min_ex-1) horizontal position. */ + + /* All cells that are on the left of the clipping region go to the */ + /* min_ex - 1 horizontal position. */ + ey -= ras.min_ey; + + if (ex > ras.max_ex) ex = ras.max_ex; + + ex -= ras.min_ex; + if (ex < 0) ex = -1; + + /* are we moving to a different cell ? */ + if (ex != ras.ex || ey != ras.ey) { + /* record the current one if it is valid */ + if (!ras.invalid) gray_record_cell(RAS_VAR); + + ras.area = 0; + ras.cover = 0; + ras.ex = ex; + ras.ey = ey; + } + + ras.invalid = + ((unsigned)ey >= (unsigned)ras.count_ey || ex >= ras.count_ex); +} + +/*************************************************************************/ +/* */ +/* Start a new contour at a given cell. */ +/* */ +static void gray_start_cell(RAS_ARG_ TCoord ex, TCoord ey) +{ + if (ex > ras.max_ex) ex = (TCoord)(ras.max_ex); + + if (ex < ras.min_ex) ex = (TCoord)(ras.min_ex - 1); + + ras.area = 0; + ras.cover = 0; + ras.ex = ex - ras.min_ex; + ras.ey = ey - ras.min_ey; + ras.invalid = 0; + + gray_set_cell(RAS_VAR_ ex, ey); +} + +/*************************************************************************/ +/* */ +/* Render a straight line across multiple cells in any direction. */ +/* */ +static void gray_render_line(RAS_ARG_ TPos to_x, TPos to_y) +{ + TPos dx, dy, fx1, fy1, fx2, fy2; + TCoord ex1, ex2, ey1, ey2; + + ex1 = TRUNC(ras.x); + ex2 = TRUNC(to_x); + ey1 = TRUNC(ras.y); + ey2 = TRUNC(to_y); + + /* perform vertical clipping */ + if ((ey1 >= ras.max_ey && ey2 >= ras.max_ey) || + (ey1 < ras.min_ey && ey2 < ras.min_ey)) + goto End; + + dx = to_x - ras.x; + dy = to_y - ras.y; + + fx1 = ras.x - SUBPIXELS(ex1); + fy1 = ras.y - SUBPIXELS(ey1); + + if (ex1 == ex2 && ey1 == ey2) /* inside one cell */ + ; + else if (dy == 0) /* ex1 != ex2 */ /* any horizontal line */ + { + ex1 = ex2; + gray_set_cell(RAS_VAR_ ex1, ey1); + } else if (dx == 0) { + if (dy > 0) /* vertical line up */ + do { + fy2 = ONE_PIXEL; + ras.cover += (fy2 - fy1); + ras.area += (fy2 - fy1) * fx1 * 2; + fy1 = 0; + ey1++; + gray_set_cell(RAS_VAR_ ex1, ey1); + } while (ey1 != ey2); + else /* vertical line down */ + do { + fy2 = 0; + ras.cover += (fy2 - fy1); + ras.area += (fy2 - fy1) * fx1 * 2; + fy1 = ONE_PIXEL; + ey1--; + gray_set_cell(RAS_VAR_ ex1, ey1); + } while (ey1 != ey2); + } else /* any other line */ + { + TArea prod = dx * fy1 - dy * fx1; + SW_FT_UDIVPREP(dx); + SW_FT_UDIVPREP(dy); + + /* The fundamental value `prod' determines which side and the */ + /* exact coordinate where the line exits current cell. It is */ + /* also easily updated when moving from one cell to the next. */ + do { + if (prod <= 0 && prod - dx * ONE_PIXEL > 0) /* left */ + { + fx2 = 0; + fy2 = (TPos)SW_FT_UDIV(-prod, -dx); + prod -= dy * ONE_PIXEL; + ras.cover += (fy2 - fy1); + ras.area += (fy2 - fy1) * (fx1 + fx2); + fx1 = ONE_PIXEL; + fy1 = fy2; + ex1--; + } else if (prod - dx * ONE_PIXEL <= 0 && + prod - dx * ONE_PIXEL + dy * ONE_PIXEL > 0) /* up */ + { + prod -= dx * ONE_PIXEL; + fx2 = (TPos)SW_FT_UDIV(-prod, dy); + fy2 = ONE_PIXEL; + ras.cover += (fy2 - fy1); + ras.area += (fy2 - fy1) * (fx1 + fx2); + fx1 = fx2; + fy1 = 0; + ey1++; + } else if (prod - dx * ONE_PIXEL + dy * ONE_PIXEL <= 0 && + prod + dy * ONE_PIXEL >= 0) /* right */ + { + prod += dy * ONE_PIXEL; + fx2 = ONE_PIXEL; + fy2 = (TPos)SW_FT_UDIV(prod, dx); + ras.cover += (fy2 - fy1); + ras.area += (fy2 - fy1) * (fx1 + fx2); + fx1 = 0; + fy1 = fy2; + ex1++; + } else /* ( prod + dy * ONE_PIXEL < 0 && + prod > 0 ) down */ + { + fx2 = (TPos)SW_FT_UDIV(prod, -dy); + fy2 = 0; + prod += dx * ONE_PIXEL; + ras.cover += (fy2 - fy1); + ras.area += (fy2 - fy1) * (fx1 + fx2); + fx1 = fx2; + fy1 = ONE_PIXEL; + ey1--; + } + + gray_set_cell(RAS_VAR_ ex1, ey1); + } while (ex1 != ex2 || ey1 != ey2); + } + + fx2 = to_x - SUBPIXELS(ex2); + fy2 = to_y - SUBPIXELS(ey2); + + ras.cover += (fy2 - fy1); + ras.area += (fy2 - fy1) * (fx1 + fx2); + +End: + ras.x = to_x; + ras.y = to_y; +} + +static void gray_split_conic(SW_FT_Vector* base) +{ + TPos a, b; + + base[4].x = base[2].x; + a = base[0].x + base[1].x; + b = base[1].x + base[2].x; + base[3].x = b >> 1; + base[2].x = ( a + b ) >> 2; + base[1].x = a >> 1; + + base[4].y = base[2].y; + a = base[0].y + base[1].y; + b = base[1].y + base[2].y; + base[3].y = b >> 1; + base[2].y = ( a + b ) >> 2; + base[1].y = a >> 1; +} + +static void gray_render_conic(RAS_ARG_ const SW_FT_Vector* control, + const SW_FT_Vector* to) +{ + TPos dx, dy; + TPos min, max, y; + int top, level; + int* levels; + SW_FT_Vector* arc; + + levels = ras.lev_stack; + + arc = ras.bez_stack; + arc[0].x = UPSCALE(to->x); + arc[0].y = UPSCALE(to->y); + arc[1].x = UPSCALE(control->x); + arc[1].y = UPSCALE(control->y); + arc[2].x = ras.x; + arc[2].y = ras.y; + top = 0; + + dx = SW_FT_ABS(arc[2].x + arc[0].x - 2 * arc[1].x); + dy = SW_FT_ABS(arc[2].y + arc[0].y - 2 * arc[1].y); + if (dx < dy) dx = dy; + + if (dx < ONE_PIXEL / 4) goto Draw; + + /* short-cut the arc that crosses the current band */ + min = max = arc[0].y; + + y = arc[1].y; + if (y < min) min = y; + if (y > max) max = y; + + y = arc[2].y; + if (y < min) min = y; + if (y > max) max = y; + + if (TRUNC(min) >= ras.max_ey || TRUNC(max) < ras.min_ey) goto Draw; + + level = 0; + do { + dx >>= 2; + level++; + } while (dx > ONE_PIXEL / 4); + + levels[0] = level; + + do { + level = levels[top]; + if (level > 0) { + gray_split_conic(arc); + arc += 2; + top++; + levels[top] = levels[top - 1] = level - 1; + continue; + } + + Draw: + gray_render_line(RAS_VAR_ arc[0].x, arc[0].y); + top--; + arc -= 2; + + } while (top >= 0); +} + +static void gray_split_cubic(SW_FT_Vector* base) +{ + TPos a, b, c; + + + base[6].x = base[3].x; + a = base[0].x + base[1].x; + b = base[1].x + base[2].x; + c = base[2].x + base[3].x; + base[5].x = c >> 1; + c += b; + base[4].x = c >> 2; + base[1].x = a >> 1; + a += b; + base[2].x = a >> 2; + base[3].x = ( a + c ) >> 3; + + base[6].y = base[3].y; + a = base[0].y + base[1].y; + b = base[1].y + base[2].y; + c = base[2].y + base[3].y; + base[5].y = c >> 1; + c += b; + base[4].y = c >> 2; + base[1].y = a >> 1; + a += b; + base[2].y = a >> 2; + base[3].y = ( a + c ) >> 3; +} + + +static void +gray_render_cubic(RAS_ARG_ const SW_FT_Vector* control1, + const SW_FT_Vector* control2, + const SW_FT_Vector* to) +{ + SW_FT_Vector* arc = ras.bez_stack; + + arc[0].x = UPSCALE( to->x ); + arc[0].y = UPSCALE( to->y ); + arc[1].x = UPSCALE( control2->x ); + arc[1].y = UPSCALE( control2->y ); + arc[2].x = UPSCALE( control1->x ); + arc[2].y = UPSCALE( control1->y ); + arc[3].x = ras.x; + arc[3].y = ras.y; + + /* short-cut the arc that crosses the current band */ + if ( ( TRUNC( arc[0].y ) >= ras.max_ey && + TRUNC( arc[1].y ) >= ras.max_ey && + TRUNC( arc[2].y ) >= ras.max_ey && + TRUNC( arc[3].y ) >= ras.max_ey ) || + ( TRUNC( arc[0].y ) < ras.min_ey && + TRUNC( arc[1].y ) < ras.min_ey && + TRUNC( arc[2].y ) < ras.min_ey && + TRUNC( arc[3].y ) < ras.min_ey ) ) + { + ras.x = arc[0].x; + ras.y = arc[0].y; + return; + } + + for (;;) + { + /* with each split, control points quickly converge towards */ + /* chord trisection points and the vanishing distances below */ + /* indicate when the segment is flat enough to draw */ + if ( SW_FT_ABS( 2 * arc[0].x - 3 * arc[1].x + arc[3].x ) > ONE_PIXEL / 2 || + SW_FT_ABS( 2 * arc[0].y - 3 * arc[1].y + arc[3].y ) > ONE_PIXEL / 2 || + SW_FT_ABS( arc[0].x - 3 * arc[2].x + 2 * arc[3].x ) > ONE_PIXEL / 2 || + SW_FT_ABS( arc[0].y - 3 * arc[2].y + 2 * arc[3].y ) > ONE_PIXEL / 2 ) + goto Split; + + gray_render_line( RAS_VAR_ arc[0].x, arc[0].y ); + + if ( arc == ras.bez_stack ) + return; + + arc -= 3; + continue; + + Split: + gray_split_cubic( arc ); + arc += 3; + } +} + +static int gray_move_to(const SW_FT_Vector* to, gray_PWorker worker) +{ + TPos x, y; + + /* record current cell, if any */ + if (!ras.invalid) gray_record_cell(RAS_VAR); + + /* start to a new position */ + x = UPSCALE(to->x); + y = UPSCALE(to->y); + + gray_start_cell(RAS_VAR_ TRUNC(x), TRUNC(y)); + + worker->x = x; + worker->y = y; + return 0; +} + +static int gray_line_to(const SW_FT_Vector* to, gray_PWorker worker) +{ + gray_render_line(RAS_VAR_ UPSCALE(to->x), UPSCALE(to->y)); + return 0; +} + +static int gray_conic_to(const SW_FT_Vector* control, const SW_FT_Vector* to, + gray_PWorker worker) +{ + gray_render_conic(RAS_VAR_ control, to); + return 0; +} + +static int gray_cubic_to(const SW_FT_Vector* control1, + const SW_FT_Vector* control2, const SW_FT_Vector* to, + gray_PWorker worker) +{ + gray_render_cubic(RAS_VAR_ control1, control2, to); + return 0; +} + +static void gray_hline(RAS_ARG_ TCoord x, TCoord y, TPos area, TCoord acount) +{ + int coverage; + + /* compute the coverage line's coverage, depending on the */ + /* outline fill rule */ + /* */ + /* the coverage percentage is area/(PIXEL_BITS*PIXEL_BITS*2) */ + /* */ + coverage = (int)(area >> (PIXEL_BITS * 2 + 1 - 8)); + /* use range 0..256 */ + if (coverage < 0) coverage = -coverage; + + if (ras.outline.flags & SW_FT_OUTLINE_EVEN_ODD_FILL) { + coverage &= 511; + + if (coverage > 256) + coverage = 512 - coverage; + else if (coverage == 256) + coverage = 255; + } else { + /* normal non-zero winding rule */ + if (coverage >= 256) coverage = 255; + } + + y += (TCoord)ras.min_ey; + x += (TCoord)ras.min_ex; + + /* SW_FT_Span.x is a 16-bit short, so limit our coordinates appropriately */ + if (x >= 32767) x = 32767; + + /* SW_FT_Span.y is an integer, so limit our coordinates appropriately */ + if (y >= SW_FT_INT_MAX) y = SW_FT_INT_MAX; + + if (coverage) { + SW_FT_Span* span; + int count; + + // update bounding box. + if (x < ras.bound_left) ras.bound_left = x; + if (y < ras.bound_top) ras.bound_top = y; + if (y > ras.bound_bottom) ras.bound_bottom = y; + if (x + acount > ras.bound_right) ras.bound_right = x + acount; + + /* see whether we can add this span to the current list */ + count = ras.num_gray_spans; + span = ras.gray_spans + count - 1; + if (count > 0 && span->y == y && (int)span->x + span->len == (int)x && + span->coverage == coverage) { + span->len = (unsigned short)(span->len + acount); + return; + } + + if (count >= SW_FT_MAX_GRAY_SPANS) { + if (ras.render_span && count > 0) + ras.render_span(count, ras.gray_spans, ras.render_span_data); + +#ifdef DEBUG_GRAYS + + if (1) { + int n; + + fprintf(stderr, "count = %3d ", count); + span = ras.gray_spans; + for (n = 0; n < count; n++, span++) + fprintf(stderr, "[%d , %d..%d] : %d ", span->y, span->x, + span->x + span->len - 1, span->coverage); + fprintf(stderr, "\n"); + } + +#endif /* DEBUG_GRAYS */ + + ras.num_gray_spans = 0; + + span = ras.gray_spans; + } else + span++; + + /* add a gray span to the current list */ + span->x = (short)x; + span->y = (short)y; + span->len = (unsigned short)acount; + span->coverage = (unsigned char)coverage; + + ras.num_gray_spans++; + } +} + +static void gray_sweep(RAS_ARG) +{ + int yindex; + + if (ras.num_cells == 0) return; + + ras.num_gray_spans = 0; + + for (yindex = 0; yindex < ras.ycount; yindex++) { + PCell cell = ras.ycells[yindex]; + TCoord cover = 0; + TCoord x = 0; + + for (; cell != NULL; cell = cell->next) { + TPos area; + + if (cell->x > x && cover != 0) + gray_hline(RAS_VAR_ x, yindex, cover * (ONE_PIXEL * 2), + cell->x - x); + + cover += cell->cover; + area = cover * (ONE_PIXEL * 2) - cell->area; + + if (area != 0 && cell->x >= 0) + gray_hline(RAS_VAR_ cell->x, yindex, area, 1); + + x = cell->x + 1; + } + + if (cover != 0) + gray_hline(RAS_VAR_ x, yindex, cover * (ONE_PIXEL * 2), + ras.count_ex - x); + } + + if (ras.render_span && ras.num_gray_spans > 0) + ras.render_span(ras.num_gray_spans, ras.gray_spans, + ras.render_span_data); +} + +/*************************************************************************/ +/* */ +/* The following function should only compile in stand-alone mode, */ +/* i.e., when building this component without the rest of FreeType. */ +/* */ +/*************************************************************************/ + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Outline_Decompose */ +/* */ +/* */ +/* Walk over an outline's structure to decompose it into individual */ +/* segments and Bézier arcs. This function is also able to emit */ +/* `move to' and `close to' operations to indicate the start and end */ +/* of new contours in the outline. */ +/* */ +/* */ +/* outline :: A pointer to the source target. */ +/* */ +/* func_interface :: A table of `emitters', i.e., function pointers */ +/* called during decomposition to indicate path */ +/* operations. */ +/* */ +/* */ +/* user :: A typeless pointer which is passed to each */ +/* emitter during the decomposition. It can be */ +/* used to store the state during the */ +/* decomposition. */ +/* */ +/* */ +/* Error code. 0 means success. */ +/* */ +static int SW_FT_Outline_Decompose(const SW_FT_Outline* outline, + const SW_FT_Outline_Funcs* func_interface, + void* user) +{ +#undef SCALED +#define SCALED(x) (((x) << shift) - delta) + + SW_FT_Vector v_last; + SW_FT_Vector v_control; + SW_FT_Vector v_start; + + SW_FT_Vector* point; + SW_FT_Vector* limit; + char* tags; + + int error; + + int n; /* index of contour in outline */ + int first; /* index of first point in contour */ + char tag; /* current point's state */ + + int shift; + TPos delta; + + if (!outline || !func_interface) return SW_FT_THROW(Invalid_Argument); + + shift = func_interface->shift; + delta = func_interface->delta; + first = 0; + + for (n = 0; n < outline->n_contours; n++) { + int last; /* index of last point in contour */ + + last = outline->contours[n]; + if (last < 0) goto Invalid_Outline; + limit = outline->points + last; + + v_start = outline->points[first]; + v_start.x = SCALED(v_start.x); + v_start.y = SCALED(v_start.y); + + v_last = outline->points[last]; + v_last.x = SCALED(v_last.x); + v_last.y = SCALED(v_last.y); + + v_control = v_start; + + point = outline->points + first; + tags = outline->tags + first; + tag = SW_FT_CURVE_TAG(tags[0]); + + /* A contour cannot start with a cubic control point! */ + if (tag == SW_FT_CURVE_TAG_CUBIC) goto Invalid_Outline; + + /* check first point to determine origin */ + if (tag == SW_FT_CURVE_TAG_CONIC) { + /* first point is conic control. Yes, this happens. */ + if (SW_FT_CURVE_TAG(outline->tags[last]) == SW_FT_CURVE_TAG_ON) { + /* start at last point if it is on the curve */ + v_start = v_last; + limit--; + } else { + /* if both first and last points are conic, */ + /* start at their middle and record its position */ + /* for closure */ + v_start.x = (v_start.x + v_last.x) / 2; + v_start.y = (v_start.y + v_last.y) / 2; + } + point--; + tags--; + } + + error = func_interface->move_to(&v_start, user); + if (error) goto Exit; + + while (point < limit) { + point++; + tags++; + + tag = SW_FT_CURVE_TAG(tags[0]); + switch (tag) { + case SW_FT_CURVE_TAG_ON: /* emit a single line_to */ + { + SW_FT_Vector vec; + + vec.x = SCALED(point->x); + vec.y = SCALED(point->y); + + error = func_interface->line_to(&vec, user); + if (error) goto Exit; + continue; + } + + case SW_FT_CURVE_TAG_CONIC: /* consume conic arcs */ + v_control.x = SCALED(point->x); + v_control.y = SCALED(point->y); + + Do_Conic: + if (point < limit) { + SW_FT_Vector vec; + SW_FT_Vector v_middle; + + point++; + tags++; + tag = SW_FT_CURVE_TAG(tags[0]); + + vec.x = SCALED(point->x); + vec.y = SCALED(point->y); + + if (tag == SW_FT_CURVE_TAG_ON) { + error = + func_interface->conic_to(&v_control, &vec, user); + if (error) goto Exit; + continue; + } + + if (tag != SW_FT_CURVE_TAG_CONIC) goto Invalid_Outline; + + v_middle.x = (v_control.x + vec.x) / 2; + v_middle.y = (v_control.y + vec.y) / 2; + + error = + func_interface->conic_to(&v_control, &v_middle, user); + if (error) goto Exit; + + v_control = vec; + goto Do_Conic; + } + + error = func_interface->conic_to(&v_control, &v_start, user); + goto Close; + + default: /* SW_FT_CURVE_TAG_CUBIC */ + { + SW_FT_Vector vec1, vec2; + + if (point + 1 > limit || + SW_FT_CURVE_TAG(tags[1]) != SW_FT_CURVE_TAG_CUBIC) + goto Invalid_Outline; + + point += 2; + tags += 2; + + vec1.x = SCALED(point[-2].x); + vec1.y = SCALED(point[-2].y); + + vec2.x = SCALED(point[-1].x); + vec2.y = SCALED(point[-1].y); + + if (point <= limit) { + SW_FT_Vector vec; + + vec.x = SCALED(point->x); + vec.y = SCALED(point->y); + + error = func_interface->cubic_to(&vec1, &vec2, &vec, user); + if (error) goto Exit; + continue; + } + + error = func_interface->cubic_to(&vec1, &vec2, &v_start, user); + goto Close; + } + } + } + + /* close the contour with a line segment */ + error = func_interface->line_to(&v_start, user); + + Close: + if (error) goto Exit; + + first = last + 1; + } + + return 0; + +Exit: + return error; + +Invalid_Outline: + return SW_FT_THROW(Invalid_Outline); +} + +typedef struct gray_TBand_ { + TPos min, max; + +} gray_TBand; + +SW_FT_DEFINE_OUTLINE_FUNCS(func_interface, + (SW_FT_Outline_MoveTo_Func)gray_move_to, + (SW_FT_Outline_LineTo_Func)gray_line_to, + (SW_FT_Outline_ConicTo_Func)gray_conic_to, + (SW_FT_Outline_CubicTo_Func)gray_cubic_to, 0, 0) + +static int gray_convert_glyph_inner(RAS_ARG) +{ + volatile int error = 0; + + if (ft_setjmp(ras.jump_buffer) == 0) { + error = SW_FT_Outline_Decompose(&ras.outline, &func_interface, &ras); + if (!ras.invalid) gray_record_cell(RAS_VAR); + } else + error = SW_FT_THROW(Memory_Overflow); + + return error; +} + +static int gray_convert_glyph(RAS_ARG) +{ + gray_TBand bands[40]; + gray_TBand* volatile band; + int volatile n, num_bands; + TPos volatile min, max, max_y; + SW_FT_BBox* clip; + + /* Set up state in the raster object */ + gray_compute_cbox(RAS_VAR); + + /* clip to target bitmap, exit if nothing to do */ + clip = &ras.clip_box; + + if (ras.max_ex <= clip->xMin || ras.min_ex >= clip->xMax || + ras.max_ey <= clip->yMin || ras.min_ey >= clip->yMax) + return 0; + + if (ras.min_ex < clip->xMin) ras.min_ex = clip->xMin; + if (ras.min_ey < clip->yMin) ras.min_ey = clip->yMin; + + if (ras.max_ex > clip->xMax) ras.max_ex = clip->xMax; + if (ras.max_ey > clip->yMax) ras.max_ey = clip->yMax; + + ras.count_ex = ras.max_ex - ras.min_ex; + ras.count_ey = ras.max_ey - ras.min_ey; + + /* set up vertical bands */ + num_bands = (int)((ras.max_ey - ras.min_ey) / ras.band_size); + if (num_bands == 0) num_bands = 1; + if (num_bands >= 39) num_bands = 39; + + ras.band_shoot = 0; + + min = ras.min_ey; + max_y = ras.max_ey; + + for (n = 0; n < num_bands; n++, min = max) { + max = min + ras.band_size; + if (n == num_bands - 1 || max > max_y) max = max_y; + + bands[0].min = min; + bands[0].max = max; + band = bands; + + while (band >= bands) { + TPos bottom, top, middle; + int error; + + { + PCell cells_max; + int yindex; + long cell_start, cell_end, cell_mod; + + ras.ycells = (PCell*)ras.buffer; + ras.ycount = band->max - band->min; + + cell_start = sizeof(PCell) * ras.ycount; + cell_mod = cell_start % sizeof(TCell); + if (cell_mod > 0) cell_start += sizeof(TCell) - cell_mod; + + cell_end = ras.buffer_size; + cell_end -= cell_end % sizeof(TCell); + + cells_max = (PCell)((char*)ras.buffer + cell_end); + ras.cells = (PCell)((char*)ras.buffer + cell_start); + if (ras.cells >= cells_max) goto ReduceBands; + + ras.max_cells = cells_max - ras.cells; + if (ras.max_cells < 2) goto ReduceBands; + + for (yindex = 0; yindex < ras.ycount; yindex++) + ras.ycells[yindex] = NULL; + } + + ras.num_cells = 0; + ras.invalid = 1; + ras.min_ey = band->min; + ras.max_ey = band->max; + ras.count_ey = band->max - band->min; + + error = gray_convert_glyph_inner(RAS_VAR); + + if (!error) { + gray_sweep(RAS_VAR); + band--; + continue; + } else if (error != ErrRaster_Memory_Overflow) + return 1; + + ReduceBands: + /* render pool overflow; we will reduce the render band by half */ + bottom = band->min; + top = band->max; + middle = bottom + ((top - bottom) >> 1); + + /* This is too complex for a single scanline; there must */ + /* be some problems. */ + if (middle == bottom) { + return 1; + } + + if (bottom - top >= ras.band_size) ras.band_shoot++; + + band[1].min = bottom; + band[1].max = middle; + band[0].min = middle; + band[0].max = top; + band++; + } + } + + if (ras.band_shoot > 8 && ras.band_size > 16) + ras.band_size = ras.band_size / 2; + + return 0; +} + +static int gray_raster_render(gray_PRaster raster, + const SW_FT_Raster_Params* params) +{ + SW_FT_UNUSED(raster); + const SW_FT_Outline* outline = (const SW_FT_Outline*)params->source; + + gray_TWorker worker[1]; + + TCell buffer[SW_FT_RENDER_POOL_SIZE / sizeof(TCell)]; + long buffer_size = sizeof(buffer); + int band_size = (int)(buffer_size / (long)(sizeof(TCell) * 8)); + + if (!outline) return SW_FT_THROW(Invalid_Outline); + + /* return immediately if the outline is empty */ + if (outline->n_points == 0 || outline->n_contours <= 0) return 0; + + if (!outline->contours || !outline->points) + return SW_FT_THROW(Invalid_Outline); + + if (outline->n_points != outline->contours[outline->n_contours - 1] + 1) + return SW_FT_THROW(Invalid_Outline); + + /* this version does not support monochrome rendering */ + if (!(params->flags & SW_FT_RASTER_FLAG_AA)) + return SW_FT_THROW(Invalid_Mode); + + if (params->flags & SW_FT_RASTER_FLAG_CLIP) + ras.clip_box = params->clip_box; + else { + ras.clip_box.xMin = -32768L; + ras.clip_box.yMin = -32768L; + ras.clip_box.xMax = 32767L; + ras.clip_box.yMax = 32767L; + } + + gray_init_cells(RAS_VAR_ buffer, buffer_size); + + ras.outline = *outline; + ras.num_cells = 0; + ras.invalid = 1; + ras.band_size = band_size; + ras.num_gray_spans = 0; + + ras.render_span = (SW_FT_Raster_Span_Func)params->gray_spans; + ras.render_span_data = params->user; + + gray_convert_glyph(RAS_VAR); + params->bbox_cb(ras.bound_left, ras.bound_top, + ras.bound_right - ras.bound_left, + ras.bound_bottom - ras.bound_top + 1, params->user); + return 1; +} + +/**** RASTER OBJECT CREATION: In stand-alone mode, we simply use *****/ +/**** a static object. *****/ + +static int gray_raster_new(SW_FT_Raster* araster) +{ + static gray_TRaster the_raster; + + *araster = (SW_FT_Raster)&the_raster; + SW_FT_MEM_ZERO(&the_raster, sizeof(the_raster)); + + return 0; +} + +static void gray_raster_done(SW_FT_Raster raster) +{ + /* nothing */ + SW_FT_UNUSED(raster); +} + +static void gray_raster_reset(SW_FT_Raster raster, char* pool_base, + long pool_size) +{ + SW_FT_UNUSED(raster); + SW_FT_UNUSED(pool_base); + SW_FT_UNUSED(pool_size); +} + +SW_FT_DEFINE_RASTER_FUNCS(sw_ft_grays_raster, + + (SW_FT_Raster_New_Func)gray_raster_new, + (SW_FT_Raster_Reset_Func)gray_raster_reset, + (SW_FT_Raster_Render_Func)gray_raster_render, + (SW_FT_Raster_Done_Func)gray_raster_done) + +/* END */ diff --git a/external/rlottie/src/vector/freetype/v_ft_raster.h b/external/rlottie/src/vector/freetype/v_ft_raster.h new file mode 100644 index 000000000..7897289fc --- /dev/null +++ b/external/rlottie/src/vector/freetype/v_ft_raster.h @@ -0,0 +1,607 @@ +#ifndef V_FT_IMG_H +#define V_FT_IMG_H +/***************************************************************************/ +/* */ +/* ftimage.h */ +/* */ +/* FreeType glyph image formats and default raster interface */ +/* (specification). */ +/* */ +/* Copyright 1996-2010, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + /*************************************************************************/ + /* */ + /* Note: A `raster' is simply a scan-line converter, used to render */ + /* SW_FT_Outlines into SW_FT_Bitmaps. */ + /* */ + /*************************************************************************/ + +#include "v_ft_types.h" + + /*************************************************************************/ + /* */ + /* */ + /* FT_BBox */ + /* */ + /* */ + /* A structure used to hold an outline's bounding box, i.e., the */ + /* coordinates of its extrema in the horizontal and vertical */ + /* directions. */ + /* */ + /* */ + /* xMin :: The horizontal minimum (left-most). */ + /* */ + /* yMin :: The vertical minimum (bottom-most). */ + /* */ + /* xMax :: The horizontal maximum (right-most). */ + /* */ + /* yMax :: The vertical maximum (top-most). */ + /* */ + /* */ + /* The bounding box is specified with the coordinates of the lower */ + /* left and the upper right corner. In PostScript, those values are */ + /* often called (llx,lly) and (urx,ury), respectively. */ + /* */ + /* If `yMin' is negative, this value gives the glyph's descender. */ + /* Otherwise, the glyph doesn't descend below the baseline. */ + /* Similarly, if `ymax' is positive, this value gives the glyph's */ + /* ascender. */ + /* */ + /* `xMin' gives the horizontal distance from the glyph's origin to */ + /* the left edge of the glyph's bounding box. If `xMin' is negative, */ + /* the glyph extends to the left of the origin. */ + /* */ + typedef struct SW_FT_BBox_ + { + SW_FT_Pos xMin, yMin; + SW_FT_Pos xMax, yMax; + + } SW_FT_BBox; + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Outline */ +/* */ +/* */ +/* This structure is used to describe an outline to the scan-line */ +/* converter. */ +/* */ +/* */ +/* n_contours :: The number of contours in the outline. */ +/* */ +/* n_points :: The number of points in the outline. */ +/* */ +/* points :: A pointer to an array of `n_points' @SW_FT_Vector */ +/* elements, giving the outline's point coordinates. */ +/* */ +/* tags :: A pointer to an array of `n_points' chars, giving */ +/* each outline point's type. */ +/* */ +/* If bit~0 is unset, the point is `off' the curve, */ +/* i.e., a Bézier control point, while it is `on' if */ +/* set. */ +/* */ +/* Bit~1 is meaningful for `off' points only. If set, */ +/* it indicates a third-order Bézier arc control point; */ +/* and a second-order control point if unset. */ +/* */ +/* If bit~2 is set, bits 5-7 contain the drop-out mode */ +/* (as defined in the OpenType specification; the value */ +/* is the same as the argument to the SCANMODE */ +/* instruction). */ +/* */ +/* Bits 3 and~4 are reserved for internal purposes. */ +/* */ +/* contours :: An array of `n_contours' shorts, giving the end */ +/* point of each contour within the outline. For */ +/* example, the first contour is defined by the points */ +/* `0' to `contours[0]', the second one is defined by */ +/* the points `contours[0]+1' to `contours[1]', etc. */ +/* */ +/* flags :: A set of bit flags used to characterize the outline */ +/* and give hints to the scan-converter and hinter on */ +/* how to convert/grid-fit it. See @SW_FT_OUTLINE_FLAGS.*/ +/* */ +typedef struct SW_FT_Outline_ +{ + short n_contours; /* number of contours in glyph */ + short n_points; /* number of points in the glyph */ + + SW_FT_Vector* points; /* the outline's points */ + char* tags; /* the points flags */ + short* contours; /* the contour end points */ + char* contours_flag; /* the contour open flags */ + + int flags; /* outline masks */ + +} SW_FT_Outline; + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_OUTLINE_FLAGS */ + /* */ + /* */ + /* A list of bit-field constants use for the flags in an outline's */ + /* `flags' field. */ + /* */ + /* */ + /* SW_FT_OUTLINE_NONE :: */ + /* Value~0 is reserved. */ + /* */ + /* SW_FT_OUTLINE_OWNER :: */ + /* If set, this flag indicates that the outline's field arrays */ + /* (i.e., `points', `flags', and `contours') are `owned' by the */ + /* outline object, and should thus be freed when it is destroyed. */ + /* */ + /* SW_FT_OUTLINE_EVEN_ODD_FILL :: */ + /* By default, outlines are filled using the non-zero winding rule. */ + /* If set to 1, the outline will be filled using the even-odd fill */ + /* rule (only works with the smooth rasterizer). */ + /* */ + /* SW_FT_OUTLINE_REVERSE_FILL :: */ + /* By default, outside contours of an outline are oriented in */ + /* clock-wise direction, as defined in the TrueType specification. */ + /* This flag is set if the outline uses the opposite direction */ + /* (typically for Type~1 fonts). This flag is ignored by the scan */ + /* converter. */ + /* */ + /* */ + /* */ + /* There exists a second mechanism to pass the drop-out mode to the */ + /* B/W rasterizer; see the `tags' field in @SW_FT_Outline. */ + /* */ + /* Please refer to the description of the `SCANTYPE' instruction in */ + /* the OpenType specification (in file `ttinst1.doc') how simple */ + /* drop-outs, smart drop-outs, and stubs are defined. */ + /* */ +#define SW_FT_OUTLINE_NONE 0x0 +#define SW_FT_OUTLINE_OWNER 0x1 +#define SW_FT_OUTLINE_EVEN_ODD_FILL 0x2 +#define SW_FT_OUTLINE_REVERSE_FILL 0x4 + + /* */ + +#define SW_FT_CURVE_TAG( flag ) ( flag & 3 ) + +#define SW_FT_CURVE_TAG_ON 1 +#define SW_FT_CURVE_TAG_CONIC 0 +#define SW_FT_CURVE_TAG_CUBIC 2 + + +#define SW_FT_Curve_Tag_On SW_FT_CURVE_TAG_ON +#define SW_FT_Curve_Tag_Conic SW_FT_CURVE_TAG_CONIC +#define SW_FT_Curve_Tag_Cubic SW_FT_CURVE_TAG_CUBIC + + /*************************************************************************/ + /* */ + /* A raster is a scan converter, in charge of rendering an outline into */ + /* a a bitmap. This section contains the public API for rasters. */ + /* */ + /* Note that in FreeType 2, all rasters are now encapsulated within */ + /* specific modules called `renderers'. See `ftrender.h' for more */ + /* details on renderers. */ + /* */ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_Raster */ + /* */ + /* */ + /* A handle (pointer) to a raster object. Each object can be used */ + /* independently to convert an outline into a bitmap or pixmap. */ + /* */ + typedef struct SW_FT_RasterRec_* SW_FT_Raster; + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_Span */ + /* */ + /* */ + /* A structure used to model a single span of gray (or black) pixels */ + /* when rendering a monochrome or anti-aliased bitmap. */ + /* */ + /* */ + /* x :: The span's horizontal start position. */ + /* */ + /* len :: The span's length in pixels. */ + /* */ + /* coverage :: The span color/coverage, ranging from 0 (background) */ + /* to 255 (foreground). Only used for anti-aliased */ + /* rendering. */ + /* */ + /* */ + /* This structure is used by the span drawing callback type named */ + /* @SW_FT_SpanFunc that takes the y~coordinate of the span as a */ + /* parameter. */ + /* */ + /* The coverage value is always between 0 and 255. If you want less */ + /* gray values, the callback function has to reduce them. */ + /* */ + typedef struct SW_FT_Span_ + { + short x; + short y; + unsigned short len; + unsigned char coverage; + + } SW_FT_Span; + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_SpanFunc */ + /* */ + /* */ + /* A function used as a call-back by the anti-aliased renderer in */ + /* order to let client applications draw themselves the gray pixel */ + /* spans on each scan line. */ + /* */ + /* */ + /* y :: The scanline's y~coordinate. */ + /* */ + /* count :: The number of spans to draw on this scanline. */ + /* */ + /* spans :: A table of `count' spans to draw on the scanline. */ + /* */ + /* user :: User-supplied data that is passed to the callback. */ + /* */ + /* */ + /* This callback allows client applications to directly render the */ + /* gray spans of the anti-aliased bitmap to any kind of surfaces. */ + /* */ + /* This can be used to write anti-aliased outlines directly to a */ + /* given background bitmap, and even perform translucency. */ + /* */ + /* Note that the `count' field cannot be greater than a fixed value */ + /* defined by the `SW_FT_MAX_GRAY_SPANS' configuration macro in */ + /* `ftoption.h'. By default, this value is set to~32, which means */ + /* that if there are more than 32~spans on a given scanline, the */ + /* callback is called several times with the same `y' parameter in */ + /* order to draw all callbacks. */ + /* */ + /* Otherwise, the callback is only called once per scan-line, and */ + /* only for those scanlines that do have `gray' pixels on them. */ + /* */ + typedef void + (*SW_FT_SpanFunc)( int count, + const SW_FT_Span* spans, + void* user ); + + typedef void + (*SW_FT_BboxFunc)( int x, int y, int w, int h, + void* user); + +#define SW_FT_Raster_Span_Func SW_FT_SpanFunc + + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_RASTER_FLAG_XXX */ + /* */ + /* */ + /* A list of bit flag constants as used in the `flags' field of a */ + /* @SW_FT_Raster_Params structure. */ + /* */ + /* */ + /* SW_FT_RASTER_FLAG_DEFAULT :: This value is 0. */ + /* */ + /* SW_FT_RASTER_FLAG_AA :: This flag is set to indicate that an */ + /* anti-aliased glyph image should be */ + /* generated. Otherwise, it will be */ + /* monochrome (1-bit). */ + /* */ + /* SW_FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */ + /* rendering. In this mode, client */ + /* applications must provide their own span */ + /* callback. This lets them directly */ + /* draw or compose over an existing bitmap. */ + /* If this bit is not set, the target */ + /* pixmap's buffer _must_ be zeroed before */ + /* rendering. */ + /* */ + /* Note that for now, direct rendering is */ + /* only possible with anti-aliased glyphs. */ + /* */ + /* SW_FT_RASTER_FLAG_CLIP :: This flag is only used in direct */ + /* rendering mode. If set, the output will */ + /* be clipped to a box specified in the */ + /* `clip_box' field of the */ + /* @SW_FT_Raster_Params structure. */ + /* */ + /* Note that by default, the glyph bitmap */ + /* is clipped to the target pixmap, except */ + /* in direct rendering mode where all spans */ + /* are generated if no clipping box is set. */ + /* */ +#define SW_FT_RASTER_FLAG_DEFAULT 0x0 +#define SW_FT_RASTER_FLAG_AA 0x1 +#define SW_FT_RASTER_FLAG_DIRECT 0x2 +#define SW_FT_RASTER_FLAG_CLIP 0x4 + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_Raster_Params */ + /* */ + /* */ + /* A structure to hold the arguments used by a raster's render */ + /* function. */ + /* */ + /* */ + /* target :: The target bitmap. */ + /* */ + /* source :: A pointer to the source glyph image (e.g., an */ + /* @SW_FT_Outline). */ + /* */ + /* flags :: The rendering flags. */ + /* */ + /* gray_spans :: The gray span drawing callback. */ + /* */ + /* black_spans :: The black span drawing callback. UNIMPLEMENTED! */ + /* */ + /* bit_test :: The bit test callback. UNIMPLEMENTED! */ + /* */ + /* bit_set :: The bit set callback. UNIMPLEMENTED! */ + /* */ + /* user :: User-supplied data that is passed to each drawing */ + /* callback. */ + /* */ + /* clip_box :: An optional clipping box. It is only used in */ + /* direct rendering mode. Note that coordinates here */ + /* should be expressed in _integer_ pixels (and not in */ + /* 26.6 fixed-point units). */ + /* */ + /* */ + /* An anti-aliased glyph bitmap is drawn if the @SW_FT_RASTER_FLAG_AA */ + /* bit flag is set in the `flags' field, otherwise a monochrome */ + /* bitmap is generated. */ + /* */ + /* If the @SW_FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */ + /* raster will call the `gray_spans' callback to draw gray pixel */ + /* spans, in the case of an aa glyph bitmap, it will call */ + /* `black_spans', and `bit_test' and `bit_set' in the case of a */ + /* monochrome bitmap. This allows direct composition over a */ + /* pre-existing bitmap through user-provided callbacks to perform the */ + /* span drawing/composition. */ + /* */ + /* Note that the `bit_test' and `bit_set' callbacks are required when */ + /* rendering a monochrome bitmap, as they are crucial to implement */ + /* correct drop-out control as defined in the TrueType specification. */ + /* */ + typedef struct SW_FT_Raster_Params_ + { + const void* source; + int flags; + SW_FT_SpanFunc gray_spans; + SW_FT_BboxFunc bbox_cb; + void* user; + SW_FT_BBox clip_box; + + } SW_FT_Raster_Params; + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Outline_Check */ +/* */ +/* */ +/* Check the contents of an outline descriptor. */ +/* */ +/* */ +/* outline :: A handle to a source outline. */ +/* */ +/* */ +/* FreeType error code. 0~means success. */ +/* */ +SW_FT_Error +SW_FT_Outline_Check( SW_FT_Outline* outline ); + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Outline_Get_CBox */ +/* */ +/* */ +/* Return an outline's `control box'. The control box encloses all */ +/* the outline's points, including Bézier control points. Though it */ +/* coincides with the exact bounding box for most glyphs, it can be */ +/* slightly larger in some situations (like when rotating an outline */ +/* that contains Bézier outside arcs). */ +/* */ +/* Computing the control box is very fast, while getting the bounding */ +/* box can take much more time as it needs to walk over all segments */ +/* and arcs in the outline. To get the latter, you can use the */ +/* `ftbbox' component, which is dedicated to this single task. */ +/* */ +/* */ +/* outline :: A pointer to the source outline descriptor. */ +/* */ +/* */ +/* acbox :: The outline's control box. */ +/* */ +/* */ +/* See @SW_FT_Glyph_Get_CBox for a discussion of tricky fonts. */ +/* */ +void +SW_FT_Outline_Get_CBox( const SW_FT_Outline* outline, + SW_FT_BBox *acbox ); + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_Raster_NewFunc */ + /* */ + /* */ + /* A function used to create a new raster object. */ + /* */ + /* */ + /* memory :: A handle to the memory allocator. */ + /* */ + /* */ + /* raster :: A handle to the new raster object. */ + /* */ + /* */ + /* Error code. 0~means success. */ + /* */ + /* */ + /* The `memory' parameter is a typeless pointer in order to avoid */ + /* un-wanted dependencies on the rest of the FreeType code. In */ + /* practice, it is an @SW_FT_Memory object, i.e., a handle to the */ + /* standard FreeType memory allocator. However, this field can be */ + /* completely ignored by a given raster implementation. */ + /* */ + typedef int + (*SW_FT_Raster_NewFunc)( SW_FT_Raster* raster ); + +#define SW_FT_Raster_New_Func SW_FT_Raster_NewFunc + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_Raster_DoneFunc */ + /* */ + /* */ + /* A function used to destroy a given raster object. */ + /* */ + /* */ + /* raster :: A handle to the raster object. */ + /* */ + typedef void + (*SW_FT_Raster_DoneFunc)( SW_FT_Raster raster ); + +#define SW_FT_Raster_Done_Func SW_FT_Raster_DoneFunc + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_Raster_ResetFunc */ + /* */ + /* */ + /* FreeType provides an area of memory called the `render pool', */ + /* available to all registered rasters. This pool can be freely used */ + /* during a given scan-conversion but is shared by all rasters. Its */ + /* content is thus transient. */ + /* */ + /* This function is called each time the render pool changes, or just */ + /* after a new raster object is created. */ + /* */ + /* */ + /* raster :: A handle to the new raster object. */ + /* */ + /* pool_base :: The address in memory of the render pool. */ + /* */ + /* pool_size :: The size in bytes of the render pool. */ + /* */ + /* */ + /* Rasters can ignore the render pool and rely on dynamic memory */ + /* allocation if they want to (a handle to the memory allocator is */ + /* passed to the raster constructor). However, this is not */ + /* recommended for efficiency purposes. */ + /* */ + typedef void + (*SW_FT_Raster_ResetFunc)( SW_FT_Raster raster, + unsigned char* pool_base, + unsigned long pool_size ); + +#define SW_FT_Raster_Reset_Func SW_FT_Raster_ResetFunc + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_Raster_RenderFunc */ + /* */ + /* */ + /* Invoke a given raster to scan-convert a given glyph image into a */ + /* target bitmap. */ + /* */ + /* */ + /* raster :: A handle to the raster object. */ + /* */ + /* params :: A pointer to an @SW_FT_Raster_Params structure used to */ + /* store the rendering parameters. */ + /* */ + /* */ + /* Error code. 0~means success. */ + /* */ + /* */ + /* The exact format of the source image depends on the raster's glyph */ + /* format defined in its @SW_FT_Raster_Funcs structure. It can be an */ + /* @SW_FT_Outline or anything else in order to support a large array of */ + /* glyph formats. */ + /* */ + /* Note also that the render function can fail and return a */ + /* `SW_FT_Err_Unimplemented_Feature' error code if the raster used does */ + /* not support direct composition. */ + /* */ + /* XXX: For now, the standard raster doesn't support direct */ + /* composition but this should change for the final release (see */ + /* the files `demos/src/ftgrays.c' and `demos/src/ftgrays2.c' */ + /* for examples of distinct implementations that support direct */ + /* composition). */ + /* */ + typedef int + (*SW_FT_Raster_RenderFunc)( SW_FT_Raster raster, + const SW_FT_Raster_Params* params ); + +#define SW_FT_Raster_Render_Func SW_FT_Raster_RenderFunc + + + /*************************************************************************/ + /* */ + /* */ + /* SW_FT_Raster_Funcs */ + /* */ + /* */ + /* A structure used to describe a given raster class to the library. */ + /* */ + /* */ + /* glyph_format :: The supported glyph format for this raster. */ + /* */ + /* raster_new :: The raster constructor. */ + /* */ + /* raster_reset :: Used to reset the render pool within the raster. */ + /* */ + /* raster_render :: A function to render a glyph into a given bitmap. */ + /* */ + /* raster_done :: The raster destructor. */ + /* */ + typedef struct SW_FT_Raster_Funcs_ + { + SW_FT_Raster_NewFunc raster_new; + SW_FT_Raster_ResetFunc raster_reset; + SW_FT_Raster_RenderFunc raster_render; + SW_FT_Raster_DoneFunc raster_done; + + } SW_FT_Raster_Funcs; + + +extern const SW_FT_Raster_Funcs sw_ft_grays_raster; + +#endif // V_FT_IMG_H diff --git a/external/rlottie/src/vector/freetype/v_ft_stroker.cpp b/external/rlottie/src/vector/freetype/v_ft_stroker.cpp new file mode 100644 index 000000000..3160f84f9 --- /dev/null +++ b/external/rlottie/src/vector/freetype/v_ft_stroker.cpp @@ -0,0 +1,1936 @@ + +/***************************************************************************/ +/* */ +/* ftstroke.c */ +/* */ +/* FreeType path stroker (body). */ +/* */ +/* Copyright 2002-2006, 2008-2011, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + +#include "v_ft_stroker.h" +#include +#include +#include +#include "v_ft_math.h" + +/*************************************************************************/ +/*************************************************************************/ +/***** *****/ +/***** BEZIER COMPUTATIONS *****/ +/***** *****/ +/*************************************************************************/ +/*************************************************************************/ + +#define SW_FT_SMALL_CONIC_THRESHOLD (SW_FT_ANGLE_PI / 6) +#define SW_FT_SMALL_CUBIC_THRESHOLD (SW_FT_ANGLE_PI / 8) + +#define SW_FT_EPSILON 2 + +#define SW_FT_IS_SMALL(x) ((x) > -SW_FT_EPSILON && (x) < SW_FT_EPSILON) + +static SW_FT_Pos ft_pos_abs(SW_FT_Pos x) +{ + return x >= 0 ? x : -x; +} + +static void ft_conic_split(SW_FT_Vector* base) +{ + SW_FT_Pos a, b; + + base[4].x = base[2].x; + a = base[0].x + base[1].x; + b = base[1].x + base[2].x; + base[3].x = b >> 1; + base[2].x = ( a + b ) >> 2; + base[1].x = a >> 1; + + base[4].y = base[2].y; + a = base[0].y + base[1].y; + b = base[1].y + base[2].y; + base[3].y = b >> 1; + base[2].y = ( a + b ) >> 2; + base[1].y = a >> 1; +} + +static SW_FT_Bool ft_conic_is_small_enough(SW_FT_Vector* base, + SW_FT_Angle* angle_in, + SW_FT_Angle* angle_out) +{ + SW_FT_Vector d1, d2; + SW_FT_Angle theta; + SW_FT_Int close1, close2; + + d1.x = base[1].x - base[2].x; + d1.y = base[1].y - base[2].y; + d2.x = base[0].x - base[1].x; + d2.y = base[0].y - base[1].y; + + close1 = SW_FT_IS_SMALL(d1.x) && SW_FT_IS_SMALL(d1.y); + close2 = SW_FT_IS_SMALL(d2.x) && SW_FT_IS_SMALL(d2.y); + + if (close1) { + if (close2) { + /* basically a point; */ + /* do nothing to retain original direction */ + } else { + *angle_in = *angle_out = SW_FT_Atan2(d2.x, d2.y); + } + } else /* !close1 */ + { + if (close2) { + *angle_in = *angle_out = SW_FT_Atan2(d1.x, d1.y); + } else { + *angle_in = SW_FT_Atan2(d1.x, d1.y); + *angle_out = SW_FT_Atan2(d2.x, d2.y); + } + } + + theta = ft_pos_abs(SW_FT_Angle_Diff(*angle_in, *angle_out)); + + return SW_FT_BOOL(theta < SW_FT_SMALL_CONIC_THRESHOLD); +} + +static void ft_cubic_split(SW_FT_Vector* base) +{ + SW_FT_Pos a, b, c; + + base[6].x = base[3].x; + a = base[0].x + base[1].x; + b = base[1].x + base[2].x; + c = base[2].x + base[3].x; + base[5].x = c >> 1; + c += b; + base[4].x = c >> 2; + base[1].x = a >> 1; + a += b; + base[2].x = a >> 2; + base[3].x = ( a + c ) >> 3; + + base[6].y = base[3].y; + a = base[0].y + base[1].y; + b = base[1].y + base[2].y; + c = base[2].y + base[3].y; + base[5].y = c >> 1; + c += b; + base[4].y = c >> 2; + base[1].y = a >> 1; + a += b; + base[2].y = a >> 2; + base[3].y = ( a + c ) >> 3; +} + +/* Return the average of `angle1' and `angle2'. */ +/* This gives correct result even if `angle1' and `angle2' */ +/* have opposite signs. */ +static SW_FT_Angle ft_angle_mean(SW_FT_Angle angle1, SW_FT_Angle angle2) +{ + return angle1 + SW_FT_Angle_Diff(angle1, angle2) / 2; +} + +static SW_FT_Bool ft_cubic_is_small_enough(SW_FT_Vector* base, + SW_FT_Angle* angle_in, + SW_FT_Angle* angle_mid, + SW_FT_Angle* angle_out) +{ + SW_FT_Vector d1, d2, d3; + SW_FT_Angle theta1, theta2; + SW_FT_Int close1, close2, close3; + + d1.x = base[2].x - base[3].x; + d1.y = base[2].y - base[3].y; + d2.x = base[1].x - base[2].x; + d2.y = base[1].y - base[2].y; + d3.x = base[0].x - base[1].x; + d3.y = base[0].y - base[1].y; + + close1 = SW_FT_IS_SMALL(d1.x) && SW_FT_IS_SMALL(d1.y); + close2 = SW_FT_IS_SMALL(d2.x) && SW_FT_IS_SMALL(d2.y); + close3 = SW_FT_IS_SMALL(d3.x) && SW_FT_IS_SMALL(d3.y); + + if (close1) { + if (close2) { + if (close3) { + /* basically a point; */ + /* do nothing to retain original direction */ + } else /* !close3 */ + { + *angle_in = *angle_mid = *angle_out = SW_FT_Atan2(d3.x, d3.y); + } + } else /* !close2 */ + { + if (close3) { + *angle_in = *angle_mid = *angle_out = SW_FT_Atan2(d2.x, d2.y); + } else /* !close3 */ + { + *angle_in = *angle_mid = SW_FT_Atan2(d2.x, d2.y); + *angle_out = SW_FT_Atan2(d3.x, d3.y); + } + } + } else /* !close1 */ + { + if (close2) { + if (close3) { + *angle_in = *angle_mid = *angle_out = SW_FT_Atan2(d1.x, d1.y); + } else /* !close3 */ + { + *angle_in = SW_FT_Atan2(d1.x, d1.y); + *angle_out = SW_FT_Atan2(d3.x, d3.y); + *angle_mid = ft_angle_mean(*angle_in, *angle_out); + } + } else /* !close2 */ + { + if (close3) { + *angle_in = SW_FT_Atan2(d1.x, d1.y); + *angle_mid = *angle_out = SW_FT_Atan2(d2.x, d2.y); + } else /* !close3 */ + { + *angle_in = SW_FT_Atan2(d1.x, d1.y); + *angle_mid = SW_FT_Atan2(d2.x, d2.y); + *angle_out = SW_FT_Atan2(d3.x, d3.y); + } + } + } + + theta1 = ft_pos_abs(SW_FT_Angle_Diff(*angle_in, *angle_mid)); + theta2 = ft_pos_abs(SW_FT_Angle_Diff(*angle_mid, *angle_out)); + + return SW_FT_BOOL(theta1 < SW_FT_SMALL_CUBIC_THRESHOLD && + theta2 < SW_FT_SMALL_CUBIC_THRESHOLD); +} + +/*************************************************************************/ +/*************************************************************************/ +/***** *****/ +/***** STROKE BORDERS *****/ +/***** *****/ +/*************************************************************************/ +/*************************************************************************/ + +typedef enum SW_FT_StrokeTags_ { + SW_FT_STROKE_TAG_ON = 1, /* on-curve point */ + SW_FT_STROKE_TAG_CUBIC = 2, /* cubic off-point */ + SW_FT_STROKE_TAG_BEGIN = 4, /* sub-path start */ + SW_FT_STROKE_TAG_END = 8 /* sub-path end */ + +} SW_FT_StrokeTags; + +#define SW_FT_STROKE_TAG_BEGIN_END \ + (SW_FT_STROKE_TAG_BEGIN | SW_FT_STROKE_TAG_END) + +typedef struct SW_FT_StrokeBorderRec_ { + SW_FT_UInt num_points; + SW_FT_UInt max_points; + SW_FT_Vector* points; + SW_FT_Byte* tags; + SW_FT_Bool movable; /* TRUE for ends of lineto borders */ + SW_FT_Int start; /* index of current sub-path start point */ + SW_FT_Bool valid; + +} SW_FT_StrokeBorderRec, *SW_FT_StrokeBorder; + +SW_FT_Error SW_FT_Outline_Check(SW_FT_Outline* outline) +{ + if (outline) { + SW_FT_Int n_points = outline->n_points; + SW_FT_Int n_contours = outline->n_contours; + SW_FT_Int end0, end; + SW_FT_Int n; + + /* empty glyph? */ + if (n_points == 0 && n_contours == 0) return 0; + + /* check point and contour counts */ + if (n_points <= 0 || n_contours <= 0) goto Bad; + + end0 = end = -1; + for (n = 0; n < n_contours; n++) { + end = outline->contours[n]; + + /* note that we don't accept empty contours */ + if (end <= end0 || end >= n_points) goto Bad; + + end0 = end; + } + + if (end != n_points - 1) goto Bad; + + /* XXX: check the tags array */ + return 0; + } + +Bad: + return -1; // SW_FT_THROW( Invalid_Argument ); +} + +void SW_FT_Outline_Get_CBox(const SW_FT_Outline* outline, SW_FT_BBox* acbox) +{ + SW_FT_Pos xMin, yMin, xMax, yMax; + + if (outline && acbox) { + if (outline->n_points == 0) { + xMin = 0; + yMin = 0; + xMax = 0; + yMax = 0; + } else { + SW_FT_Vector* vec = outline->points; + SW_FT_Vector* limit = vec + outline->n_points; + + xMin = xMax = vec->x; + yMin = yMax = vec->y; + vec++; + + for (; vec < limit; vec++) { + SW_FT_Pos x, y; + + x = vec->x; + if (x < xMin) xMin = x; + if (x > xMax) xMax = x; + + y = vec->y; + if (y < yMin) yMin = y; + if (y > yMax) yMax = y; + } + } + acbox->xMin = xMin; + acbox->xMax = xMax; + acbox->yMin = yMin; + acbox->yMax = yMax; + } +} + +static SW_FT_Error ft_stroke_border_grow(SW_FT_StrokeBorder border, + SW_FT_UInt new_points) +{ + SW_FT_UInt old_max = border->max_points; + SW_FT_UInt new_max = border->num_points + new_points; + SW_FT_Error error = 0; + + if (new_max > old_max) { + SW_FT_UInt cur_max = old_max; + + while (cur_max < new_max) cur_max += (cur_max >> 1) + 16; + + border->points = (SW_FT_Vector*)realloc(border->points, + cur_max * sizeof(SW_FT_Vector)); + border->tags = + (SW_FT_Byte*)realloc(border->tags, cur_max * sizeof(SW_FT_Byte)); + + if (!border->points || !border->tags) goto Exit; + + border->max_points = cur_max; + } + +Exit: + return error; +} + +static void ft_stroke_border_close(SW_FT_StrokeBorder border, + SW_FT_Bool reverse) +{ + SW_FT_UInt start = border->start; + SW_FT_UInt count = border->num_points; + + assert(border->start >= 0); + + /* don't record empty paths! */ + if (count <= start + 1U) + border->num_points = start; + else { + /* copy the last point to the start of this sub-path, since */ + /* it contains the `adjusted' starting coordinates */ + border->num_points = --count; + border->points[start] = border->points[count]; + + if (reverse) { + /* reverse the points */ + { + SW_FT_Vector* vec1 = border->points + start + 1; + SW_FT_Vector* vec2 = border->points + count - 1; + + for (; vec1 < vec2; vec1++, vec2--) { + SW_FT_Vector tmp; + + tmp = *vec1; + *vec1 = *vec2; + *vec2 = tmp; + } + } + + /* then the tags */ + { + SW_FT_Byte* tag1 = border->tags + start + 1; + SW_FT_Byte* tag2 = border->tags + count - 1; + + for (; tag1 < tag2; tag1++, tag2--) { + SW_FT_Byte tmp; + + tmp = *tag1; + *tag1 = *tag2; + *tag2 = tmp; + } + } + } + + border->tags[start] |= SW_FT_STROKE_TAG_BEGIN; + border->tags[count - 1] |= SW_FT_STROKE_TAG_END; + } + + border->start = -1; + border->movable = FALSE; +} + +static SW_FT_Error ft_stroke_border_lineto(SW_FT_StrokeBorder border, + SW_FT_Vector* to, SW_FT_Bool movable) +{ + SW_FT_Error error = 0; + + assert(border->start >= 0); + + if (border->movable) { + /* move last point */ + border->points[border->num_points - 1] = *to; + } else { + /* don't add zero-length lineto */ + if (border->num_points > 0 && + SW_FT_IS_SMALL(border->points[border->num_points - 1].x - to->x) && + SW_FT_IS_SMALL(border->points[border->num_points - 1].y - to->y)) + return error; + + /* add one point */ + error = ft_stroke_border_grow(border, 1); + if (!error) { + SW_FT_Vector* vec = border->points + border->num_points; + SW_FT_Byte* tag = border->tags + border->num_points; + + vec[0] = *to; + tag[0] = SW_FT_STROKE_TAG_ON; + + border->num_points += 1; + } + } + border->movable = movable; + return error; +} + +static SW_FT_Error ft_stroke_border_conicto(SW_FT_StrokeBorder border, + SW_FT_Vector* control, + SW_FT_Vector* to) +{ + SW_FT_Error error; + + assert(border->start >= 0); + + error = ft_stroke_border_grow(border, 2); + if (!error) { + SW_FT_Vector* vec = border->points + border->num_points; + SW_FT_Byte* tag = border->tags + border->num_points; + + vec[0] = *control; + vec[1] = *to; + + tag[0] = 0; + tag[1] = SW_FT_STROKE_TAG_ON; + + border->num_points += 2; + } + + border->movable = FALSE; + + return error; +} + +static SW_FT_Error ft_stroke_border_cubicto(SW_FT_StrokeBorder border, + SW_FT_Vector* control1, + SW_FT_Vector* control2, + SW_FT_Vector* to) +{ + SW_FT_Error error; + + assert(border->start >= 0); + + error = ft_stroke_border_grow(border, 3); + if (!error) { + SW_FT_Vector* vec = border->points + border->num_points; + SW_FT_Byte* tag = border->tags + border->num_points; + + vec[0] = *control1; + vec[1] = *control2; + vec[2] = *to; + + tag[0] = SW_FT_STROKE_TAG_CUBIC; + tag[1] = SW_FT_STROKE_TAG_CUBIC; + tag[2] = SW_FT_STROKE_TAG_ON; + + border->num_points += 3; + } + + border->movable = FALSE; + + return error; +} + +#define SW_FT_ARC_CUBIC_ANGLE (SW_FT_ANGLE_PI / 2) + + +static SW_FT_Error +ft_stroke_border_arcto( SW_FT_StrokeBorder border, + SW_FT_Vector* center, + SW_FT_Fixed radius, + SW_FT_Angle angle_start, + SW_FT_Angle angle_diff ) +{ + SW_FT_Fixed coef; + SW_FT_Vector a0, a1, a2, a3; + SW_FT_Int i, arcs = 1; + SW_FT_Error error = 0; + + + /* number of cubic arcs to draw */ + while ( angle_diff > SW_FT_ARC_CUBIC_ANGLE * arcs || + -angle_diff > SW_FT_ARC_CUBIC_ANGLE * arcs ) + arcs++; + + /* control tangents */ + coef = SW_FT_Tan( angle_diff / ( 4 * arcs ) ); + coef += coef / 3; + + /* compute start and first control point */ + SW_FT_Vector_From_Polar( &a0, radius, angle_start ); + a1.x = SW_FT_MulFix( -a0.y, coef ); + a1.y = SW_FT_MulFix( a0.x, coef ); + + a0.x += center->x; + a0.y += center->y; + a1.x += a0.x; + a1.y += a0.y; + + for ( i = 1; i <= arcs; i++ ) + { + /* compute end and second control point */ + SW_FT_Vector_From_Polar( &a3, radius, + angle_start + i * angle_diff / arcs ); + a2.x = SW_FT_MulFix( a3.y, coef ); + a2.y = SW_FT_MulFix( -a3.x, coef ); + + a3.x += center->x; + a3.y += center->y; + a2.x += a3.x; + a2.y += a3.y; + + /* add cubic arc */ + error = ft_stroke_border_cubicto( border, &a1, &a2, &a3 ); + if ( error ) + break; + + /* a0 = a3; */ + a1.x = a3.x - a2.x + a3.x; + a1.y = a3.y - a2.y + a3.y; + } + + return error; +} + +static SW_FT_Error ft_stroke_border_moveto(SW_FT_StrokeBorder border, + SW_FT_Vector* to) +{ + /* close current open path if any ? */ + if (border->start >= 0) ft_stroke_border_close(border, FALSE); + + border->start = border->num_points; + border->movable = FALSE; + + return ft_stroke_border_lineto(border, to, FALSE); +} + +static void ft_stroke_border_init(SW_FT_StrokeBorder border) +{ + border->points = NULL; + border->tags = NULL; + + border->num_points = 0; + border->max_points = 0; + border->start = -1; + border->valid = FALSE; +} + +static void ft_stroke_border_reset(SW_FT_StrokeBorder border) +{ + border->num_points = 0; + border->start = -1; + border->valid = FALSE; +} + +static void ft_stroke_border_done(SW_FT_StrokeBorder border) +{ + free(border->points); + free(border->tags); + + border->num_points = 0; + border->max_points = 0; + border->start = -1; + border->valid = FALSE; +} + +static SW_FT_Error ft_stroke_border_get_counts(SW_FT_StrokeBorder border, + SW_FT_UInt* anum_points, + SW_FT_UInt* anum_contours) +{ + SW_FT_Error error = 0; + SW_FT_UInt num_points = 0; + SW_FT_UInt num_contours = 0; + + SW_FT_UInt count = border->num_points; + SW_FT_Vector* point = border->points; + SW_FT_Byte* tags = border->tags; + SW_FT_Int in_contour = 0; + + for (; count > 0; count--, num_points++, point++, tags++) { + if (tags[0] & SW_FT_STROKE_TAG_BEGIN) { + if (in_contour != 0) goto Fail; + + in_contour = 1; + } else if (in_contour == 0) + goto Fail; + + if (tags[0] & SW_FT_STROKE_TAG_END) { + in_contour = 0; + num_contours++; + } + } + + if (in_contour != 0) goto Fail; + + border->valid = TRUE; + +Exit: + *anum_points = num_points; + *anum_contours = num_contours; + return error; + +Fail: + num_points = 0; + num_contours = 0; + goto Exit; +} + +static void ft_stroke_border_export(SW_FT_StrokeBorder border, + SW_FT_Outline* outline) +{ + /* copy point locations */ + memcpy(outline->points + outline->n_points, border->points, + border->num_points * sizeof(SW_FT_Vector)); + + /* copy tags */ + { + SW_FT_UInt count = border->num_points; + SW_FT_Byte* read = border->tags; + SW_FT_Byte* write = (SW_FT_Byte*)outline->tags + outline->n_points; + + for (; count > 0; count--, read++, write++) { + if (*read & SW_FT_STROKE_TAG_ON) + *write = SW_FT_CURVE_TAG_ON; + else if (*read & SW_FT_STROKE_TAG_CUBIC) + *write = SW_FT_CURVE_TAG_CUBIC; + else + *write = SW_FT_CURVE_TAG_CONIC; + } + } + + /* copy contours */ + { + SW_FT_UInt count = border->num_points; + SW_FT_Byte* tags = border->tags; + SW_FT_Short* write = outline->contours + outline->n_contours; + SW_FT_Short idx = (SW_FT_Short)outline->n_points; + + for (; count > 0; count--, tags++, idx++) { + if (*tags & SW_FT_STROKE_TAG_END) { + *write++ = idx; + outline->n_contours++; + } + } + } + + outline->n_points = (short)(outline->n_points + border->num_points); + + assert(SW_FT_Outline_Check(outline) == 0); +} + +/*************************************************************************/ +/*************************************************************************/ +/***** *****/ +/***** STROKER *****/ +/***** *****/ +/*************************************************************************/ +/*************************************************************************/ + +#define SW_FT_SIDE_TO_ROTATE(s) (SW_FT_ANGLE_PI2 - (s)*SW_FT_ANGLE_PI) + +typedef struct SW_FT_StrokerRec_ { + SW_FT_Angle angle_in; /* direction into curr join */ + SW_FT_Angle angle_out; /* direction out of join */ + SW_FT_Vector center; /* current position */ + SW_FT_Fixed line_length; /* length of last lineto */ + SW_FT_Bool first_point; /* is this the start? */ + SW_FT_Bool subpath_open; /* is the subpath open? */ + SW_FT_Angle subpath_angle; /* subpath start direction */ + SW_FT_Vector subpath_start; /* subpath start position */ + SW_FT_Fixed subpath_line_length; /* subpath start lineto len */ + SW_FT_Bool handle_wide_strokes; /* use wide strokes logic? */ + + SW_FT_Stroker_LineCap line_cap; + SW_FT_Stroker_LineJoin line_join; + SW_FT_Stroker_LineJoin line_join_saved; + SW_FT_Fixed miter_limit; + SW_FT_Fixed radius; + + SW_FT_StrokeBorderRec borders[2]; +} SW_FT_StrokerRec; + +/* documentation is in ftstroke.h */ + +SW_FT_Error SW_FT_Stroker_New(SW_FT_Stroker* astroker) +{ + SW_FT_Error error = 0; /* assigned in SW_FT_NEW */ + SW_FT_Stroker stroker = NULL; + + stroker = (SW_FT_StrokerRec*)calloc(1, sizeof(SW_FT_StrokerRec)); + if (stroker) { + ft_stroke_border_init(&stroker->borders[0]); + ft_stroke_border_init(&stroker->borders[1]); + } + + *astroker = stroker; + + return error; +} + +void SW_FT_Stroker_Rewind(SW_FT_Stroker stroker) +{ + if (stroker) { + ft_stroke_border_reset(&stroker->borders[0]); + ft_stroke_border_reset(&stroker->borders[1]); + } +} + +/* documentation is in ftstroke.h */ + +void SW_FT_Stroker_Set(SW_FT_Stroker stroker, SW_FT_Fixed radius, + SW_FT_Stroker_LineCap line_cap, + SW_FT_Stroker_LineJoin line_join, + SW_FT_Fixed miter_limit) +{ + stroker->radius = radius; + stroker->line_cap = line_cap; + stroker->line_join = line_join; + stroker->miter_limit = miter_limit; + + /* ensure miter limit has sensible value */ + if (stroker->miter_limit < 0x10000) stroker->miter_limit = 0x10000; + + /* save line join style: */ + /* line join style can be temporarily changed when stroking curves */ + stroker->line_join_saved = line_join; + + SW_FT_Stroker_Rewind(stroker); +} + +/* documentation is in ftstroke.h */ + +void SW_FT_Stroker_Done(SW_FT_Stroker stroker) +{ + if (stroker) { + ft_stroke_border_done(&stroker->borders[0]); + ft_stroke_border_done(&stroker->borders[1]); + + free(stroker); + } +} + +/* create a circular arc at a corner or cap */ +static SW_FT_Error ft_stroker_arcto(SW_FT_Stroker stroker, SW_FT_Int side) +{ + SW_FT_Angle total, rotate; + SW_FT_Fixed radius = stroker->radius; + SW_FT_Error error = 0; + SW_FT_StrokeBorder border = stroker->borders + side; + + rotate = SW_FT_SIDE_TO_ROTATE(side); + + total = SW_FT_Angle_Diff(stroker->angle_in, stroker->angle_out); + if (total == SW_FT_ANGLE_PI) total = -rotate * 2; + + error = ft_stroke_border_arcto(border, &stroker->center, radius, + stroker->angle_in + rotate, total); + border->movable = FALSE; + return error; +} + +/* add a cap at the end of an opened path */ +static SW_FT_Error +ft_stroker_cap(SW_FT_Stroker stroker, + SW_FT_Angle angle, + SW_FT_Int side) +{ + SW_FT_Error error = 0; + + if (stroker->line_cap == SW_FT_STROKER_LINECAP_ROUND) + { + /* add a round cap */ + stroker->angle_in = angle; + stroker->angle_out = angle + SW_FT_ANGLE_PI; + + error = ft_stroker_arcto(stroker, side); + } + else + { + /* add a square or butt cap */ + SW_FT_Vector middle, delta; + SW_FT_Fixed radius = stroker->radius; + SW_FT_StrokeBorder border = stroker->borders + side; + + /* compute middle point and first angle point */ + SW_FT_Vector_From_Polar( &middle, radius, angle ); + delta.x = side ? middle.y : -middle.y; + delta.y = side ? -middle.x : middle.x; + + if ( stroker->line_cap == SW_FT_STROKER_LINECAP_SQUARE ) + { + middle.x += stroker->center.x; + middle.y += stroker->center.y; + } + else /* SW_FT_STROKER_LINECAP_BUTT */ + { + middle.x = stroker->center.x; + middle.y = stroker->center.y; + } + + delta.x += middle.x; + delta.y += middle.y; + + error = ft_stroke_border_lineto( border, &delta, FALSE ); + if ( error ) + goto Exit; + + /* compute second angle point */ + delta.x = middle.x - delta.x + middle.x; + delta.y = middle.y - delta.y + middle.y; + + error = ft_stroke_border_lineto( border, &delta, FALSE ); + } + +Exit: + return error; +} + +/* process an inside corner, i.e. compute intersection */ +static SW_FT_Error ft_stroker_inside(SW_FT_Stroker stroker, SW_FT_Int side, + SW_FT_Fixed line_length) +{ + SW_FT_StrokeBorder border = stroker->borders + side; + SW_FT_Angle phi, theta, rotate; + SW_FT_Fixed length; + SW_FT_Vector sigma, delta; + SW_FT_Error error = 0; + SW_FT_Bool intersect; /* use intersection of lines? */ + + rotate = SW_FT_SIDE_TO_ROTATE(side); + + theta = SW_FT_Angle_Diff(stroker->angle_in, stroker->angle_out) / 2; + + /* Only intersect borders if between two lineto's and both */ + /* lines are long enough (line_length is zero for curves). */ + if (!border->movable || line_length == 0 || + theta > 0x59C000 || theta < -0x59C000 ) + intersect = FALSE; + else { + /* compute minimum required length of lines */ + SW_FT_Fixed min_length; + + + SW_FT_Vector_Unit( &sigma, theta ); + min_length = + ft_pos_abs( SW_FT_MulDiv( stroker->radius, sigma.y, sigma.x ) ); + + intersect = SW_FT_BOOL( min_length && + stroker->line_length >= min_length && + line_length >= min_length ); + } + + if (!intersect) { + SW_FT_Vector_From_Polar(&delta, stroker->radius, + stroker->angle_out + rotate); + delta.x += stroker->center.x; + delta.y += stroker->center.y; + + border->movable = FALSE; + } else { + /* compute median angle */ + phi = stroker->angle_in + theta + rotate; + + length = SW_FT_DivFix( stroker->radius, sigma.x ); + + SW_FT_Vector_From_Polar( &delta, length, phi ); + delta.x += stroker->center.x; + delta.y += stroker->center.y; + } + + error = ft_stroke_border_lineto(border, &delta, FALSE); + + return error; +} + + /* process an outside corner, i.e. compute bevel/miter/round */ +static SW_FT_Error +ft_stroker_outside( SW_FT_Stroker stroker, + SW_FT_Int side, + SW_FT_Fixed line_length ) +{ + SW_FT_StrokeBorder border = stroker->borders + side; + SW_FT_Error error; + SW_FT_Angle rotate; + + + if ( stroker->line_join == SW_FT_STROKER_LINEJOIN_ROUND ) + error = ft_stroker_arcto( stroker, side ); + else + { + /* this is a mitered (pointed) or beveled (truncated) corner */ + SW_FT_Fixed radius = stroker->radius; + SW_FT_Vector sigma; + SW_FT_Angle theta = 0, phi = 0; + SW_FT_Bool bevel, fixed_bevel; + + + rotate = SW_FT_SIDE_TO_ROTATE( side ); + + bevel = + SW_FT_BOOL( stroker->line_join == SW_FT_STROKER_LINEJOIN_BEVEL ); + + fixed_bevel = + SW_FT_BOOL( stroker->line_join != SW_FT_STROKER_LINEJOIN_MITER_VARIABLE ); + + /* check miter limit first */ + if ( !bevel ) + { + theta = SW_FT_Angle_Diff( stroker->angle_in, stroker->angle_out ) / 2; + + if ( theta == SW_FT_ANGLE_PI2 ) + theta = -rotate; + + phi = stroker->angle_in + theta + rotate; + + SW_FT_Vector_From_Polar( &sigma, stroker->miter_limit, theta ); + + /* is miter limit exceeded? */ + if ( sigma.x < 0x10000L ) + { + /* don't create variable bevels for very small deviations; */ + /* FT_Sin(x) = 0 for x <= 57 */ + if ( fixed_bevel || ft_pos_abs( theta ) > 57 ) + bevel = TRUE; + } + } + + if ( bevel ) /* this is a bevel (broken angle) */ + { + if ( fixed_bevel ) + { + /* the outer corners are simply joined together */ + SW_FT_Vector delta; + + + /* add bevel */ + SW_FT_Vector_From_Polar( &delta, + radius, + stroker->angle_out + rotate ); + delta.x += stroker->center.x; + delta.y += stroker->center.y; + + border->movable = FALSE; + error = ft_stroke_border_lineto( border, &delta, FALSE ); + } + else /* variable bevel or clipped miter */ + { + /* the miter is truncated */ + SW_FT_Vector middle, delta; + SW_FT_Fixed coef; + + + /* compute middle point and first angle point */ + SW_FT_Vector_From_Polar( &middle, + SW_FT_MulFix( radius, stroker->miter_limit ), + phi ); + + coef = SW_FT_DivFix( 0x10000L - sigma.x, sigma.y ); + delta.x = SW_FT_MulFix( middle.y, coef ); + delta.y = SW_FT_MulFix( -middle.x, coef ); + + middle.x += stroker->center.x; + middle.y += stroker->center.y; + delta.x += middle.x; + delta.y += middle.y; + + error = ft_stroke_border_lineto( border, &delta, FALSE ); + if ( error ) + goto Exit; + + /* compute second angle point */ + delta.x = middle.x - delta.x + middle.x; + delta.y = middle.y - delta.y + middle.y; + + error = ft_stroke_border_lineto( border, &delta, FALSE ); + if ( error ) + goto Exit; + + /* finally, add an end point; only needed if not lineto */ + /* (line_length is zero for curves) */ + if ( line_length == 0 ) + { + SW_FT_Vector_From_Polar( &delta, + radius, + stroker->angle_out + rotate ); + + delta.x += stroker->center.x; + delta.y += stroker->center.y; + + error = ft_stroke_border_lineto( border, &delta, FALSE ); + } + } + } + else /* this is a miter (intersection) */ + { + SW_FT_Fixed length; + SW_FT_Vector delta; + + + length = SW_FT_MulDiv( stroker->radius, stroker->miter_limit, sigma.x ); + + SW_FT_Vector_From_Polar( &delta, length, phi ); + delta.x += stroker->center.x; + delta.y += stroker->center.y; + + error = ft_stroke_border_lineto( border, &delta, FALSE ); + if ( error ) + goto Exit; + + /* now add an end point; only needed if not lineto */ + /* (line_length is zero for curves) */ + if ( line_length == 0 ) + { + SW_FT_Vector_From_Polar( &delta, + stroker->radius, + stroker->angle_out + rotate ); + delta.x += stroker->center.x; + delta.y += stroker->center.y; + + error = ft_stroke_border_lineto( border, &delta, FALSE ); + } + } + } + + Exit: + return error; +} + +static SW_FT_Error ft_stroker_process_corner(SW_FT_Stroker stroker, + SW_FT_Fixed line_length) +{ + SW_FT_Error error = 0; + SW_FT_Angle turn; + SW_FT_Int inside_side; + + turn = SW_FT_Angle_Diff(stroker->angle_in, stroker->angle_out); + + /* no specific corner processing is required if the turn is 0 */ + if (turn == 0) goto Exit; + + /* when we turn to the right, the inside side is 0 */ + inside_side = 0; + + /* otherwise, the inside side is 1 */ + if (turn < 0) inside_side = 1; + + /* process the inside side */ + error = ft_stroker_inside(stroker, inside_side, line_length); + if (error) goto Exit; + + /* process the outside side */ + error = ft_stroker_outside(stroker, 1 - inside_side, line_length); + +Exit: + return error; +} + +/* add two points to the left and right borders corresponding to the */ +/* start of the subpath */ +static SW_FT_Error ft_stroker_subpath_start(SW_FT_Stroker stroker, + SW_FT_Angle start_angle, + SW_FT_Fixed line_length) +{ + SW_FT_Vector delta; + SW_FT_Vector point; + SW_FT_Error error; + SW_FT_StrokeBorder border; + + SW_FT_Vector_From_Polar(&delta, stroker->radius, + start_angle + SW_FT_ANGLE_PI2); + + point.x = stroker->center.x + delta.x; + point.y = stroker->center.y + delta.y; + + border = stroker->borders; + error = ft_stroke_border_moveto(border, &point); + if (error) goto Exit; + + point.x = stroker->center.x - delta.x; + point.y = stroker->center.y - delta.y; + + border++; + error = ft_stroke_border_moveto(border, &point); + + /* save angle, position, and line length for last join */ + /* (line_length is zero for curves) */ + stroker->subpath_angle = start_angle; + stroker->first_point = FALSE; + stroker->subpath_line_length = line_length; + +Exit: + return error; +} + +/* documentation is in ftstroke.h */ + +SW_FT_Error SW_FT_Stroker_LineTo(SW_FT_Stroker stroker, SW_FT_Vector* to) +{ + SW_FT_Error error = 0; + SW_FT_StrokeBorder border; + SW_FT_Vector delta; + SW_FT_Angle angle; + SW_FT_Int side; + SW_FT_Fixed line_length; + + delta.x = to->x - stroker->center.x; + delta.y = to->y - stroker->center.y; + + /* a zero-length lineto is a no-op; avoid creating a spurious corner */ + if (delta.x == 0 && delta.y == 0) goto Exit; + + /* compute length of line */ + line_length = SW_FT_Vector_Length(&delta); + + angle = SW_FT_Atan2(delta.x, delta.y); + SW_FT_Vector_From_Polar(&delta, stroker->radius, angle + SW_FT_ANGLE_PI2); + + /* process corner if necessary */ + if (stroker->first_point) { + /* This is the first segment of a subpath. We need to */ + /* add a point to each border at their respective starting */ + /* point locations. */ + error = ft_stroker_subpath_start(stroker, angle, line_length); + if (error) goto Exit; + } else { + /* process the current corner */ + stroker->angle_out = angle; + error = ft_stroker_process_corner(stroker, line_length); + if (error) goto Exit; + } + + /* now add a line segment to both the `inside' and `outside' paths */ + for (border = stroker->borders, side = 1; side >= 0; side--, border++) { + SW_FT_Vector point; + + point.x = to->x + delta.x; + point.y = to->y + delta.y; + + /* the ends of lineto borders are movable */ + error = ft_stroke_border_lineto(border, &point, TRUE); + if (error) goto Exit; + + delta.x = -delta.x; + delta.y = -delta.y; + } + + stroker->angle_in = angle; + stroker->center = *to; + stroker->line_length = line_length; + +Exit: + return error; +} + +/* documentation is in ftstroke.h */ + +SW_FT_Error SW_FT_Stroker_ConicTo(SW_FT_Stroker stroker, SW_FT_Vector* control, + SW_FT_Vector* to) +{ + SW_FT_Error error = 0; + SW_FT_Vector bez_stack[34]; + SW_FT_Vector* arc; + SW_FT_Vector* limit = bez_stack + 30; + SW_FT_Bool first_arc = TRUE; + + /* if all control points are coincident, this is a no-op; */ + /* avoid creating a spurious corner */ + if (SW_FT_IS_SMALL(stroker->center.x - control->x) && + SW_FT_IS_SMALL(stroker->center.y - control->y) && + SW_FT_IS_SMALL(control->x - to->x) && + SW_FT_IS_SMALL(control->y - to->y)) { + stroker->center = *to; + goto Exit; + } + + arc = bez_stack; + arc[0] = *to; + arc[1] = *control; + arc[2] = stroker->center; + + while (arc >= bez_stack) { + SW_FT_Angle angle_in, angle_out; + + /* initialize with current direction */ + angle_in = angle_out = stroker->angle_in; + + if (arc < limit && + !ft_conic_is_small_enough(arc, &angle_in, &angle_out)) { + if (stroker->first_point) stroker->angle_in = angle_in; + + ft_conic_split(arc); + arc += 2; + continue; + } + + if (first_arc) { + first_arc = FALSE; + + /* process corner if necessary */ + if (stroker->first_point) + error = ft_stroker_subpath_start(stroker, angle_in, 0); + else { + stroker->angle_out = angle_in; + error = ft_stroker_process_corner(stroker, 0); + } + } else if (ft_pos_abs(SW_FT_Angle_Diff(stroker->angle_in, angle_in)) > + SW_FT_SMALL_CONIC_THRESHOLD / 4) { + /* if the deviation from one arc to the next is too great, */ + /* add a round corner */ + stroker->center = arc[2]; + stroker->angle_out = angle_in; + stroker->line_join = SW_FT_STROKER_LINEJOIN_ROUND; + + error = ft_stroker_process_corner(stroker, 0); + + /* reinstate line join style */ + stroker->line_join = stroker->line_join_saved; + } + + if (error) goto Exit; + + /* the arc's angle is small enough; we can add it directly to each */ + /* border */ + { + SW_FT_Vector ctrl, end; + SW_FT_Angle theta, phi, rotate, alpha0 = 0; + SW_FT_Fixed length; + SW_FT_StrokeBorder border; + SW_FT_Int side; + + theta = SW_FT_Angle_Diff(angle_in, angle_out) / 2; + phi = angle_in + theta; + length = SW_FT_DivFix(stroker->radius, SW_FT_Cos(theta)); + + /* compute direction of original arc */ + if (stroker->handle_wide_strokes) + alpha0 = SW_FT_Atan2(arc[0].x - arc[2].x, arc[0].y - arc[2].y); + + for (border = stroker->borders, side = 0; side <= 1; + side++, border++) { + rotate = SW_FT_SIDE_TO_ROTATE(side); + + /* compute control point */ + SW_FT_Vector_From_Polar(&ctrl, length, phi + rotate); + ctrl.x += arc[1].x; + ctrl.y += arc[1].y; + + /* compute end point */ + SW_FT_Vector_From_Polar(&end, stroker->radius, + angle_out + rotate); + end.x += arc[0].x; + end.y += arc[0].y; + + if (stroker->handle_wide_strokes) { + SW_FT_Vector start; + SW_FT_Angle alpha1; + + /* determine whether the border radius is greater than the + */ + /* radius of curvature of the original arc */ + start = border->points[border->num_points - 1]; + + alpha1 = SW_FT_Atan2(end.x - start.x, end.y - start.y); + + /* is the direction of the border arc opposite to */ + /* that of the original arc? */ + if (ft_pos_abs(SW_FT_Angle_Diff(alpha0, alpha1)) > + SW_FT_ANGLE_PI / 2) { + SW_FT_Angle beta, gamma; + SW_FT_Vector bvec, delta; + SW_FT_Fixed blen, sinA, sinB, alen; + + /* use the sine rule to find the intersection point */ + beta = + SW_FT_Atan2(arc[2].x - start.x, arc[2].y - start.y); + gamma = SW_FT_Atan2(arc[0].x - end.x, arc[0].y - end.y); + + bvec.x = end.x - start.x; + bvec.y = end.y - start.y; + + blen = SW_FT_Vector_Length(&bvec); + + sinA = ft_pos_abs(SW_FT_Sin(alpha1 - gamma)); + sinB = ft_pos_abs(SW_FT_Sin(beta - gamma)); + + alen = SW_FT_MulDiv(blen, sinA, sinB); + + SW_FT_Vector_From_Polar(&delta, alen, beta); + delta.x += start.x; + delta.y += start.y; + + /* circumnavigate the negative sector backwards */ + border->movable = FALSE; + error = ft_stroke_border_lineto(border, &delta, FALSE); + if (error) goto Exit; + error = ft_stroke_border_lineto(border, &end, FALSE); + if (error) goto Exit; + error = ft_stroke_border_conicto(border, &ctrl, &start); + if (error) goto Exit; + /* and then move to the endpoint */ + error = ft_stroke_border_lineto(border, &end, FALSE); + if (error) goto Exit; + + continue; + } + + /* else fall through */ + } + + /* simply add an arc */ + error = ft_stroke_border_conicto(border, &ctrl, &end); + if (error) goto Exit; + } + } + + arc -= 2; + + stroker->angle_in = angle_out; + } + + stroker->center = *to; + +Exit: + return error; +} + +/* documentation is in ftstroke.h */ + +SW_FT_Error SW_FT_Stroker_CubicTo(SW_FT_Stroker stroker, SW_FT_Vector* control1, + SW_FT_Vector* control2, SW_FT_Vector* to) +{ + SW_FT_Error error = 0; + SW_FT_Vector bez_stack[37]; + SW_FT_Vector* arc; + SW_FT_Vector* limit = bez_stack + 32; + SW_FT_Bool first_arc = TRUE; + + /* if all control points are coincident, this is a no-op; */ + /* avoid creating a spurious corner */ + if (SW_FT_IS_SMALL(stroker->center.x - control1->x) && + SW_FT_IS_SMALL(stroker->center.y - control1->y) && + SW_FT_IS_SMALL(control1->x - control2->x) && + SW_FT_IS_SMALL(control1->y - control2->y) && + SW_FT_IS_SMALL(control2->x - to->x) && + SW_FT_IS_SMALL(control2->y - to->y)) { + stroker->center = *to; + goto Exit; + } + + arc = bez_stack; + arc[0] = *to; + arc[1] = *control2; + arc[2] = *control1; + arc[3] = stroker->center; + + while (arc >= bez_stack) { + SW_FT_Angle angle_in, angle_mid, angle_out; + + /* initialize with current direction */ + angle_in = angle_out = angle_mid = stroker->angle_in; + + if (arc < limit && + !ft_cubic_is_small_enough(arc, &angle_in, &angle_mid, &angle_out)) { + if (stroker->first_point) stroker->angle_in = angle_in; + + ft_cubic_split(arc); + arc += 3; + continue; + } + + if (first_arc) { + first_arc = FALSE; + + /* process corner if necessary */ + if (stroker->first_point) + error = ft_stroker_subpath_start(stroker, angle_in, 0); + else { + stroker->angle_out = angle_in; + error = ft_stroker_process_corner(stroker, 0); + } + } else if (ft_pos_abs(SW_FT_Angle_Diff(stroker->angle_in, angle_in)) > + SW_FT_SMALL_CUBIC_THRESHOLD / 4) { + /* if the deviation from one arc to the next is too great, */ + /* add a round corner */ + stroker->center = arc[3]; + stroker->angle_out = angle_in; + stroker->line_join = SW_FT_STROKER_LINEJOIN_ROUND; + + error = ft_stroker_process_corner(stroker, 0); + + /* reinstate line join style */ + stroker->line_join = stroker->line_join_saved; + } + + if (error) goto Exit; + + /* the arc's angle is small enough; we can add it directly to each */ + /* border */ + { + SW_FT_Vector ctrl1, ctrl2, end; + SW_FT_Angle theta1, phi1, theta2, phi2, rotate, alpha0 = 0; + SW_FT_Fixed length1, length2; + SW_FT_StrokeBorder border; + SW_FT_Int side; + + theta1 = SW_FT_Angle_Diff(angle_in, angle_mid) / 2; + theta2 = SW_FT_Angle_Diff(angle_mid, angle_out) / 2; + phi1 = ft_angle_mean(angle_in, angle_mid); + phi2 = ft_angle_mean(angle_mid, angle_out); + length1 = SW_FT_DivFix(stroker->radius, SW_FT_Cos(theta1)); + length2 = SW_FT_DivFix(stroker->radius, SW_FT_Cos(theta2)); + + /* compute direction of original arc */ + if (stroker->handle_wide_strokes) + alpha0 = SW_FT_Atan2(arc[0].x - arc[3].x, arc[0].y - arc[3].y); + + for (border = stroker->borders, side = 0; side <= 1; + side++, border++) { + rotate = SW_FT_SIDE_TO_ROTATE(side); + + /* compute control points */ + SW_FT_Vector_From_Polar(&ctrl1, length1, phi1 + rotate); + ctrl1.x += arc[2].x; + ctrl1.y += arc[2].y; + + SW_FT_Vector_From_Polar(&ctrl2, length2, phi2 + rotate); + ctrl2.x += arc[1].x; + ctrl2.y += arc[1].y; + + /* compute end point */ + SW_FT_Vector_From_Polar(&end, stroker->radius, + angle_out + rotate); + end.x += arc[0].x; + end.y += arc[0].y; + + if (stroker->handle_wide_strokes) { + SW_FT_Vector start; + SW_FT_Angle alpha1; + + /* determine whether the border radius is greater than the + */ + /* radius of curvature of the original arc */ + start = border->points[border->num_points - 1]; + + alpha1 = SW_FT_Atan2(end.x - start.x, end.y - start.y); + + /* is the direction of the border arc opposite to */ + /* that of the original arc? */ + if (ft_pos_abs(SW_FT_Angle_Diff(alpha0, alpha1)) > + SW_FT_ANGLE_PI / 2) { + SW_FT_Angle beta, gamma; + SW_FT_Vector bvec, delta; + SW_FT_Fixed blen, sinA, sinB, alen; + + /* use the sine rule to find the intersection point */ + beta = + SW_FT_Atan2(arc[3].x - start.x, arc[3].y - start.y); + gamma = SW_FT_Atan2(arc[0].x - end.x, arc[0].y - end.y); + + bvec.x = end.x - start.x; + bvec.y = end.y - start.y; + + blen = SW_FT_Vector_Length(&bvec); + + sinA = ft_pos_abs(SW_FT_Sin(alpha1 - gamma)); + sinB = ft_pos_abs(SW_FT_Sin(beta - gamma)); + + alen = SW_FT_MulDiv(blen, sinA, sinB); + + SW_FT_Vector_From_Polar(&delta, alen, beta); + delta.x += start.x; + delta.y += start.y; + + /* circumnavigate the negative sector backwards */ + border->movable = FALSE; + error = ft_stroke_border_lineto(border, &delta, FALSE); + if (error) goto Exit; + error = ft_stroke_border_lineto(border, &end, FALSE); + if (error) goto Exit; + error = ft_stroke_border_cubicto(border, &ctrl2, &ctrl1, + &start); + if (error) goto Exit; + /* and then move to the endpoint */ + error = ft_stroke_border_lineto(border, &end, FALSE); + if (error) goto Exit; + + continue; + } + + /* else fall through */ + } + + /* simply add an arc */ + error = ft_stroke_border_cubicto(border, &ctrl1, &ctrl2, &end); + if (error) goto Exit; + } + } + + arc -= 3; + + stroker->angle_in = angle_out; + } + + stroker->center = *to; + +Exit: + return error; +} + +/* documentation is in ftstroke.h */ + +SW_FT_Error SW_FT_Stroker_BeginSubPath(SW_FT_Stroker stroker, SW_FT_Vector* to, + SW_FT_Bool open) +{ + /* We cannot process the first point, because there is not enough */ + /* information regarding its corner/cap. The latter will be processed */ + /* in the `SW_FT_Stroker_EndSubPath' routine. */ + /* */ + stroker->first_point = TRUE; + stroker->center = *to; + stroker->subpath_open = open; + + /* Determine if we need to check whether the border radius is greater */ + /* than the radius of curvature of a curve, to handle this case */ + /* specially. This is only required if bevel joins or butt caps may */ + /* be created, because round & miter joins and round & square caps */ + /* cover the negative sector created with wide strokes. */ + stroker->handle_wide_strokes = + SW_FT_BOOL(stroker->line_join != SW_FT_STROKER_LINEJOIN_ROUND || + (stroker->subpath_open && + stroker->line_cap == SW_FT_STROKER_LINECAP_BUTT)); + + /* record the subpath start point for each border */ + stroker->subpath_start = *to; + + stroker->angle_in = 0; + + return 0; +} + +static SW_FT_Error ft_stroker_add_reverse_left(SW_FT_Stroker stroker, + SW_FT_Bool open) +{ + SW_FT_StrokeBorder right = stroker->borders + 0; + SW_FT_StrokeBorder left = stroker->borders + 1; + SW_FT_Int new_points; + SW_FT_Error error = 0; + + assert(left->start >= 0); + + new_points = left->num_points - left->start; + if (new_points > 0) { + error = ft_stroke_border_grow(right, (SW_FT_UInt)new_points); + if (error) goto Exit; + + { + SW_FT_Vector* dst_point = right->points + right->num_points; + SW_FT_Byte* dst_tag = right->tags + right->num_points; + SW_FT_Vector* src_point = left->points + left->num_points - 1; + SW_FT_Byte* src_tag = left->tags + left->num_points - 1; + + while (src_point >= left->points + left->start) { + *dst_point = *src_point; + *dst_tag = *src_tag; + + if (open) + dst_tag[0] &= ~SW_FT_STROKE_TAG_BEGIN_END; + else { + SW_FT_Byte ttag = + (SW_FT_Byte)(dst_tag[0] & SW_FT_STROKE_TAG_BEGIN_END); + + /* switch begin/end tags if necessary */ + if (ttag == SW_FT_STROKE_TAG_BEGIN || + ttag == SW_FT_STROKE_TAG_END) + dst_tag[0] ^= SW_FT_STROKE_TAG_BEGIN_END; + } + + src_point--; + src_tag--; + dst_point++; + dst_tag++; + } + } + + left->num_points = left->start; + right->num_points += new_points; + + right->movable = FALSE; + left->movable = FALSE; + } + +Exit: + return error; +} + +/* documentation is in ftstroke.h */ + +/* there's a lot of magic in this function! */ +SW_FT_Error SW_FT_Stroker_EndSubPath(SW_FT_Stroker stroker) +{ + SW_FT_Error error = 0; + + if (stroker->subpath_open) { + SW_FT_StrokeBorder right = stroker->borders; + + /* All right, this is an opened path, we need to add a cap between */ + /* right & left, add the reverse of left, then add a final cap */ + /* between left & right. */ + error = ft_stroker_cap(stroker, stroker->angle_in, 0); + if (error) goto Exit; + + /* add reversed points from `left' to `right' */ + error = ft_stroker_add_reverse_left(stroker, TRUE); + if (error) goto Exit; + + /* now add the final cap */ + stroker->center = stroker->subpath_start; + error = + ft_stroker_cap(stroker, stroker->subpath_angle + SW_FT_ANGLE_PI, 0); + if (error) goto Exit; + + /* Now end the right subpath accordingly. The left one is */ + /* rewind and doesn't need further processing. */ + ft_stroke_border_close(right, FALSE); + } else { + SW_FT_Angle turn; + SW_FT_Int inside_side; + + /* close the path if needed */ + if (stroker->center.x != stroker->subpath_start.x || + stroker->center.y != stroker->subpath_start.y) { + error = SW_FT_Stroker_LineTo(stroker, &stroker->subpath_start); + if (error) goto Exit; + } + + /* process the corner */ + stroker->angle_out = stroker->subpath_angle; + turn = SW_FT_Angle_Diff(stroker->angle_in, stroker->angle_out); + + /* no specific corner processing is required if the turn is 0 */ + if (turn != 0) { + /* when we turn to the right, the inside side is 0 */ + inside_side = 0; + + /* otherwise, the inside side is 1 */ + if (turn < 0) inside_side = 1; + + error = ft_stroker_inside(stroker, inside_side, + stroker->subpath_line_length); + if (error) goto Exit; + + /* process the outside side */ + error = ft_stroker_outside(stroker, 1 - inside_side, + stroker->subpath_line_length); + if (error) goto Exit; + } + + /* then end our two subpaths */ + ft_stroke_border_close(stroker->borders + 0, FALSE); + ft_stroke_border_close(stroker->borders + 1, TRUE); + } + +Exit: + return error; +} + +/* documentation is in ftstroke.h */ + +SW_FT_Error SW_FT_Stroker_GetBorderCounts(SW_FT_Stroker stroker, + SW_FT_StrokerBorder border, + SW_FT_UInt* anum_points, + SW_FT_UInt* anum_contours) +{ + SW_FT_UInt num_points = 0, num_contours = 0; + SW_FT_Error error; + + if (!stroker || border > 1) { + error = -1; // SW_FT_THROW( Invalid_Argument ); + goto Exit; + } + + error = ft_stroke_border_get_counts(stroker->borders + border, &num_points, + &num_contours); +Exit: + if (anum_points) *anum_points = num_points; + + if (anum_contours) *anum_contours = num_contours; + + return error; +} + +/* documentation is in ftstroke.h */ + +SW_FT_Error SW_FT_Stroker_GetCounts(SW_FT_Stroker stroker, + SW_FT_UInt* anum_points, + SW_FT_UInt* anum_contours) +{ + SW_FT_UInt count1, count2, num_points = 0; + SW_FT_UInt count3, count4, num_contours = 0; + SW_FT_Error error; + + error = ft_stroke_border_get_counts(stroker->borders + 0, &count1, &count2); + if (error) goto Exit; + + error = ft_stroke_border_get_counts(stroker->borders + 1, &count3, &count4); + if (error) goto Exit; + + num_points = count1 + count3; + num_contours = count2 + count4; + +Exit: + *anum_points = num_points; + *anum_contours = num_contours; + return error; +} + +/* documentation is in ftstroke.h */ + +void SW_FT_Stroker_ExportBorder(SW_FT_Stroker stroker, + SW_FT_StrokerBorder border, + SW_FT_Outline* outline) +{ + if (border == SW_FT_STROKER_BORDER_LEFT || + border == SW_FT_STROKER_BORDER_RIGHT) { + SW_FT_StrokeBorder sborder = &stroker->borders[border]; + + if (sborder->valid) ft_stroke_border_export(sborder, outline); + } +} + +/* documentation is in ftstroke.h */ + +void SW_FT_Stroker_Export(SW_FT_Stroker stroker, SW_FT_Outline* outline) +{ + SW_FT_Stroker_ExportBorder(stroker, SW_FT_STROKER_BORDER_LEFT, outline); + SW_FT_Stroker_ExportBorder(stroker, SW_FT_STROKER_BORDER_RIGHT, outline); +} + +/* documentation is in ftstroke.h */ + +/* + * The following is very similar to SW_FT_Outline_Decompose, except + * that we do support opened paths, and do not scale the outline. + */ +SW_FT_Error SW_FT_Stroker_ParseOutline(SW_FT_Stroker stroker, + const SW_FT_Outline* outline) +{ + SW_FT_Vector v_last; + SW_FT_Vector v_control; + SW_FT_Vector v_start; + + SW_FT_Vector* point; + SW_FT_Vector* limit; + char* tags; + + SW_FT_Error error; + + SW_FT_Int n; /* index of contour in outline */ + SW_FT_UInt first; /* index of first point in contour */ + SW_FT_Int tag; /* current point's state */ + + if (!outline || !stroker) return -1; // SW_FT_THROW( Invalid_Argument ); + + SW_FT_Stroker_Rewind(stroker); + + first = 0; + + for (n = 0; n < outline->n_contours; n++) { + SW_FT_UInt last; /* index of last point in contour */ + + last = outline->contours[n]; + limit = outline->points + last; + + /* skip empty points; we don't stroke these */ + if (last <= first) { + first = last + 1; + continue; + } + + v_start = outline->points[first]; + v_last = outline->points[last]; + + v_control = v_start; + + point = outline->points + first; + tags = outline->tags + first; + tag = SW_FT_CURVE_TAG(tags[0]); + + /* A contour cannot start with a cubic control point! */ + if (tag == SW_FT_CURVE_TAG_CUBIC) goto Invalid_Outline; + + /* check first point to determine origin */ + if (tag == SW_FT_CURVE_TAG_CONIC) { + /* First point is conic control. Yes, this happens. */ + if (SW_FT_CURVE_TAG(outline->tags[last]) == SW_FT_CURVE_TAG_ON) { + /* start at last point if it is on the curve */ + v_start = v_last; + limit--; + } else { + /* if both first and last points are conic, */ + /* start at their middle */ + v_start.x = (v_start.x + v_last.x) / 2; + v_start.y = (v_start.y + v_last.y) / 2; + } + point--; + tags--; + } + + error = SW_FT_Stroker_BeginSubPath(stroker, &v_start, outline->contours_flag[n]); + if (error) goto Exit; + + while (point < limit) { + point++; + tags++; + + tag = SW_FT_CURVE_TAG(tags[0]); + switch (tag) { + case SW_FT_CURVE_TAG_ON: /* emit a single line_to */ + { + SW_FT_Vector vec; + + vec.x = point->x; + vec.y = point->y; + + error = SW_FT_Stroker_LineTo(stroker, &vec); + if (error) goto Exit; + continue; + } + + case SW_FT_CURVE_TAG_CONIC: /* consume conic arcs */ + v_control.x = point->x; + v_control.y = point->y; + + Do_Conic: + if (point < limit) { + SW_FT_Vector vec; + SW_FT_Vector v_middle; + + point++; + tags++; + tag = SW_FT_CURVE_TAG(tags[0]); + + vec = point[0]; + + if (tag == SW_FT_CURVE_TAG_ON) { + error = + SW_FT_Stroker_ConicTo(stroker, &v_control, &vec); + if (error) goto Exit; + continue; + } + + if (tag != SW_FT_CURVE_TAG_CONIC) goto Invalid_Outline; + + v_middle.x = (v_control.x + vec.x) / 2; + v_middle.y = (v_control.y + vec.y) / 2; + + error = + SW_FT_Stroker_ConicTo(stroker, &v_control, &v_middle); + if (error) goto Exit; + + v_control = vec; + goto Do_Conic; + } + + error = SW_FT_Stroker_ConicTo(stroker, &v_control, &v_start); + goto Close; + + default: /* SW_FT_CURVE_TAG_CUBIC */ + { + SW_FT_Vector vec1, vec2; + + if (point + 1 > limit || + SW_FT_CURVE_TAG(tags[1]) != SW_FT_CURVE_TAG_CUBIC) + goto Invalid_Outline; + + point += 2; + tags += 2; + + vec1 = point[-2]; + vec2 = point[-1]; + + if (point <= limit) { + SW_FT_Vector vec; + + vec = point[0]; + + error = SW_FT_Stroker_CubicTo(stroker, &vec1, &vec2, &vec); + if (error) goto Exit; + continue; + } + + error = SW_FT_Stroker_CubicTo(stroker, &vec1, &vec2, &v_start); + goto Close; + } + } + } + + Close: + if (error) goto Exit; + + /* don't try to end the path if no segments have been generated */ + if (!stroker->first_point) { + error = SW_FT_Stroker_EndSubPath(stroker); + if (error) goto Exit; + } + + first = last + 1; + } + + return 0; + +Exit: + return error; + +Invalid_Outline: + return -2; // SW_FT_THROW( Invalid_Outline ); +} + +/* END */ diff --git a/external/rlottie/src/vector/freetype/v_ft_stroker.h b/external/rlottie/src/vector/freetype/v_ft_stroker.h new file mode 100644 index 000000000..1514cf3d0 --- /dev/null +++ b/external/rlottie/src/vector/freetype/v_ft_stroker.h @@ -0,0 +1,319 @@ +#ifndef V_FT_STROKER_H +#define V_FT_STROKER_H +/***************************************************************************/ +/* */ +/* ftstroke.h */ +/* */ +/* FreeType path stroker (specification). */ +/* */ +/* Copyright 2002-2006, 2008, 2009, 2011-2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + +#include "v_ft_raster.h" + + /************************************************************** + * + * @type: + * SW_FT_Stroker + * + * @description: + * Opaque handler to a path stroker object. + */ + typedef struct SW_FT_StrokerRec_* SW_FT_Stroker; + + + /************************************************************** + * + * @enum: + * SW_FT_Stroker_LineJoin + * + * @description: + * These values determine how two joining lines are rendered + * in a stroker. + * + * @values: + * SW_FT_STROKER_LINEJOIN_ROUND :: + * Used to render rounded line joins. Circular arcs are used + * to join two lines smoothly. + * + * SW_FT_STROKER_LINEJOIN_BEVEL :: + * Used to render beveled line joins. The outer corner of + * the joined lines is filled by enclosing the triangular + * region of the corner with a straight line between the + * outer corners of each stroke. + * + * SW_FT_STROKER_LINEJOIN_MITER_FIXED :: + * Used to render mitered line joins, with fixed bevels if the + * miter limit is exceeded. The outer edges of the strokes + * for the two segments are extended until they meet at an + * angle. If the segments meet at too sharp an angle (such + * that the miter would extend from the intersection of the + * segments a distance greater than the product of the miter + * limit value and the border radius), then a bevel join (see + * above) is used instead. This prevents long spikes being + * created. SW_FT_STROKER_LINEJOIN_MITER_FIXED generates a miter + * line join as used in PostScript and PDF. + * + * SW_FT_STROKER_LINEJOIN_MITER_VARIABLE :: + * SW_FT_STROKER_LINEJOIN_MITER :: + * Used to render mitered line joins, with variable bevels if + * the miter limit is exceeded. The intersection of the + * strokes is clipped at a line perpendicular to the bisector + * of the angle between the strokes, at the distance from the + * intersection of the segments equal to the product of the + * miter limit value and the border radius. This prevents + * long spikes being created. + * SW_FT_STROKER_LINEJOIN_MITER_VARIABLE generates a mitered line + * join as used in XPS. SW_FT_STROKER_LINEJOIN_MITER is an alias + * for SW_FT_STROKER_LINEJOIN_MITER_VARIABLE, retained for + * backwards compatibility. + */ + typedef enum SW_FT_Stroker_LineJoin_ + { + SW_FT_STROKER_LINEJOIN_ROUND = 0, + SW_FT_STROKER_LINEJOIN_BEVEL = 1, + SW_FT_STROKER_LINEJOIN_MITER_VARIABLE = 2, + SW_FT_STROKER_LINEJOIN_MITER = SW_FT_STROKER_LINEJOIN_MITER_VARIABLE, + SW_FT_STROKER_LINEJOIN_MITER_FIXED = 3 + + } SW_FT_Stroker_LineJoin; + + + /************************************************************** + * + * @enum: + * SW_FT_Stroker_LineCap + * + * @description: + * These values determine how the end of opened sub-paths are + * rendered in a stroke. + * + * @values: + * SW_FT_STROKER_LINECAP_BUTT :: + * The end of lines is rendered as a full stop on the last + * point itself. + * + * SW_FT_STROKER_LINECAP_ROUND :: + * The end of lines is rendered as a half-circle around the + * last point. + * + * SW_FT_STROKER_LINECAP_SQUARE :: + * The end of lines is rendered as a square around the + * last point. + */ + typedef enum SW_FT_Stroker_LineCap_ + { + SW_FT_STROKER_LINECAP_BUTT = 0, + SW_FT_STROKER_LINECAP_ROUND, + SW_FT_STROKER_LINECAP_SQUARE + + } SW_FT_Stroker_LineCap; + + + /************************************************************** + * + * @enum: + * SW_FT_StrokerBorder + * + * @description: + * These values are used to select a given stroke border + * in @SW_FT_Stroker_GetBorderCounts and @SW_FT_Stroker_ExportBorder. + * + * @values: + * SW_FT_STROKER_BORDER_LEFT :: + * Select the left border, relative to the drawing direction. + * + * SW_FT_STROKER_BORDER_RIGHT :: + * Select the right border, relative to the drawing direction. + * + * @note: + * Applications are generally interested in the `inside' and `outside' + * borders. However, there is no direct mapping between these and the + * `left' and `right' ones, since this really depends on the glyph's + * drawing orientation, which varies between font formats. + * + * You can however use @SW_FT_Outline_GetInsideBorder and + * @SW_FT_Outline_GetOutsideBorder to get these. + */ + typedef enum SW_FT_StrokerBorder_ + { + SW_FT_STROKER_BORDER_LEFT = 0, + SW_FT_STROKER_BORDER_RIGHT + + } SW_FT_StrokerBorder; + + + /************************************************************** + * + * @function: + * SW_FT_Stroker_New + * + * @description: + * Create a new stroker object. + * + * @input: + * library :: + * FreeType library handle. + * + * @output: + * astroker :: + * A new stroker object handle. NULL in case of error. + * + * @return: + * FreeType error code. 0~means success. + */ + SW_FT_Error + SW_FT_Stroker_New( SW_FT_Stroker *astroker ); + + + /************************************************************** + * + * @function: + * SW_FT_Stroker_Set + * + * @description: + * Reset a stroker object's attributes. + * + * @input: + * stroker :: + * The target stroker handle. + * + * radius :: + * The border radius. + * + * line_cap :: + * The line cap style. + * + * line_join :: + * The line join style. + * + * miter_limit :: + * The miter limit for the SW_FT_STROKER_LINEJOIN_MITER_FIXED and + * SW_FT_STROKER_LINEJOIN_MITER_VARIABLE line join styles, + * expressed as 16.16 fixed-point value. + * + * @note: + * The radius is expressed in the same units as the outline + * coordinates. + */ + void + SW_FT_Stroker_Set( SW_FT_Stroker stroker, + SW_FT_Fixed radius, + SW_FT_Stroker_LineCap line_cap, + SW_FT_Stroker_LineJoin line_join, + SW_FT_Fixed miter_limit ); + + /************************************************************** + * + * @function: + * SW_FT_Stroker_ParseOutline + * + * @description: + * A convenience function used to parse a whole outline with + * the stroker. The resulting outline(s) can be retrieved + * later by functions like @SW_FT_Stroker_GetCounts and @SW_FT_Stroker_Export. + * + * @input: + * stroker :: + * The target stroker handle. + * + * outline :: + * The source outline. + * + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If `opened' is~0 (the default), the outline is treated as a closed + * path, and the stroker generates two distinct `border' outlines. + * + * + * This function calls @SW_FT_Stroker_Rewind automatically. + */ + SW_FT_Error + SW_FT_Stroker_ParseOutline( SW_FT_Stroker stroker, + const SW_FT_Outline* outline); + + + /************************************************************** + * + * @function: + * SW_FT_Stroker_GetCounts + * + * @description: + * Call this function once you have finished parsing your paths + * with the stroker. It returns the number of points and + * contours necessary to export all points/borders from the stroked + * outline/path. + * + * @input: + * stroker :: + * The target stroker handle. + * + * @output: + * anum_points :: + * The number of points. + * + * anum_contours :: + * The number of contours. + * + * @return: + * FreeType error code. 0~means success. + */ + SW_FT_Error + SW_FT_Stroker_GetCounts( SW_FT_Stroker stroker, + SW_FT_UInt *anum_points, + SW_FT_UInt *anum_contours ); + + + /************************************************************** + * + * @function: + * SW_FT_Stroker_Export + * + * @description: + * Call this function after @SW_FT_Stroker_GetBorderCounts to + * export all borders to your own @SW_FT_Outline structure. + * + * Note that this function appends the border points and + * contours to your outline, but does not try to resize its + * arrays. + * + * @input: + * stroker :: + * The target stroker handle. + * + * outline :: + * The target outline handle. + */ + void + SW_FT_Stroker_Export( SW_FT_Stroker stroker, + SW_FT_Outline* outline ); + + + /************************************************************** + * + * @function: + * SW_FT_Stroker_Done + * + * @description: + * Destroy a stroker object. + * + * @input: + * stroker :: + * A stroker handle. Can be NULL. + */ + void + SW_FT_Stroker_Done( SW_FT_Stroker stroker ); + + +#endif // V_FT_STROKER_H diff --git a/external/rlottie/src/vector/freetype/v_ft_types.h b/external/rlottie/src/vector/freetype/v_ft_types.h new file mode 100644 index 000000000..a01c4f287 --- /dev/null +++ b/external/rlottie/src/vector/freetype/v_ft_types.h @@ -0,0 +1,160 @@ +#ifndef V_FT_TYPES_H +#define V_FT_TYPES_H + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Fixed */ +/* */ +/* */ +/* This type is used to store 16.16 fixed-point values, like scaling */ +/* values or matrix coefficients. */ +/* */ +typedef signed long SW_FT_Fixed; + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Int */ +/* */ +/* */ +/* A typedef for the int type. */ +/* */ +typedef signed int SW_FT_Int; + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_UInt */ +/* */ +/* */ +/* A typedef for the unsigned int type. */ +/* */ +typedef unsigned int SW_FT_UInt; + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Long */ +/* */ +/* */ +/* A typedef for signed long. */ +/* */ +typedef signed long SW_FT_Long; + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_ULong */ +/* */ +/* */ +/* A typedef for unsigned long. */ +/* */ +typedef unsigned long SW_FT_ULong; + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Short */ +/* */ +/* */ +/* A typedef for signed short. */ +/* */ +typedef signed short SW_FT_Short; + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Byte */ +/* */ +/* */ +/* A simple typedef for the _unsigned_ char type. */ +/* */ +typedef unsigned char SW_FT_Byte; + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Bool */ +/* */ +/* */ +/* A typedef of unsigned char, used for simple booleans. As usual, */ +/* values 1 and~0 represent true and false, respectively. */ +/* */ +typedef unsigned char SW_FT_Bool; + + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Error */ +/* */ +/* */ +/* The FreeType error code type. A value of~0 is always interpreted */ +/* as a successful operation. */ +/* */ +typedef int SW_FT_Error; + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Pos */ +/* */ +/* */ +/* The type SW_FT_Pos is used to store vectorial coordinates. Depending */ +/* on the context, these can represent distances in integer font */ +/* units, or 16.16, or 26.6 fixed-point pixel coordinates. */ +/* */ +typedef signed long SW_FT_Pos; + + +/*************************************************************************/ +/* */ +/* */ +/* SW_FT_Vector */ +/* */ +/* */ +/* A simple structure used to store a 2D vector; coordinates are of */ +/* the SW_FT_Pos type. */ +/* */ +/* */ +/* x :: The horizontal coordinate. */ +/* y :: The vertical coordinate. */ +/* */ +typedef struct SW_FT_Vector_ +{ + SW_FT_Pos x; + SW_FT_Pos y; + +} SW_FT_Vector; + + +typedef long long int SW_FT_Int64; +typedef unsigned long long int SW_FT_UInt64; + +typedef signed int SW_FT_Int32; +typedef unsigned int SW_FT_UInt32; + + +#define SW_FT_BOOL( x ) ( (SW_FT_Bool)( x ) ) + +#define SW_FT_SIZEOF_LONG 4 + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + + +#endif // V_FT_TYPES_H diff --git a/external/rlottie/src/vector/meson.build b/external/rlottie/src/vector/meson.build new file mode 100644 index 000000000..1526a9ce6 --- /dev/null +++ b/external/rlottie/src/vector/meson.build @@ -0,0 +1,35 @@ + +subdir('freetype') +subdir('pixman') +subdir('stb') + +source_file = [ + 'vdasher.cpp', + 'vbrush.cpp', + 'vbitmap.cpp', + 'vpainter.cpp', + 'vdrawhelper_common.cpp', + 'vdrawhelper.cpp', + 'vdrawhelper_sse2.cpp', + 'vdrawhelper_neon.cpp', + 'vdrawable.cpp', + 'vrect.cpp', + 'vrle.cpp', + 'vpath.cpp', + 'vpathmesure.cpp', + 'vmatrix.cpp', + 'velapsedtimer.cpp', + 'vdebug.cpp', + 'vinterpolator.cpp', + 'vbezier.cpp', + 'vraster.cpp', + 'vimageloader.cpp', + 'varenaalloc.cpp', +] + +vector_dep = declare_dependency( include_directories : include_directories('.'), + sources : source_file, + dependencies : [freetype_dep, pixman_dep, stb_dep], + ) + + diff --git a/external/rlottie/src/vector/pixman/CMakeLists.txt b/external/rlottie/src/vector/pixman/CMakeLists.txt new file mode 100644 index 000000000..d904ca8dc --- /dev/null +++ b/external/rlottie/src/vector/pixman/CMakeLists.txt @@ -0,0 +1,13 @@ + +IF("${ARCH}" STREQUAL "arm") +SET(CMAKE_ASM_FLAGS "${CFLAGS} -x assembler-with-cpp") +target_sources(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/pixman-arm-neon-asm.S" + ) +ENDIF("${ARCH}" STREQUAL "arm") + +target_include_directories(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}" + ) diff --git a/external/rlottie/src/vector/pixman/meson.build b/external/rlottie/src/vector/pixman/meson.build new file mode 100644 index 000000000..8e097d7b5 --- /dev/null +++ b/external/rlottie/src/vector/pixman/meson.build @@ -0,0 +1,11 @@ + +source_file = [] + +if host_machine.cpu_family() == 'arm' + source_file += 'pixman-arm-neon-asm.S' +endif + +pixman_dep = declare_dependency( + include_directories : include_directories('.'), + sources : source_file + ) diff --git a/external/rlottie/src/vector/pixman/pixman-arm-neon-asm.S b/external/rlottie/src/vector/pixman/pixman-arm-neon-asm.S new file mode 100644 index 000000000..f2203c21c --- /dev/null +++ b/external/rlottie/src/vector/pixman/pixman-arm-neon-asm.S @@ -0,0 +1,497 @@ +/* + * Copyright © 2009 Nokia Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Siarhei Siamashka (siarhei.siamashka@nokia.com) + */ + +/* + * This file contains implementations of NEON optimized pixel processing + * functions. There is no full and detailed tutorial, but some functions + * (those which are exposing some new or interesting features) are + * extensively commented and can be used as examples. + * + * You may want to have a look at the comments for following functions: + * - pixman_composite_over_8888_0565_asm_neon + * - pixman_composite_over_n_8_0565_asm_neon + */ + +/* Prevent the stack from becoming executable for no reason... */ +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif + + .text + .fpu neon + .arch armv7a + .object_arch armv4 + .eabi_attribute 10, 0 /* suppress Tag_FP_arch */ + .eabi_attribute 12, 0 /* suppress Tag_Advanced_SIMD_arch */ + .arm + .altmacro + .p2align 2 + + +//#include "pixman-arm-asm.h" +/* Supplementary macro for setting function attributes */ +.macro pixman_asm_function fname + .func fname + .global fname +#ifdef __ELF__ + .hidden fname + .type fname, %function +#endif +fname: +.endm + +//#include "pixman-private.h" +/* + * The defines which are shared between C and assembly code + */ + +/* bilinear interpolation precision (must be < 8) */ +#define BILINEAR_INTERPOLATION_BITS 7 +#define BILINEAR_INTERPOLATION_RANGE (1 << BILINEAR_INTERPOLATION_BITS) + +#include "pixman-arm-neon-asm.h" + +/* Global configuration options and preferences */ + +/* + * The code can optionally make use of unaligned memory accesses to improve + * performance of handling leading/trailing pixels for each scanline. + * Configuration variable RESPECT_STRICT_ALIGNMENT can be set to 0 for + * example in linux if unaligned memory accesses are not configured to + * generate.exceptions. + */ +.set RESPECT_STRICT_ALIGNMENT, 1 + +/* + * Set default prefetch type. There is a choice between the following options: + * + * PREFETCH_TYPE_NONE (may be useful for the ARM cores where PLD is set to work + * as NOP to workaround some HW bugs or for whatever other reason) + * + * PREFETCH_TYPE_SIMPLE (may be useful for simple single-issue ARM cores where + * advanced prefetch intruduces heavy overhead) + * + * PREFETCH_TYPE_ADVANCED (useful for superscalar cores such as ARM Cortex-A8 + * which can run ARM and NEON instructions simultaneously so that extra ARM + * instructions do not add (many) extra cycles, but improve prefetch efficiency) + * + * Note: some types of function can't support advanced prefetch and fallback + * to simple one (those which handle 24bpp pixels) + */ +.set PREFETCH_TYPE_DEFAULT, PREFETCH_TYPE_ADVANCED + +/* Prefetch distance in pixels for simple prefetch */ +.set PREFETCH_DISTANCE_SIMPLE, 64 + +/* + * Implementation of pixman_composite_over_8888_0565_asm_neon + * + * This function takes a8r8g8b8 source buffer, r5g6b5 destination buffer and + * performs OVER compositing operation. Function fast_composite_over_8888_0565 + * from pixman-fast-path.c does the same in C and can be used as a reference. + * + * First we need to have some NEON assembly code which can do the actual + * operation on the pixels and provide it to the template macro. + * + * Template macro quite conveniently takes care of emitting all the necessary + * code for memory reading and writing (including quite tricky cases of + * handling unaligned leading/trailing pixels), so we only need to deal with + * the data in NEON registers. + * + * NEON registers allocation in general is recommented to be the following: + * d0, d1, d2, d3 - contain loaded source pixel data + * d4, d5, d6, d7 - contain loaded destination pixels (if they are needed) + * d24, d25, d26, d27 - contain loading mask pixel data (if mask is used) + * d28, d29, d30, d31 - place for storing the result (destination pixels) + * + * As can be seen above, four 64-bit NEON registers are used for keeping + * intermediate pixel data and up to 8 pixels can be processed in one step + * for 32bpp formats (16 pixels for 16bpp, 32 pixels for 8bpp). + * + * This particular function uses the following registers allocation: + * d0, d1, d2, d3 - contain loaded source pixel data + * d4, d5 - contain loaded destination pixels (they are needed) + * d28, d29 - place for storing the result (destination pixels) + */ + +/* + * Step one. We need to have some code to do some arithmetics on pixel data. + * This is implemented as a pair of macros: '*_head' and '*_tail'. When used + * back-to-back, they take pixel data from {d0, d1, d2, d3} and {d4, d5}, + * perform all the needed calculations and write the result to {d28, d29}. + * The rationale for having two macros and not just one will be explained + * later. In practice, any single monolitic function which does the work can + * be split into two parts in any arbitrary way without affecting correctness. + * + * There is one special trick here too. Common template macro can optionally + * make our life a bit easier by doing R, G, B, A color components + * deinterleaving for 32bpp pixel formats (and this feature is used in + * 'pixman_composite_over_8888_0565_asm_neon' function). So it means that + * instead of having 8 packed pixels in {d0, d1, d2, d3} registers, we + * actually use d0 register for blue channel (a vector of eight 8-bit + * values), d1 register for green, d2 for red and d3 for alpha. This + * simple conversion can be also done with a few NEON instructions: + * + * Packed to planar conversion: + * vuzp.8 d0, d1 + * vuzp.8 d2, d3 + * vuzp.8 d1, d3 + * vuzp.8 d0, d2 + * + * Planar to packed conversion: + * vzip.8 d0, d2 + * vzip.8 d1, d3 + * vzip.8 d2, d3 + * vzip.8 d0, d1 + * + * But pixel can be loaded directly in planar format using VLD4.8 NEON + * instruction. It is 1 cycle slower than VLD1.32, so this is not always + * desirable, that's why deinterleaving is optional. + * + * But anyway, here is the code: + */ + +/* + * OK, now we got almost everything that we need. Using the above two + * macros, the work can be done right. But now we want to optimize + * it a bit. ARM Cortex-A8 is an in-order core, and benefits really + * a lot from good code scheduling and software pipelining. + * + * Let's construct some code, which will run in the core main loop. + * Some pseudo-code of the main loop will look like this: + * head + * while (...) { + * tail + * head + * } + * tail + * + * It may look a bit weird, but this setup allows to hide instruction + * latencies better and also utilize dual-issue capability more + * efficiently (make pairs of load-store and ALU instructions). + * + * So what we need now is a '*_tail_head' macro, which will be used + * in the core main loop. A trivial straightforward implementation + * of this macro would look like this: + * + * pixman_composite_over_8888_0565_process_pixblock_tail + * vst1.16 {d28, d29}, [DST_W, :128]! + * vld1.16 {d4, d5}, [DST_R, :128]! + * vld4.32 {d0, d1, d2, d3}, [SRC]! + * pixman_composite_over_8888_0565_process_pixblock_head + * cache_preload 8, 8 + * + * Now it also got some VLD/VST instructions. We simply can't move from + * processing one block of pixels to the other one with just arithmetics. + * The previously processed data needs to be written to memory and new + * data needs to be fetched. Fortunately, this main loop does not deal + * with partial leading/trailing pixels and can load/store a full block + * of pixels in a bulk. Additionally, destination buffer is already + * 16 bytes aligned here (which is good for performance). + * + * New things here are DST_R, DST_W, SRC and MASK identifiers. These + * are the aliases for ARM registers which are used as pointers for + * accessing data. We maintain separate pointers for reading and writing + * destination buffer (DST_R and DST_W). + * + * Another new thing is 'cache_preload' macro. It is used for prefetching + * data into CPU L2 cache and improve performance when dealing with large + * images which are far larger than cache size. It uses one argument + * (actually two, but they need to be the same here) - number of pixels + * in a block. Looking into 'pixman-arm-neon-asm.h' can provide some + * details about this macro. Moreover, if good performance is needed + * the code from this macro needs to be copied into '*_tail_head' macro + * and mixed with the rest of code for optimal instructions scheduling. + * We are actually doing it below. + * + * Now after all the explanations, here is the optimized code. + * Different instruction streams (originaling from '*_head', '*_tail' + * and 'cache_preload' macro) use different indentation levels for + * better readability. Actually taking the code from one of these + * indentation levels and ignoring a few VLD/VST instructions would + * result in exactly the code from '*_head', '*_tail' or 'cache_preload' + * macro! + */ + +/* + * And now the final part. We are using 'generate_composite_function' macro + * to put all the stuff together. We are specifying the name of the function + * which we want to get, number of bits per pixel for the source, mask and + * destination (0 if unused, like mask in this case). Next come some bit + * flags: + * FLAG_DST_READWRITE - tells that the destination buffer is both read + * and written, for write-only buffer we would use + * FLAG_DST_WRITEONLY flag instead + * FLAG_DEINTERLEAVE_32BPP - tells that we prefer to work with planar data + * and separate color channels for 32bpp format. + * The next things are: + * - the number of pixels processed per iteration (8 in this case, because + * that's the maximum what can fit into four 64-bit NEON registers). + * - prefetch distance, measured in pixel blocks. In this case it is 5 times + * by 8 pixels. That would be 40 pixels, or up to 160 bytes. Optimal + * prefetch distance can be selected by running some benchmarks. + * + * After that we specify some macros, these are 'default_init', + * 'default_cleanup' here which are empty (but it is possible to have custom + * init/cleanup macros to be able to save/restore some extra NEON registers + * like d8-d15 or do anything else) followed by + * 'pixman_composite_over_8888_0565_process_pixblock_head', + * 'pixman_composite_over_8888_0565_process_pixblock_tail' and + * 'pixman_composite_over_8888_0565_process_pixblock_tail_head' + * which we got implemented above. + * + * The last part is the NEON registers allocation scheme. + */ + +/******************************************************************************/ + +/******************************************************************************/ + .macro pixman_composite_out_reverse_8888_8888_process_pixblock_head + vmvn.8 d24, d3 /* get inverted alpha */ + /* do alpha blending */ + vmull.u8 q8, d24, d4 + vmull.u8 q9, d24, d5 + vmull.u8 q10, d24, d6 + vmull.u8 q11, d24, d7 + .endm + + .macro pixman_composite_out_reverse_8888_8888_process_pixblock_tail + vrshr.u16 q14, q8, #8 + vrshr.u16 q15, q9, #8 + vrshr.u16 q12, q10, #8 + vrshr.u16 q13, q11, #8 + vraddhn.u16 d28, q14, q8 + vraddhn.u16 d29, q15, q9 + vraddhn.u16 d30, q12, q10 + vraddhn.u16 d31, q13, q11 + .endm + +/******************************************************************************/ + +.macro pixman_composite_over_8888_8888_process_pixblock_head + pixman_composite_out_reverse_8888_8888_process_pixblock_head +.endm + +.macro pixman_composite_over_8888_8888_process_pixblock_tail + pixman_composite_out_reverse_8888_8888_process_pixblock_tail + vqadd.u8 q14, q0, q14 + vqadd.u8 q15, q1, q15 +.endm + +.macro pixman_composite_over_8888_8888_process_pixblock_tail_head + vld4.8 {d4, d5, d6, d7}, [DST_R, :128]! + vrshr.u16 q14, q8, #8 + PF add PF_X, PF_X, #8 + PF tst PF_CTL, #0xF + vrshr.u16 q15, q9, #8 + vrshr.u16 q12, q10, #8 + vrshr.u16 q13, q11, #8 + PF addne PF_X, PF_X, #8 + PF subne PF_CTL, PF_CTL, #1 + vraddhn.u16 d28, q14, q8 + vraddhn.u16 d29, q15, q9 + PF cmp PF_X, ORIG_W + vraddhn.u16 d30, q12, q10 + vraddhn.u16 d31, q13, q11 + vqadd.u8 q14, q0, q14 + vqadd.u8 q15, q1, q15 + fetch_src_pixblock + PF pld, [PF_SRC, PF_X, lsl #src_bpp_shift] + vmvn.8 d22, d3 + PF pld, [PF_DST, PF_X, lsl #dst_bpp_shift] + vst4.8 {d28, d29, d30, d31}, [DST_W, :128]! + PF subge PF_X, PF_X, ORIG_W + vmull.u8 q8, d22, d4 + PF subges PF_CTL, PF_CTL, #0x10 + vmull.u8 q9, d22, d5 + PF ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]! + vmull.u8 q10, d22, d6 + PF ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]! + vmull.u8 q11, d22, d7 +.endm + +generate_composite_function \ + pixman_composite_over_8888_8888_asm_neon, 32, 0, 32, \ + FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \ + 8, /* number of pixels, processed in a single block */ \ + 5, /* prefetch distance */ \ + default_init, \ + default_cleanup, \ + pixman_composite_over_8888_8888_process_pixblock_head, \ + pixman_composite_over_8888_8888_process_pixblock_tail, \ + pixman_composite_over_8888_8888_process_pixblock_tail_head + +generate_composite_function_single_scanline \ + pixman_composite_scanline_over_asm_neon, 32, 0, 32, \ + FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \ + 8, /* number of pixels, processed in a single block */ \ + default_init, \ + default_cleanup, \ + pixman_composite_over_8888_8888_process_pixblock_head, \ + pixman_composite_over_8888_8888_process_pixblock_tail, \ + pixman_composite_over_8888_8888_process_pixblock_tail_head + +/******************************************************************************/ + +.macro pixman_composite_over_n_8888_process_pixblock_head + /* deinterleaved source pixels in {d0, d1, d2, d3} */ + /* inverted alpha in {d24} */ + /* destination pixels in {d4, d5, d6, d7} */ + vmull.u8 q8, d24, d4 + vmull.u8 q9, d24, d5 + vmull.u8 q10, d24, d6 + vmull.u8 q11, d24, d7 +.endm + +.macro pixman_composite_over_n_8888_process_pixblock_tail + vrshr.u16 q14, q8, #8 + vrshr.u16 q15, q9, #8 + vrshr.u16 q2, q10, #8 + vrshr.u16 q3, q11, #8 + vraddhn.u16 d28, q14, q8 + vraddhn.u16 d29, q15, q9 + vraddhn.u16 d30, q2, q10 + vraddhn.u16 d31, q3, q11 + vqadd.u8 q14, q0, q14 + vqadd.u8 q15, q1, q15 +.endm + +.macro pixman_composite_over_n_8888_process_pixblock_tail_head + vrshr.u16 q14, q8, #8 + vrshr.u16 q15, q9, #8 + vrshr.u16 q2, q10, #8 + vrshr.u16 q3, q11, #8 + vraddhn.u16 d28, q14, q8 + vraddhn.u16 d29, q15, q9 + vraddhn.u16 d30, q2, q10 + vraddhn.u16 d31, q3, q11 + vld4.8 {d4, d5, d6, d7}, [DST_R, :128]! + vqadd.u8 q14, q0, q14 + PF add PF_X, PF_X, #8 + PF tst PF_CTL, #0x0F + PF addne PF_X, PF_X, #8 + PF subne PF_CTL, PF_CTL, #1 + vqadd.u8 q15, q1, q15 + PF cmp PF_X, ORIG_W + vmull.u8 q8, d24, d4 + PF pld, [PF_DST, PF_X, lsl #dst_bpp_shift] + vmull.u8 q9, d24, d5 + PF subge PF_X, PF_X, ORIG_W + vmull.u8 q10, d24, d6 + PF subges PF_CTL, PF_CTL, #0x10 + vmull.u8 q11, d24, d7 + PF ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]! + vst4.8 {d28, d29, d30, d31}, [DST_W, :128]! +.endm + +.macro pixman_composite_over_n_8888_init + add DUMMY, sp, #ARGS_STACK_OFFSET + vld1.32 {d3[0]}, [DUMMY] + vdup.8 d0, d3[0] + vdup.8 d1, d3[1] + vdup.8 d2, d3[2] + vdup.8 d3, d3[3] + vmvn.8 d24, d3 /* get inverted alpha */ +.endm + +generate_composite_function \ + pixman_composite_over_n_8888_asm_neon, 0, 0, 32, \ + FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \ + 8, /* number of pixels, processed in a single block */ \ + 5, /* prefetch distance */ \ + pixman_composite_over_n_8888_init, \ + default_cleanup, \ + pixman_composite_over_8888_8888_process_pixblock_head, \ + pixman_composite_over_8888_8888_process_pixblock_tail, \ + pixman_composite_over_n_8888_process_pixblock_tail_head + +/******************************************************************************/ + +.macro pixman_composite_src_n_8888_process_pixblock_head +.endm + +.macro pixman_composite_src_n_8888_process_pixblock_tail +.endm + +.macro pixman_composite_src_n_8888_process_pixblock_tail_head + vst1.32 {d0, d1, d2, d3}, [DST_W, :128]! +.endm + +.macro pixman_composite_src_n_8888_init + add DUMMY, sp, #ARGS_STACK_OFFSET + vld1.32 {d0[0]}, [DUMMY] + vsli.u64 d0, d0, #32 + vorr d1, d0, d0 + vorr q1, q0, q0 +.endm + +.macro pixman_composite_src_n_8888_cleanup +.endm + +generate_composite_function \ + pixman_composite_src_n_8888_asm_neon, 0, 0, 32, \ + FLAG_DST_WRITEONLY, \ + 8, /* number of pixels, processed in a single block */ \ + 0, /* prefetch distance */ \ + pixman_composite_src_n_8888_init, \ + pixman_composite_src_n_8888_cleanup, \ + pixman_composite_src_n_8888_process_pixblock_head, \ + pixman_composite_src_n_8888_process_pixblock_tail, \ + pixman_composite_src_n_8888_process_pixblock_tail_head, \ + 0, /* dst_w_basereg */ \ + 0, /* dst_r_basereg */ \ + 0, /* src_basereg */ \ + 0 /* mask_basereg */ + +/******************************************************************************/ + +.macro pixman_composite_src_8888_8888_process_pixblock_head +.endm + +.macro pixman_composite_src_8888_8888_process_pixblock_tail +.endm + +.macro pixman_composite_src_8888_8888_process_pixblock_tail_head + vst1.32 {d0, d1, d2, d3}, [DST_W, :128]! + fetch_src_pixblock + cache_preload 8, 8 +.endm + +generate_composite_function \ + pixman_composite_src_8888_8888_asm_neon, 32, 0, 32, \ + FLAG_DST_WRITEONLY, \ + 8, /* number of pixels, processed in a single block */ \ + 10, /* prefetch distance */ \ + default_init, \ + default_cleanup, \ + pixman_composite_src_8888_8888_process_pixblock_head, \ + pixman_composite_src_8888_8888_process_pixblock_tail, \ + pixman_composite_src_8888_8888_process_pixblock_tail_head, \ + 0, /* dst_w_basereg */ \ + 0, /* dst_r_basereg */ \ + 0, /* src_basereg */ \ + 0 /* mask_basereg */ + +/******************************************************************************/ diff --git a/external/rlottie/src/vector/pixman/pixman-arm-neon-asm.h b/external/rlottie/src/vector/pixman/pixman-arm-neon-asm.h new file mode 100644 index 000000000..6add220a1 --- /dev/null +++ b/external/rlottie/src/vector/pixman/pixman-arm-neon-asm.h @@ -0,0 +1,1126 @@ +/* + * Copyright © 2009 Nokia Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Siarhei Siamashka (siarhei.siamashka@nokia.com) + */ + +/* + * This file contains a macro ('generate_composite_function') which can + * construct 2D image processing functions, based on a common template. + * Any combinations of source, destination and mask images with 8bpp, + * 16bpp, 24bpp, 32bpp color formats are supported. + * + * This macro takes care of: + * - handling of leading and trailing unaligned pixels + * - doing most of the work related to L2 cache preload + * - encourages the use of software pipelining for better instructions + * scheduling + * + * The user of this macro has to provide some configuration parameters + * (bit depths for the images, prefetch distance, etc.) and a set of + * macros, which should implement basic code chunks responsible for + * pixels processing. See 'pixman-arm-neon-asm.S' file for the usage + * examples. + * + * TODO: + * - try overlapped pixel method (from Ian Rickards) when processing + * exactly two blocks of pixels + * - maybe add an option to do reverse scanline processing + */ + +/* + * Bit flags for 'generate_composite_function' macro which are used + * to tune generated functions behavior. + */ +.set FLAG_DST_WRITEONLY, 0 +.set FLAG_DST_READWRITE, 1 +.set FLAG_DEINTERLEAVE_32BPP, 2 + +/* + * Offset in stack where mask and source pointer/stride can be accessed + * from 'init' macro. This is useful for doing special handling for solid mask. + */ +.set ARGS_STACK_OFFSET, 40 + +/* + * Constants for selecting preferable prefetch type. + */ +.set PREFETCH_TYPE_NONE, 0 /* No prefetch at all */ +.set PREFETCH_TYPE_SIMPLE, 1 /* A simple, fixed-distance-ahead prefetch */ +.set PREFETCH_TYPE_ADVANCED, 2 /* Advanced fine-grained prefetch */ + +/* + * Definitions of supplementary pixld/pixst macros (for partial load/store of + * pixel data). + */ + +.macro pixldst1 op, elem_size, reg1, mem_operand, abits +.if abits > 0 + op&.&elem_size {d®1}, [&mem_operand&, :&abits&]! +.else + op&.&elem_size {d®1}, [&mem_operand&]! +.endif +.endm + +.macro pixldst2 op, elem_size, reg1, reg2, mem_operand, abits +.if abits > 0 + op&.&elem_size {d®1, d®2}, [&mem_operand&, :&abits&]! +.else + op&.&elem_size {d®1, d®2}, [&mem_operand&]! +.endif +.endm + +.macro pixldst4 op, elem_size, reg1, reg2, reg3, reg4, mem_operand, abits +.if abits > 0 + op&.&elem_size {d®1, d®2, d®3, d®4}, [&mem_operand&, :&abits&]! +.else + op&.&elem_size {d®1, d®2, d®3, d®4}, [&mem_operand&]! +.endif +.endm + +.macro pixldst0 op, elem_size, reg1, idx, mem_operand, abits + op&.&elem_size {d®1[idx]}, [&mem_operand&]! +.endm + +.macro pixldst3 op, elem_size, reg1, reg2, reg3, mem_operand + op&.&elem_size {d®1, d®2, d®3}, [&mem_operand&]! +.endm + +.macro pixldst30 op, elem_size, reg1, reg2, reg3, idx, mem_operand + op&.&elem_size {d®1[idx], d®2[idx], d®3[idx]}, [&mem_operand&]! +.endm + +.macro pixldst numbytes, op, elem_size, basereg, mem_operand, abits +.if numbytes == 32 + pixldst4 op, elem_size, %(basereg+4), %(basereg+5), \ + %(basereg+6), %(basereg+7), mem_operand, abits +.elseif numbytes == 16 + pixldst2 op, elem_size, %(basereg+2), %(basereg+3), mem_operand, abits +.elseif numbytes == 8 + pixldst1 op, elem_size, %(basereg+1), mem_operand, abits +.elseif numbytes == 4 + .if !RESPECT_STRICT_ALIGNMENT || (elem_size == 32) + pixldst0 op, 32, %(basereg+0), 1, mem_operand, abits + .elseif elem_size == 16 + pixldst0 op, 16, %(basereg+0), 2, mem_operand, abits + pixldst0 op, 16, %(basereg+0), 3, mem_operand, abits + .else + pixldst0 op, 8, %(basereg+0), 4, mem_operand, abits + pixldst0 op, 8, %(basereg+0), 5, mem_operand, abits + pixldst0 op, 8, %(basereg+0), 6, mem_operand, abits + pixldst0 op, 8, %(basereg+0), 7, mem_operand, abits + .endif +.elseif numbytes == 2 + .if !RESPECT_STRICT_ALIGNMENT || (elem_size == 16) + pixldst0 op, 16, %(basereg+0), 1, mem_operand, abits + .else + pixldst0 op, 8, %(basereg+0), 2, mem_operand, abits + pixldst0 op, 8, %(basereg+0), 3, mem_operand, abits + .endif +.elseif numbytes == 1 + pixldst0 op, 8, %(basereg+0), 1, mem_operand, abits +.else + .error "unsupported size: numbytes" +.endif +.endm + +.macro pixld numpix, bpp, basereg, mem_operand, abits=0 +.if bpp > 0 +.if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0) + pixldst4 vld4, 8, %(basereg+4), %(basereg+5), \ + %(basereg+6), %(basereg+7), mem_operand, abits +.elseif (bpp == 24) && (numpix == 8) + pixldst3 vld3, 8, %(basereg+3), %(basereg+4), %(basereg+5), mem_operand +.elseif (bpp == 24) && (numpix == 4) + pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 4, mem_operand + pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 5, mem_operand + pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 6, mem_operand + pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 7, mem_operand +.elseif (bpp == 24) && (numpix == 2) + pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 2, mem_operand + pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 3, mem_operand +.elseif (bpp == 24) && (numpix == 1) + pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 1, mem_operand +.else + pixldst %(numpix * bpp / 8), vld1, %(bpp), basereg, mem_operand, abits +.endif +.endif +.endm + +.macro pixst numpix, bpp, basereg, mem_operand, abits=0 +.if bpp > 0 +.if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0) + pixldst4 vst4, 8, %(basereg+4), %(basereg+5), \ + %(basereg+6), %(basereg+7), mem_operand, abits +.elseif (bpp == 24) && (numpix == 8) + pixldst3 vst3, 8, %(basereg+3), %(basereg+4), %(basereg+5), mem_operand +.elseif (bpp == 24) && (numpix == 4) + pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 4, mem_operand + pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 5, mem_operand + pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 6, mem_operand + pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 7, mem_operand +.elseif (bpp == 24) && (numpix == 2) + pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 2, mem_operand + pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 3, mem_operand +.elseif (bpp == 24) && (numpix == 1) + pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 1, mem_operand +.else + pixldst %(numpix * bpp / 8), vst1, %(bpp), basereg, mem_operand, abits +.endif +.endif +.endm + +.macro pixld_a numpix, bpp, basereg, mem_operand +.if (bpp * numpix) <= 128 + pixld numpix, bpp, basereg, mem_operand, %(bpp * numpix) +.else + pixld numpix, bpp, basereg, mem_operand, 128 +.endif +.endm + +.macro pixst_a numpix, bpp, basereg, mem_operand +.if (bpp * numpix) <= 128 + pixst numpix, bpp, basereg, mem_operand, %(bpp * numpix) +.else + pixst numpix, bpp, basereg, mem_operand, 128 +.endif +.endm + +/* + * Pixel fetcher for nearest scaling (needs TMP1, TMP2, VX, UNIT_X register + * aliases to be defined) + */ +.macro pixld1_s elem_size, reg1, mem_operand +.if elem_size == 16 + mov TMP1, VX, asr #16 + adds VX, VX, UNIT_X +5: subpls VX, VX, SRC_WIDTH_FIXED + bpl 5b + add TMP1, mem_operand, TMP1, asl #1 + mov TMP2, VX, asr #16 + adds VX, VX, UNIT_X +5: subpls VX, VX, SRC_WIDTH_FIXED + bpl 5b + add TMP2, mem_operand, TMP2, asl #1 + vld1.16 {d®1&[0]}, [TMP1, :16] + mov TMP1, VX, asr #16 + adds VX, VX, UNIT_X +5: subpls VX, VX, SRC_WIDTH_FIXED + bpl 5b + add TMP1, mem_operand, TMP1, asl #1 + vld1.16 {d®1&[1]}, [TMP2, :16] + mov TMP2, VX, asr #16 + adds VX, VX, UNIT_X +5: subpls VX, VX, SRC_WIDTH_FIXED + bpl 5b + add TMP2, mem_operand, TMP2, asl #1 + vld1.16 {d®1&[2]}, [TMP1, :16] + vld1.16 {d®1&[3]}, [TMP2, :16] +.elseif elem_size == 32 + mov TMP1, VX, asr #16 + adds VX, VX, UNIT_X +5: subpls VX, VX, SRC_WIDTH_FIXED + bpl 5b + add TMP1, mem_operand, TMP1, asl #2 + mov TMP2, VX, asr #16 + adds VX, VX, UNIT_X +5: subpls VX, VX, SRC_WIDTH_FIXED + bpl 5b + add TMP2, mem_operand, TMP2, asl #2 + vld1.32 {d®1&[0]}, [TMP1, :32] + vld1.32 {d®1&[1]}, [TMP2, :32] +.else + .error "unsupported" +.endif +.endm + +.macro pixld2_s elem_size, reg1, reg2, mem_operand +.if 0 /* elem_size == 32 */ + mov TMP1, VX, asr #16 + add VX, VX, UNIT_X, asl #1 + add TMP1, mem_operand, TMP1, asl #2 + mov TMP2, VX, asr #16 + sub VX, VX, UNIT_X + add TMP2, mem_operand, TMP2, asl #2 + vld1.32 {d®1&[0]}, [TMP1, :32] + mov TMP1, VX, asr #16 + add VX, VX, UNIT_X, asl #1 + add TMP1, mem_operand, TMP1, asl #2 + vld1.32 {d®2&[0]}, [TMP2, :32] + mov TMP2, VX, asr #16 + add VX, VX, UNIT_X + add TMP2, mem_operand, TMP2, asl #2 + vld1.32 {d®1&[1]}, [TMP1, :32] + vld1.32 {d®2&[1]}, [TMP2, :32] +.else + pixld1_s elem_size, reg1, mem_operand + pixld1_s elem_size, reg2, mem_operand +.endif +.endm + +.macro pixld0_s elem_size, reg1, idx, mem_operand +.if elem_size == 16 + mov TMP1, VX, asr #16 + adds VX, VX, UNIT_X +5: subpls VX, VX, SRC_WIDTH_FIXED + bpl 5b + add TMP1, mem_operand, TMP1, asl #1 + vld1.16 {d®1&[idx]}, [TMP1, :16] +.elseif elem_size == 32 + mov TMP1, VX, asr #16 + adds VX, VX, UNIT_X +5: subpls VX, VX, SRC_WIDTH_FIXED + bpl 5b + add TMP1, mem_operand, TMP1, asl #2 + vld1.32 {d®1&[idx]}, [TMP1, :32] +.endif +.endm + +.macro pixld_s_internal numbytes, elem_size, basereg, mem_operand +.if numbytes == 32 + pixld2_s elem_size, %(basereg+4), %(basereg+5), mem_operand + pixld2_s elem_size, %(basereg+6), %(basereg+7), mem_operand + pixdeinterleave elem_size, %(basereg+4) +.elseif numbytes == 16 + pixld2_s elem_size, %(basereg+2), %(basereg+3), mem_operand +.elseif numbytes == 8 + pixld1_s elem_size, %(basereg+1), mem_operand +.elseif numbytes == 4 + .if elem_size == 32 + pixld0_s elem_size, %(basereg+0), 1, mem_operand + .elseif elem_size == 16 + pixld0_s elem_size, %(basereg+0), 2, mem_operand + pixld0_s elem_size, %(basereg+0), 3, mem_operand + .else + pixld0_s elem_size, %(basereg+0), 4, mem_operand + pixld0_s elem_size, %(basereg+0), 5, mem_operand + pixld0_s elem_size, %(basereg+0), 6, mem_operand + pixld0_s elem_size, %(basereg+0), 7, mem_operand + .endif +.elseif numbytes == 2 + .if elem_size == 16 + pixld0_s elem_size, %(basereg+0), 1, mem_operand + .else + pixld0_s elem_size, %(basereg+0), 2, mem_operand + pixld0_s elem_size, %(basereg+0), 3, mem_operand + .endif +.elseif numbytes == 1 + pixld0_s elem_size, %(basereg+0), 1, mem_operand +.else + .error "unsupported size: numbytes" +.endif +.endm + +.macro pixld_s numpix, bpp, basereg, mem_operand +.if bpp > 0 + pixld_s_internal %(numpix * bpp / 8), %(bpp), basereg, mem_operand +.endif +.endm + +.macro vuzp8 reg1, reg2 + vuzp.8 d®1, d®2 +.endm + +.macro vzip8 reg1, reg2 + vzip.8 d®1, d®2 +.endm + +/* deinterleave B, G, R, A channels for eight 32bpp pixels in 4 registers */ +.macro pixdeinterleave bpp, basereg +.if (bpp == 32) && (DEINTERLEAVE_32BPP_ENABLED != 0) + vuzp8 %(basereg+0), %(basereg+1) + vuzp8 %(basereg+2), %(basereg+3) + vuzp8 %(basereg+1), %(basereg+3) + vuzp8 %(basereg+0), %(basereg+2) +.endif +.endm + +/* interleave B, G, R, A channels for eight 32bpp pixels in 4 registers */ +.macro pixinterleave bpp, basereg +.if (bpp == 32) && (DEINTERLEAVE_32BPP_ENABLED != 0) + vzip8 %(basereg+0), %(basereg+2) + vzip8 %(basereg+1), %(basereg+3) + vzip8 %(basereg+2), %(basereg+3) + vzip8 %(basereg+0), %(basereg+1) +.endif +.endm + +/* + * This is a macro for implementing cache preload. The main idea is that + * cache preload logic is mostly independent from the rest of pixels + * processing code. It starts at the top left pixel and moves forward + * across pixels and can jump across scanlines. Prefetch distance is + * handled in an 'incremental' way: it starts from 0 and advances to the + * optimal distance over time. After reaching optimal prefetch distance, + * it is kept constant. There are some checks which prevent prefetching + * unneeded pixel lines below the image (but it still can prefetch a bit + * more data on the right side of the image - not a big issue and may + * be actually helpful when rendering text glyphs). Additional trick is + * the use of LDR instruction for prefetch instead of PLD when moving to + * the next line, the point is that we have a high chance of getting TLB + * miss in this case, and PLD would be useless. + * + * This sounds like it may introduce a noticeable overhead (when working with + * fully cached data). But in reality, due to having a separate pipeline and + * instruction queue for NEON unit in ARM Cortex-A8, normal ARM code can + * execute simultaneously with NEON and be completely shadowed by it. Thus + * we get no performance overhead at all (*). This looks like a very nice + * feature of Cortex-A8, if used wisely. We don't have a hardware prefetcher, + * but still can implement some rather advanced prefetch logic in software + * for almost zero cost! + * + * (*) The overhead of the prefetcher is visible when running some trivial + * pixels processing like simple copy. Anyway, having prefetch is a must + * when working with the graphics data. + */ +.macro PF a, x:vararg +.if (PREFETCH_TYPE_CURRENT == PREFETCH_TYPE_ADVANCED) + a x +.endif +.endm + +.macro cache_preload std_increment, boost_increment +.if (src_bpp_shift >= 0) || (dst_r_bpp != 0) || (mask_bpp_shift >= 0) +.if regs_shortage + PF ldr ORIG_W, [sp] /* If we are short on regs, ORIG_W is kept on stack */ +.endif +.if std_increment != 0 + PF add PF_X, PF_X, #std_increment +.endif + PF tst PF_CTL, #0xF + PF addne PF_X, PF_X, #boost_increment + PF subne PF_CTL, PF_CTL, #1 + PF cmp PF_X, ORIG_W +.if src_bpp_shift >= 0 + PF pld, [PF_SRC, PF_X, lsl #src_bpp_shift] +.endif +.if dst_r_bpp != 0 + PF pld, [PF_DST, PF_X, lsl #dst_bpp_shift] +.endif +.if mask_bpp_shift >= 0 + PF pld, [PF_MASK, PF_X, lsl #mask_bpp_shift] +.endif + PF subge PF_X, PF_X, ORIG_W + PF subges PF_CTL, PF_CTL, #0x10 +.if src_bpp_shift >= 0 + PF ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]! +.endif +.if dst_r_bpp != 0 + PF ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]! +.endif +.if mask_bpp_shift >= 0 + PF ldrgeb DUMMY, [PF_MASK, MASK_STRIDE, lsl #mask_bpp_shift]! +.endif +.endif +.endm + +.macro cache_preload_simple +.if (PREFETCH_TYPE_CURRENT == PREFETCH_TYPE_SIMPLE) +.if src_bpp > 0 + pld [SRC, #(PREFETCH_DISTANCE_SIMPLE * src_bpp / 8)] +.endif +.if dst_r_bpp > 0 + pld [DST_R, #(PREFETCH_DISTANCE_SIMPLE * dst_r_bpp / 8)] +.endif +.if mask_bpp > 0 + pld [MASK, #(PREFETCH_DISTANCE_SIMPLE * mask_bpp / 8)] +.endif +.endif +.endm + +.macro fetch_mask_pixblock + pixld pixblock_size, mask_bpp, \ + (mask_basereg - pixblock_size * mask_bpp / 64), MASK +.endm + +/* + * Macro which is used to process leading pixels until destination + * pointer is properly aligned (at 16 bytes boundary). When destination + * buffer uses 16bpp format, this is unnecessary, or even pointless. + */ +.macro ensure_destination_ptr_alignment process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head +.if dst_w_bpp != 24 + tst DST_R, #0xF + beq 2f + +.irp lowbit, 1, 2, 4, 8, 16 +local skip1 +.if (dst_w_bpp <= (lowbit * 8)) && ((lowbit * 8) < (pixblock_size * dst_w_bpp)) +.if lowbit < 16 /* we don't need more than 16-byte alignment */ + tst DST_R, #lowbit + beq 1f +.endif + pixld_src (lowbit * 8 / dst_w_bpp), src_bpp, src_basereg, SRC + pixld (lowbit * 8 / dst_w_bpp), mask_bpp, mask_basereg, MASK +.if dst_r_bpp > 0 + pixld_a (lowbit * 8 / dst_r_bpp), dst_r_bpp, dst_r_basereg, DST_R +.else + add DST_R, DST_R, #lowbit +.endif + PF add PF_X, PF_X, #(lowbit * 8 / dst_w_bpp) + sub W, W, #(lowbit * 8 / dst_w_bpp) +1: +.endif +.endr + pixdeinterleave src_bpp, src_basereg + pixdeinterleave mask_bpp, mask_basereg + pixdeinterleave dst_r_bpp, dst_r_basereg + + process_pixblock_head + cache_preload 0, pixblock_size + cache_preload_simple + process_pixblock_tail + + pixinterleave dst_w_bpp, dst_w_basereg +.irp lowbit, 1, 2, 4, 8, 16 +.if (dst_w_bpp <= (lowbit * 8)) && ((lowbit * 8) < (pixblock_size * dst_w_bpp)) +.if lowbit < 16 /* we don't need more than 16-byte alignment */ + tst DST_W, #lowbit + beq 1f +.endif + pixst_a (lowbit * 8 / dst_w_bpp), dst_w_bpp, dst_w_basereg, DST_W +1: +.endif +.endr +.endif +2: +.endm + +/* + * Special code for processing up to (pixblock_size - 1) remaining + * trailing pixels. As SIMD processing performs operation on + * pixblock_size pixels, anything smaller than this has to be loaded + * and stored in a special way. Loading and storing of pixel data is + * performed in such a way that we fill some 'slots' in the NEON + * registers (some slots naturally are unused), then perform compositing + * operation as usual. In the end, the data is taken from these 'slots' + * and saved to memory. + * + * cache_preload_flag - allows to suppress prefetch if + * set to 0 + * dst_aligned_flag - selects whether destination buffer + * is aligned + */ +.macro process_trailing_pixels cache_preload_flag, \ + dst_aligned_flag, \ + process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head + tst W, #(pixblock_size - 1) + beq 2f +.irp chunk_size, 16, 8, 4, 2, 1 +.if pixblock_size > chunk_size + tst W, #chunk_size + beq 1f + pixld_src chunk_size, src_bpp, src_basereg, SRC + pixld chunk_size, mask_bpp, mask_basereg, MASK +.if dst_aligned_flag != 0 + pixld_a chunk_size, dst_r_bpp, dst_r_basereg, DST_R +.else + pixld chunk_size, dst_r_bpp, dst_r_basereg, DST_R +.endif +.if cache_preload_flag != 0 + PF add PF_X, PF_X, #chunk_size +.endif +1: +.endif +.endr + pixdeinterleave src_bpp, src_basereg + pixdeinterleave mask_bpp, mask_basereg + pixdeinterleave dst_r_bpp, dst_r_basereg + + process_pixblock_head +.if cache_preload_flag != 0 + cache_preload 0, pixblock_size + cache_preload_simple +.endif + process_pixblock_tail + pixinterleave dst_w_bpp, dst_w_basereg +.irp chunk_size, 16, 8, 4, 2, 1 +.if pixblock_size > chunk_size + tst W, #chunk_size + beq 1f +.if dst_aligned_flag != 0 + pixst_a chunk_size, dst_w_bpp, dst_w_basereg, DST_W +.else + pixst chunk_size, dst_w_bpp, dst_w_basereg, DST_W +.endif +1: +.endif +.endr +2: +.endm + +/* + * Macro, which performs all the needed operations to switch to the next + * scanline and start the next loop iteration unless all the scanlines + * are already processed. + */ +.macro advance_to_next_scanline start_of_loop_label +.if regs_shortage + ldrd W, [sp] /* load W and H (width and height) from stack */ +.else + mov W, ORIG_W +.endif + add DST_W, DST_W, DST_STRIDE, lsl #dst_bpp_shift +.if src_bpp != 0 + add SRC, SRC, SRC_STRIDE, lsl #src_bpp_shift +.endif +.if mask_bpp != 0 + add MASK, MASK, MASK_STRIDE, lsl #mask_bpp_shift +.endif +.if (dst_w_bpp != 24) + sub DST_W, DST_W, W, lsl #dst_bpp_shift +.endif +.if (src_bpp != 24) && (src_bpp != 0) + sub SRC, SRC, W, lsl #src_bpp_shift +.endif +.if (mask_bpp != 24) && (mask_bpp != 0) + sub MASK, MASK, W, lsl #mask_bpp_shift +.endif + subs H, H, #1 + mov DST_R, DST_W +.if regs_shortage + str H, [sp, #4] /* save updated height to stack */ +.endif + bge start_of_loop_label +.endm + +/* + * Registers are allocated in the following way by default: + * d0, d1, d2, d3 - reserved for loading source pixel data + * d4, d5, d6, d7 - reserved for loading destination pixel data + * d24, d25, d26, d27 - reserved for loading mask pixel data + * d28, d29, d30, d31 - final destination pixel data for writeback to memory + */ +.macro generate_composite_function fname, \ + src_bpp_, \ + mask_bpp_, \ + dst_w_bpp_, \ + flags, \ + pixblock_size_, \ + prefetch_distance, \ + init, \ + cleanup, \ + process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head, \ + dst_w_basereg_ = 28, \ + dst_r_basereg_ = 4, \ + src_basereg_ = 0, \ + mask_basereg_ = 24 + + pixman_asm_function fname + + push {r4-r12, lr} /* save all registers */ + +/* + * Select prefetch type for this function. If prefetch distance is + * set to 0 or one of the color formats is 24bpp, SIMPLE prefetch + * has to be used instead of ADVANCED. + */ + .set PREFETCH_TYPE_CURRENT, PREFETCH_TYPE_DEFAULT +.if prefetch_distance == 0 + .set PREFETCH_TYPE_CURRENT, PREFETCH_TYPE_NONE +.elseif (PREFETCH_TYPE_CURRENT > PREFETCH_TYPE_SIMPLE) && \ + ((src_bpp_ == 24) || (mask_bpp_ == 24) || (dst_w_bpp_ == 24)) + .set PREFETCH_TYPE_CURRENT, PREFETCH_TYPE_SIMPLE +.endif + +/* + * Make some macro arguments globally visible and accessible + * from other macros + */ + .set src_bpp, src_bpp_ + .set mask_bpp, mask_bpp_ + .set dst_w_bpp, dst_w_bpp_ + .set pixblock_size, pixblock_size_ + .set dst_w_basereg, dst_w_basereg_ + .set dst_r_basereg, dst_r_basereg_ + .set src_basereg, src_basereg_ + .set mask_basereg, mask_basereg_ + + .macro pixld_src x:vararg + pixld x + .endm + .macro fetch_src_pixblock + pixld_src pixblock_size, src_bpp, \ + (src_basereg - pixblock_size * src_bpp / 64), SRC + .endm +/* + * Assign symbolic names to registers + */ + W .req r0 /* width (is updated during processing) */ + H .req r1 /* height (is updated during processing) */ + DST_W .req r2 /* destination buffer pointer for writes */ + DST_STRIDE .req r3 /* destination image stride */ + SRC .req r4 /* source buffer pointer */ + SRC_STRIDE .req r5 /* source image stride */ + DST_R .req r6 /* destination buffer pointer for reads */ + + MASK .req r7 /* mask pointer */ + MASK_STRIDE .req r8 /* mask stride */ + + PF_CTL .req r9 /* combined lines counter and prefetch */ + /* distance increment counter */ + PF_X .req r10 /* pixel index in a scanline for current */ + /* pretetch position */ + PF_SRC .req r11 /* pointer to source scanline start */ + /* for prefetch purposes */ + PF_DST .req r12 /* pointer to destination scanline start */ + /* for prefetch purposes */ + PF_MASK .req r14 /* pointer to mask scanline start */ + /* for prefetch purposes */ +/* + * Check whether we have enough registers for all the local variables. + * If we don't have enough registers, original width and height are + * kept on top of stack (and 'regs_shortage' variable is set to indicate + * this for the rest of code). Even if there are enough registers, the + * allocation scheme may be a bit different depending on whether source + * or mask is not used. + */ +.if (PREFETCH_TYPE_CURRENT < PREFETCH_TYPE_ADVANCED) + ORIG_W .req r10 /* saved original width */ + DUMMY .req r12 /* temporary register */ + .set regs_shortage, 0 +.elseif mask_bpp == 0 + ORIG_W .req r7 /* saved original width */ + DUMMY .req r8 /* temporary register */ + .set regs_shortage, 0 +.elseif src_bpp == 0 + ORIG_W .req r4 /* saved original width */ + DUMMY .req r5 /* temporary register */ + .set regs_shortage, 0 +.else + ORIG_W .req r1 /* saved original width */ + DUMMY .req r1 /* temporary register */ + .set regs_shortage, 1 +.endif + + .set mask_bpp_shift, -1 +.if src_bpp == 32 + .set src_bpp_shift, 2 +.elseif src_bpp == 24 + .set src_bpp_shift, 0 +.elseif src_bpp == 16 + .set src_bpp_shift, 1 +.elseif src_bpp == 8 + .set src_bpp_shift, 0 +.elseif src_bpp == 0 + .set src_bpp_shift, -1 +.else + .error "requested src bpp (src_bpp) is not supported" +.endif +.if mask_bpp == 32 + .set mask_bpp_shift, 2 +.elseif mask_bpp == 24 + .set mask_bpp_shift, 0 +.elseif mask_bpp == 8 + .set mask_bpp_shift, 0 +.elseif mask_bpp == 0 + .set mask_bpp_shift, -1 +.else + .error "requested mask bpp (mask_bpp) is not supported" +.endif +.if dst_w_bpp == 32 + .set dst_bpp_shift, 2 +.elseif dst_w_bpp == 24 + .set dst_bpp_shift, 0 +.elseif dst_w_bpp == 16 + .set dst_bpp_shift, 1 +.elseif dst_w_bpp == 8 + .set dst_bpp_shift, 0 +.else + .error "requested dst bpp (dst_w_bpp) is not supported" +.endif + +.if (((flags) & FLAG_DST_READWRITE) != 0) + .set dst_r_bpp, dst_w_bpp +.else + .set dst_r_bpp, 0 +.endif +.if (((flags) & FLAG_DEINTERLEAVE_32BPP) != 0) + .set DEINTERLEAVE_32BPP_ENABLED, 1 +.else + .set DEINTERLEAVE_32BPP_ENABLED, 0 +.endif + +.if prefetch_distance < 0 || prefetch_distance > 15 + .error "invalid prefetch distance (prefetch_distance)" +.endif + +.if src_bpp > 0 + ldr SRC, [sp, #40] +.endif +.if mask_bpp > 0 + ldr MASK, [sp, #48] +.endif + PF mov PF_X, #0 +.if src_bpp > 0 + ldr SRC_STRIDE, [sp, #44] +.endif +.if mask_bpp > 0 + ldr MASK_STRIDE, [sp, #52] +.endif + mov DST_R, DST_W + +.if src_bpp == 24 + sub SRC_STRIDE, SRC_STRIDE, W + sub SRC_STRIDE, SRC_STRIDE, W, lsl #1 +.endif +.if mask_bpp == 24 + sub MASK_STRIDE, MASK_STRIDE, W + sub MASK_STRIDE, MASK_STRIDE, W, lsl #1 +.endif +.if dst_w_bpp == 24 + sub DST_STRIDE, DST_STRIDE, W + sub DST_STRIDE, DST_STRIDE, W, lsl #1 +.endif + +/* + * Setup advanced prefetcher initial state + */ + PF mov PF_SRC, SRC + PF mov PF_DST, DST_R + PF mov PF_MASK, MASK + /* PF_CTL = prefetch_distance | ((h - 1) << 4) */ + PF mov PF_CTL, H, lsl #4 + PF add PF_CTL, #(prefetch_distance - 0x10) + + init +.if regs_shortage + push {r0, r1} +.endif + subs H, H, #1 +.if regs_shortage + str H, [sp, #4] /* save updated height to stack */ +.else + mov ORIG_W, W +.endif + blt 9f + cmp W, #(pixblock_size * 2) + blt 8f +/* + * This is the start of the pipelined loop, which if optimized for + * long scanlines + */ +0: + ensure_destination_ptr_alignment process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head + + /* Implement "head (tail_head) ... (tail_head) tail" loop pattern */ + pixld_a pixblock_size, dst_r_bpp, \ + (dst_r_basereg - pixblock_size * dst_r_bpp / 64), DST_R + fetch_src_pixblock + pixld pixblock_size, mask_bpp, \ + (mask_basereg - pixblock_size * mask_bpp / 64), MASK + PF add PF_X, PF_X, #pixblock_size + process_pixblock_head + cache_preload 0, pixblock_size + cache_preload_simple + subs W, W, #(pixblock_size * 2) + blt 2f +1: + process_pixblock_tail_head + cache_preload_simple + subs W, W, #pixblock_size + bge 1b +2: + process_pixblock_tail + pixst_a pixblock_size, dst_w_bpp, \ + (dst_w_basereg - pixblock_size * dst_w_bpp / 64), DST_W + + /* Process the remaining trailing pixels in the scanline */ + process_trailing_pixels 1, 1, \ + process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head + advance_to_next_scanline 0b + +.if regs_shortage + pop {r0, r1} +.endif + cleanup + pop {r4-r12, pc} /* exit */ +/* + * This is the start of the loop, designed to process images with small width + * (less than pixblock_size * 2 pixels). In this case neither pipelining + * nor prefetch are used. + */ +8: + /* Process exactly pixblock_size pixels if needed */ + tst W, #pixblock_size + beq 1f + pixld pixblock_size, dst_r_bpp, \ + (dst_r_basereg - pixblock_size * dst_r_bpp / 64), DST_R + fetch_src_pixblock + pixld pixblock_size, mask_bpp, \ + (mask_basereg - pixblock_size * mask_bpp / 64), MASK + process_pixblock_head + process_pixblock_tail + pixst pixblock_size, dst_w_bpp, \ + (dst_w_basereg - pixblock_size * dst_w_bpp / 64), DST_W +1: + /* Process the remaining trailing pixels in the scanline */ + process_trailing_pixels 0, 0, \ + process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head + advance_to_next_scanline 8b +9: +.if regs_shortage + pop {r0, r1} +.endif + cleanup + pop {r4-r12, pc} /* exit */ + + .purgem fetch_src_pixblock + .purgem pixld_src + + .unreq SRC + .unreq MASK + .unreq DST_R + .unreq DST_W + .unreq ORIG_W + .unreq W + .unreq H + .unreq SRC_STRIDE + .unreq DST_STRIDE + .unreq MASK_STRIDE + .unreq PF_CTL + .unreq PF_X + .unreq PF_SRC + .unreq PF_DST + .unreq PF_MASK + .unreq DUMMY + .endfunc +.endm + +/* + * A simplified variant of function generation template for a single + * scanline processing (for implementing pixman combine functions) + */ +.macro generate_composite_function_scanline use_nearest_scaling, \ + fname, \ + src_bpp_, \ + mask_bpp_, \ + dst_w_bpp_, \ + flags, \ + pixblock_size_, \ + init, \ + cleanup, \ + process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head, \ + dst_w_basereg_ = 28, \ + dst_r_basereg_ = 4, \ + src_basereg_ = 0, \ + mask_basereg_ = 24 + + pixman_asm_function fname + + .set PREFETCH_TYPE_CURRENT, PREFETCH_TYPE_NONE +/* + * Make some macro arguments globally visible and accessible + * from other macros + */ + .set src_bpp, src_bpp_ + .set mask_bpp, mask_bpp_ + .set dst_w_bpp, dst_w_bpp_ + .set pixblock_size, pixblock_size_ + .set dst_w_basereg, dst_w_basereg_ + .set dst_r_basereg, dst_r_basereg_ + .set src_basereg, src_basereg_ + .set mask_basereg, mask_basereg_ + +.if use_nearest_scaling != 0 + /* + * Assign symbolic names to registers for nearest scaling + */ + W .req r0 + DST_W .req r1 + SRC .req r2 + VX .req r3 + UNIT_X .req ip + MASK .req lr + TMP1 .req r4 + TMP2 .req r5 + DST_R .req r6 + SRC_WIDTH_FIXED .req r7 + + .macro pixld_src x:vararg + pixld_s x + .endm + + ldr UNIT_X, [sp] + push {r4-r8, lr} + ldr SRC_WIDTH_FIXED, [sp, #(24 + 4)] + .if mask_bpp != 0 + ldr MASK, [sp, #(24 + 8)] + .endif +.else + /* + * Assign symbolic names to registers + */ + W .req r0 /* width (is updated during processing) */ + DST_W .req r1 /* destination buffer pointer for writes */ + SRC .req r2 /* source buffer pointer */ + DST_R .req ip /* destination buffer pointer for reads */ + MASK .req r3 /* mask pointer */ + + .macro pixld_src x:vararg + pixld x + .endm +.endif + +.if (((flags) & FLAG_DST_READWRITE) != 0) + .set dst_r_bpp, dst_w_bpp +.else + .set dst_r_bpp, 0 +.endif +.if (((flags) & FLAG_DEINTERLEAVE_32BPP) != 0) + .set DEINTERLEAVE_32BPP_ENABLED, 1 +.else + .set DEINTERLEAVE_32BPP_ENABLED, 0 +.endif + + .macro fetch_src_pixblock + pixld_src pixblock_size, src_bpp, \ + (src_basereg - pixblock_size * src_bpp / 64), SRC + .endm + + init + mov DST_R, DST_W + + cmp W, #pixblock_size + blt 8f + + ensure_destination_ptr_alignment process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head + + subs W, W, #pixblock_size + blt 7f + + /* Implement "head (tail_head) ... (tail_head) tail" loop pattern */ + pixld_a pixblock_size, dst_r_bpp, \ + (dst_r_basereg - pixblock_size * dst_r_bpp / 64), DST_R + fetch_src_pixblock + pixld pixblock_size, mask_bpp, \ + (mask_basereg - pixblock_size * mask_bpp / 64), MASK + process_pixblock_head + subs W, W, #pixblock_size + blt 2f +1: + process_pixblock_tail_head + subs W, W, #pixblock_size + bge 1b +2: + process_pixblock_tail + pixst_a pixblock_size, dst_w_bpp, \ + (dst_w_basereg - pixblock_size * dst_w_bpp / 64), DST_W +7: + /* Process the remaining trailing pixels in the scanline (dst aligned) */ + process_trailing_pixels 0, 1, \ + process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head + + cleanup +.if use_nearest_scaling != 0 + pop {r4-r8, pc} /* exit */ +.else + bx lr /* exit */ +.endif +8: + /* Process the remaining trailing pixels in the scanline (dst unaligned) */ + process_trailing_pixels 0, 0, \ + process_pixblock_head, \ + process_pixblock_tail, \ + process_pixblock_tail_head + + cleanup + +.if use_nearest_scaling != 0 + pop {r4-r8, pc} /* exit */ + + .unreq DST_R + .unreq SRC + .unreq W + .unreq VX + .unreq UNIT_X + .unreq TMP1 + .unreq TMP2 + .unreq DST_W + .unreq MASK + .unreq SRC_WIDTH_FIXED + +.else + bx lr /* exit */ + + .unreq SRC + .unreq MASK + .unreq DST_R + .unreq DST_W + .unreq W +.endif + + .purgem fetch_src_pixblock + .purgem pixld_src + + .endfunc +.endm + +.macro generate_composite_function_single_scanline x:vararg + generate_composite_function_scanline 0, x +.endm + +.macro generate_composite_function_nearest_scanline x:vararg + generate_composite_function_scanline 1, x +.endm + +/* Default prologue/epilogue, nothing special needs to be done */ + +.macro default_init +.endm + +.macro default_cleanup +.endm + +/* + * Prologue/epilogue variant which additionally saves/restores d8-d15 + * registers (they need to be saved/restored by callee according to ABI). + * This is required if the code needs to use all the NEON registers. + */ + +.macro default_init_need_all_regs + vpush {d8-d15} +.endm + +.macro default_cleanup_need_all_regs + vpop {d8-d15} +.endm + +/******************************************************************************/ diff --git a/external/rlottie/src/vector/stb/CMakeLists.txt b/external/rlottie/src/vector/stb/CMakeLists.txt new file mode 100644 index 000000000..4861e993c --- /dev/null +++ b/external/rlottie/src/vector/stb/CMakeLists.txt @@ -0,0 +1,29 @@ +if(LOTTIE_MODULE) + add_library(rlottie-image-loader SHARED + stb_image.cpp + ) + target_compile_options(rlottie-image-loader PRIVATE + -fvisibility=hidden + ) + + get_filename_component(LOTTIE_MODULE_FILENAME ${LOTTIE_MODULE_PATH} NAME) + get_filename_component(LOTTIE_MODULE_DIR ${LOTTIE_MODULE_PATH} DIRECTORY) + if (NOT LOTTIE_MODULE_DIR) + set(LOTTIE_MODULE_DIR ${LIB_INSTALL_DIR}) + endif() + + set_target_properties(rlottie-image-loader PROPERTIES + DEFINE_SYMBOL RLOTTIE_BUILD + PREFIX "" + SUFFIX "" + OUTPUT_NAME ${LOTTIE_MODULE_FILENAME} + ) + install(TARGETS rlottie-image-loader + LIBRARY DESTINATION ${LOTTIE_MODULE_DIR} + ) +else() + target_sources(rlottie + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/stb_image.cpp" + ) +endif() diff --git a/external/rlottie/src/vector/stb/meson.build b/external/rlottie/src/vector/stb/meson.build new file mode 100644 index 000000000..49be07630 --- /dev/null +++ b/external/rlottie/src/vector/stb/meson.build @@ -0,0 +1,22 @@ + +source_file = ['stb_image.cpp'] + +if get_option('module') == true + rlottie_image_loader_dir = get_option('moduledir') != '' ? get_option('moduledir') : get_option('libdir') + rlottie_image_loader_lib = shared_library('rlottie-image-loader', + source_file, + include_directories : [include_directories('.'), config_dir], + install : true, + install_dir : rlottie_image_loader_dir, + cpp_args : compiler_flags, + gnu_symbol_visibility : 'hidden', + ) + cc = meson.get_compiler('cpp') + stb_dep = cc.find_library('dl', required : false) +else + stb_dep = declare_dependency( include_directories : include_directories('.'), + sources : source_file + ) +endif + + diff --git a/external/rlottie/src/vector/stb/stb_image.cpp b/external/rlottie/src/vector/stb/stb_image.cpp new file mode 100644 index 000000000..2c4933e81 --- /dev/null +++ b/external/rlottie/src/vector/stb/stb_image.cpp @@ -0,0 +1,59 @@ +/* + * configure stb_image about + * the image we will support + */ +#define STB_IMAGE_IMPLEMENTATION + +#define STBI_ONLY_JPEG +#define STBI_ONLY_PNG +#define STBI_NO_HDR +#define STBI_NO_LINEAR +#define STBI_NO_GIF +#define STBI_NO_PIC + +#include "stb_image.h" + +#if defined _WIN32 || defined __CYGWIN__ + #ifdef RLOTTIE_BUILD + #define RLOTTIE_API __declspec(dllexport) + #else + #define RLOTTIE_API __declspec(dllimport) + #endif +#else + #ifdef RLOTTIE_BUILD + #define RLOTTIE_API __attribute__ ((visibility ("default"))) + #else + #define RLOTTIE_API + #endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * exported function wrapper from the library + */ + +RLOTTIE_API unsigned char *lottie_image_load(char const *filename, int *x, + int *y, int *comp, int req_comp) +{ + return stbi_load(filename, x, y, comp, req_comp); +} + +RLOTTIE_API unsigned char *lottie_image_load_from_data(const char *imageData, + int len, int *x, int *y, + int *comp, int req_comp) +{ + unsigned char *data = (unsigned char *)imageData; + return stbi_load_from_memory(data, len, x, y, comp, req_comp); +} + +RLOTTIE_API void lottie_image_free(unsigned char *data) +{ + stbi_image_free(data); +} + +#ifdef __cplusplus +} +#endif diff --git a/external/rlottie/src/vector/stb/stb_image.h b/external/rlottie/src/vector/stb/stb_image.h new file mode 100644 index 000000000..ae0c1e529 --- /dev/null +++ b/external/rlottie/src/vector/stb/stb_image.h @@ -0,0 +1,7481 @@ +/* stb_image - v2.19 - public domain image loader - http://nothings.org/stb + no warranty implied; use at your own risk + + Do this: + #define STB_IMAGE_IMPLEMENTATION + before you include this file in *one* C or C++ file to create the implementation. + + // i.e. it should look like this: + #include ... + #include ... + #include ... + #define STB_IMAGE_IMPLEMENTATION + #include "stb_image.h" + + You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. + And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free + + + QUICK NOTES: + Primarily of interest to game developers and other people who can + avoid problematic images and only need the trivial interface + + JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) + PNG 1/2/4/8/16-bit-per-channel + + TGA (not sure what subset, if a subset) + BMP non-1bpp, non-RLE + PSD (composited view only, no extra channels, 8/16 bit-per-channel) + + GIF (*comp always reports as 4-channel) + HDR (radiance rgbE format) + PIC (Softimage PIC) + PNM (PPM and PGM binary only) + + Animated GIF still needs a proper API, but here's one way to do it: + http://gist.github.com/urraka/685d9a6340b26b830d49 + + - decode from memory or through FILE (define STBI_NO_STDIO to remove code) + - decode from arbitrary I/O callbacks + - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) + + Full documentation under "DOCUMENTATION" below. + + +LICENSE + + See end of file for license information. + +RECENT REVISION HISTORY: + + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings + 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes + 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 + RGB-format JPEG; remove white matting in PSD; + allocate large structures on the stack; + correct channel count for PNG & BMP + 2.10 (2016-01-22) avoid warning introduced in 2.09 + 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED + + See end of file for full revision history. + + + ============================ Contributors ========================= + + Image formats Extensions, features + Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) + Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) + Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) + Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) + Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) + Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) + Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) + github:urraka (animated gif) Junggon Kim (PNM comments) + Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) + socks-the-fox (16-bit PNG) + Jeremy Sawicki (handle all ImageNet JPGs) + Optimizations & bugfixes Mikhail Morozov (1-bit BMP) + Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) + Arseny Kapoulkine + John-Mark Allen + + Bug & warning fixes + Marc LeBlanc David Woo Guillaume George Martins Mozeiko + Christpher Lloyd Jerry Jansson Joseph Thomson Phil Jordan + Dave Moore Roy Eltham Hayaki Saito Nathan Reed + Won Chun Luke Graham Johan Duparc Nick Verigakis + the Horde3D community Thomas Ruf Ronny Chevalier github:rlyeh + Janez Zemva John Bartholomew Michal Cichon github:romigrou + Jonathan Blow Ken Hamada Tero Hanninen github:svdijk + Laurent Gomila Cort Stratton Sergio Gonzalez github:snagar + Aruelien Pocheville Thibault Reuille Cass Everitt github:Zelex + Ryamond Barbiero Paul Du Bois Engin Manap github:grim210 + Aldo Culquicondor Philipp Wiesemann Dale Weiler github:sammyhw + Oriol Ferrer Mesia Josh Tobin Matthew Gregan github:phprus + Julian Raschke Gregory Mullen Baldur Karlsson github:poppolopoppo + Christian Floisand Kevin Schmidt github:darealshinji + Blazej Dariusz Roszkowski github:Michaelangel007 +*/ + +#ifndef STBI_INCLUDE_STB_IMAGE_H +#define STBI_INCLUDE_STB_IMAGE_H + +// DOCUMENTATION +// +// Limitations: +// - no 12-bit-per-channel JPEG +// - no JPEGs with arithmetic coding +// - GIF always returns *comp=4 +// +// Basic usage (see HDR discussion below for HDR usage): +// int x,y,n; +// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); +// // ... process data if not NULL ... +// // ... x = width, y = height, n = # 8-bit components per pixel ... +// // ... replace '0' with '1'..'4' to force that many components per pixel +// // ... but 'n' will always be the number that it would have been if you said 0 +// stbi_image_free(data) +// +// Standard parameters: +// int *x -- outputs image width in pixels +// int *y -- outputs image height in pixels +// int *channels_in_file -- outputs # of image components in image file +// int desired_channels -- if non-zero, # of image components requested in result +// +// The return value from an image loader is an 'unsigned char *' which points +// to the pixel data, or NULL on an allocation failure or if the image is +// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, +// with each pixel consisting of N interleaved 8-bit components; the first +// pixel pointed to is top-left-most in the image. There is no padding between +// image scanlines or between pixels, regardless of format. The number of +// components N is 'desired_channels' if desired_channels is non-zero, or +// *channels_in_file otherwise. If desired_channels is non-zero, +// *channels_in_file has the number of components that _would_ have been +// output otherwise. E.g. if you set desired_channels to 4, you will always +// get RGBA output, but you can check *channels_in_file to see if it's trivially +// opaque because e.g. there were only 3 channels in the source image. +// +// An output image with N components has the following components interleaved +// in this order in each pixel: +// +// N=#comp components +// 1 grey +// 2 grey, alpha +// 3 red, green, blue +// 4 red, green, blue, alpha +// +// If image loading fails for any reason, the return value will be NULL, +// and *x, *y, *channels_in_file will be unchanged. The function +// stbi_failure_reason() can be queried for an extremely brief, end-user +// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS +// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly +// more user-friendly ones. +// +// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. +// +// =========================================================================== +// +// Philosophy +// +// stb libraries are designed with the following priorities: +// +// 1. easy to use +// 2. easy to maintain +// 3. good performance +// +// Sometimes I let "good performance" creep up in priority over "easy to maintain", +// and for best performance I may provide less-easy-to-use APIs that give higher +// performance, in addition to the easy to use ones. Nevertheless, it's important +// to keep in mind that from the standpoint of you, a client of this library, +// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. +// +// Some secondary priorities arise directly from the first two, some of which +// make more explicit reasons why performance can't be emphasized. +// +// - Portable ("ease of use") +// - Small source code footprint ("easy to maintain") +// - No dependencies ("ease of use") +// +// =========================================================================== +// +// I/O callbacks +// +// I/O callbacks allow you to read from arbitrary sources, like packaged +// files or some other source. Data read from callbacks are processed +// through a small internal buffer (currently 128 bytes) to try to reduce +// overhead. +// +// The three functions you must define are "read" (reads some bytes of data), +// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). +// +// =========================================================================== +// +// SIMD support +// +// The JPEG decoder will try to automatically use SIMD kernels on x86 when +// supported by the compiler. For ARM Neon support, you must explicitly +// request it. +// +// (The old do-it-yourself SIMD API is no longer supported in the current +// code.) +// +// On x86, SSE2 will automatically be used when available based on a run-time +// test; if not, the generic C versions are used as a fall-back. On ARM targets, +// the typical path is to have separate builds for NEON and non-NEON devices +// (at least this is true for iOS and Android). Therefore, the NEON support is +// toggled by a build flag: define STBI_NEON to get NEON loops. +// +// If for some reason you do not want to use any of SIMD code, or if +// you have issues compiling it, you can disable it entirely by +// defining STBI_NO_SIMD. +// +// =========================================================================== +// +// HDR image support (disable by defining STBI_NO_HDR) +// +// stb_image now supports loading HDR images in general, and currently +// the Radiance .HDR file format, although the support is provided +// generically. You can still load any file through the existing interface; +// if you attempt to load an HDR file, it will be automatically remapped to +// LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; +// both of these constants can be reconfigured through this interface: +// +// stbi_hdr_to_ldr_gamma(2.2f); +// stbi_hdr_to_ldr_scale(1.0f); +// +// (note, do not use _inverse_ constants; stbi_image will invert them +// appropriately). +// +// Additionally, there is a new, parallel interface for loading files as +// (linear) floats to preserve the full dynamic range: +// +// float *data = stbi_loadf(filename, &x, &y, &n, 0); +// +// If you load LDR images through this interface, those images will +// be promoted to floating point values, run through the inverse of +// constants corresponding to the above: +// +// stbi_ldr_to_hdr_scale(1.0f); +// stbi_ldr_to_hdr_gamma(2.2f); +// +// Finally, given a filename (or an open file or memory block--see header +// file for details) containing image data, you can query for the "most +// appropriate" interface to use (that is, whether the image is HDR or +// not), using: +// +// stbi_is_hdr(char *filename); +// +// =========================================================================== +// +// iPhone PNG support: +// +// By default we convert iphone-formatted PNGs back to RGB, even though +// they are internally encoded differently. You can disable this conversion +// by by calling stbi_convert_iphone_png_to_rgb(0), in which case +// you will always just get the native iphone "format" through (which +// is BGR stored in RGB). +// +// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per +// pixel to remove any premultiplied alpha *only* if the image file explicitly +// says there's premultiplied data (currently only happens in iPhone images, +// and only if iPhone convert-to-rgb processing is on). +// +// =========================================================================== +// +// ADDITIONAL CONFIGURATION +// +// - You can suppress implementation of any of the decoders to reduce +// your code footprint by #defining one or more of the following +// symbols before creating the implementation. +// +// STBI_NO_JPEG +// STBI_NO_PNG +// STBI_NO_BMP +// STBI_NO_PSD +// STBI_NO_TGA +// STBI_NO_GIF +// STBI_NO_HDR +// STBI_NO_PIC +// STBI_NO_PNM (.ppm and .pgm) +// +// - You can request *only* certain decoders and suppress all other ones +// (this will be more forward-compatible, as addition of new decoders +// doesn't require you to disable them explicitly): +// +// STBI_ONLY_JPEG +// STBI_ONLY_PNG +// STBI_ONLY_BMP +// STBI_ONLY_PSD +// STBI_ONLY_TGA +// STBI_ONLY_GIF +// STBI_ONLY_HDR +// STBI_ONLY_PIC +// STBI_ONLY_PNM (.ppm and .pgm) +// +// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still +// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB +// + + +#ifndef STBI_NO_STDIO +#include +#endif // STBI_NO_STDIO + +#define STBI_VERSION 1 + +enum +{ + STBI_default = 0, // only used for desired_channels + + STBI_grey = 1, + STBI_grey_alpha = 2, + STBI_rgb = 3, + STBI_rgb_alpha = 4 +}; + +typedef unsigned char stbi_uc; +typedef unsigned short stbi_us; + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef STB_IMAGE_STATIC +#define STBIDEF static +#else +#define STBIDEF extern +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// PRIMARY API - works on images of any type +// + +// +// load image by filename, open file, or memory buffer +// + +typedef struct +{ + int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read + void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative + int (*eof) (void *user); // returns nonzero if we are at end of file/data +} stbi_io_callbacks; + +//////////////////////////////////// +// +// 8-bits-per-channel interface +// + +STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels); +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +#endif + + +#ifndef STBI_NO_STDIO +STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +// for stbi_load_from_file, file pointer is left pointing immediately after image +#endif + +//////////////////////////////////// +// +// 16-bits-per-channel interface +// + +STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif + +//////////////////////////////////// +// +// float-per-channel interface +// +#ifndef STBI_NO_LINEAR + STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + + #ifndef STBI_NO_STDIO + STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); + #endif +#endif + +#ifndef STBI_NO_HDR + STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); + STBIDEF void stbi_hdr_to_ldr_scale(float scale); +#endif // STBI_NO_HDR + +#ifndef STBI_NO_LINEAR + STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); + STBIDEF void stbi_ldr_to_hdr_scale(float scale); +#endif // STBI_NO_LINEAR + +// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename); +STBIDEF int stbi_is_hdr_from_file(FILE *f); +#endif // STBI_NO_STDIO + + +// get a VERY brief reason for failure +// NOT THREADSAFE +STBIDEF const char *stbi_failure_reason (void); + +// free the loaded image -- this is just free() +STBIDEF void stbi_image_free (void *retval_from_stbi_load); + +// get image dimensions & components without fully decoding +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit (char const *filename); +STBIDEF int stbi_is_16_bit_from_file(FILE *f); +#endif + + + +// for image formats that explicitly notate that they have premultiplied alpha, +// we just return the colors as stored in the file. set this flag to force +// unpremultiplication. results are undefined if the unpremultiply overflow. +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); + +// indicate whether we should process iphone images back to canonical format, +// or just pass them through "as-is" +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); + +// flip the image vertically, so the first pixel in the output array is the bottom left +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); + +// ZLIB client - used by PNG, available for other purposes + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); +STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + +STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + + +#ifdef __cplusplus +} +#endif + +// +// +//// end header file ///////////////////////////////////////////////////// +#endif // STBI_INCLUDE_STB_IMAGE_H + +#ifdef STB_IMAGE_IMPLEMENTATION + +#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \ + || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \ + || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \ + || defined(STBI_ONLY_ZLIB) + #ifndef STBI_ONLY_JPEG + #define STBI_NO_JPEG + #endif + #ifndef STBI_ONLY_PNG + #define STBI_NO_PNG + #endif + #ifndef STBI_ONLY_BMP + #define STBI_NO_BMP + #endif + #ifndef STBI_ONLY_PSD + #define STBI_NO_PSD + #endif + #ifndef STBI_ONLY_TGA + #define STBI_NO_TGA + #endif + #ifndef STBI_ONLY_GIF + #define STBI_NO_GIF + #endif + #ifndef STBI_ONLY_HDR + #define STBI_NO_HDR + #endif + #ifndef STBI_ONLY_PIC + #define STBI_NO_PIC + #endif + #ifndef STBI_ONLY_PNM + #define STBI_NO_PNM + #endif +#endif + +#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) +#define STBI_NO_ZLIB +#endif + + +#include +#include // ptrdiff_t on osx +#include +#include +#include + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +#include // ldexp, pow +#endif + +#ifndef STBI_NO_STDIO +#include +#endif + +#ifndef STBI_ASSERT +#include +#define STBI_ASSERT(x) assert(x) +#endif + + +#ifndef _MSC_VER + #ifdef __cplusplus + #define stbi_inline inline + #else + #define stbi_inline + #endif +#else + #define stbi_inline __forceinline +#endif + + +#ifdef _MSC_VER +typedef unsigned short stbi__uint16; +typedef signed short stbi__int16; +typedef unsigned int stbi__uint32; +typedef signed int stbi__int32; +#else +#include +typedef uint16_t stbi__uint16; +typedef int16_t stbi__int16; +typedef uint32_t stbi__uint32; +typedef int32_t stbi__int32; +#endif + +// should produce compiler error if size is wrong +typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1]; + +#ifdef _MSC_VER +#define STBI_NOTUSED(v) (void)(v) +#else +#define STBI_NOTUSED(v) (void)sizeof(v) +#endif + +#ifdef _MSC_VER +#define STBI_HAS_LROTL +#endif + +#ifdef STBI_HAS_LROTL + #define stbi_lrot(x,y) _lrotl(x,y) +#else + #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (32 - (y)))) +#endif + +#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) +// ok +#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) +// ok +#else +#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." +#endif + +#ifndef STBI_MALLOC +#define STBI_MALLOC(sz) malloc(sz) +#define STBI_REALLOC(p,newsz) realloc(p,newsz) +#define STBI_FREE(p) free(p) +#endif + +#ifndef STBI_REALLOC_SIZED +#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz) +#endif + +// x86/x64 detection +#if defined(__x86_64__) || defined(_M_X64) +#define STBI__X64_TARGET +#elif defined(__i386) || defined(_M_IX86) +#define STBI__X86_TARGET +#endif + +#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) +// gcc doesn't support sse2 intrinsics unless you compile with -msse2, +// which in turn means it gets to use SSE2 everywhere. This is unfortunate, +// but previous attempts to provide the SSE2 functions with runtime +// detection caused numerous issues. The way architecture extensions are +// exposed in GCC/Clang is, sadly, not really suited for one-file libs. +// New behavior: if compiled with -msse2, we use SSE2 without any +// detection; if not, we don't use it at all. +#define STBI_NO_SIMD +#endif + +#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) +// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET +// +// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the +// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. +// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not +// simultaneously enabling "-mstackrealign". +// +// See https://github.com/nothings/stb/issues/81 for more information. +// +// So default to no SSE2 on 32-bit MinGW. If you've read this far and added +// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. +#define STBI_NO_SIMD +#endif + +#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) +#define STBI_SSE2 +#include + +#ifdef _MSC_VER + +#if _MSC_VER >= 1400 // not VC6 +#include // __cpuid +static int stbi__cpuid3(void) +{ + int info[4]; + __cpuid(info,1); + return info[3]; +} +#else +static int stbi__cpuid3(void) +{ + int res; + __asm { + mov eax,1 + cpuid + mov res,edx + } + return res; +} +#endif + +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name + +static int stbi__sse2_available(void) +{ + int info3 = stbi__cpuid3(); + return ((info3 >> 26) & 1) != 0; +} +#else // assume GCC-style if not VC++ +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) + +static int stbi__sse2_available(void) +{ + // If we're even attempting to compile this on GCC/Clang, that means + // -msse2 is on, which means the compiler is allowed to use SSE2 + // instructions at will, and so are we. + return 1; +} +#endif +#endif + +// ARM NEON +#if defined(STBI_NO_SIMD) && defined(STBI_NEON) +#undef STBI_NEON +#endif + +#ifdef STBI_NEON +#include +// assume GCC or Clang on ARM targets +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) +#endif + +#ifndef STBI_SIMD_ALIGN +#define STBI_SIMD_ALIGN(type, name) type name +#endif + +/////////////////////////////////////////////// +// +// stbi__context struct and start_xxx functions + +// stbi__context structure is our basic context used by all images, so it +// contains all the IO context, plus some basic image information +typedef struct +{ + stbi__uint32 img_x, img_y; + int img_n, img_out_n; + + stbi_io_callbacks io; + void *io_user_data; + + int read_from_callbacks; + int buflen; + stbi_uc buffer_start[128]; + + stbi_uc *img_buffer, *img_buffer_end; + stbi_uc *img_buffer_original, *img_buffer_original_end; +} stbi__context; + + +static void stbi__refill_buffer(stbi__context *s); + +// initialize a memory-decode context +static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) +{ + s->io.read = NULL; + s->read_from_callbacks = 0; + s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer; + s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len; +} + +// initialize a callback-based context +static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) +{ + s->io = *c; + s->io_user_data = user; + s->buflen = sizeof(s->buffer_start); + s->read_from_callbacks = 1; + s->img_buffer_original = s->buffer_start; + stbi__refill_buffer(s); + s->img_buffer_original_end = s->img_buffer_end; +} + +// this is not threadsafe +static const char *stbi__g_failure_reason; + +STBIDEF const char *stbi_failure_reason(void) +{ + return stbi__g_failure_reason; +} + +static int stbi__err(const char *str) +{ + stbi__g_failure_reason = str; + return 0; +} + +static void *stbi__malloc(size_t size) +{ + return STBI_MALLOC(size); +} + + +#ifndef STBI_NO_STDIO + +static int stbi__stdio_read(void *user, char *data, int size) +{ + return (int) fread(data,1,size,(FILE*) user); +} + +static void stbi__stdio_skip(void *user, int n) +{ + if (fseek((FILE*) user, n, SEEK_CUR) == -1) + stbi__err("fseek() error"); +} + +static int stbi__stdio_eof(void *user) +{ + return feof((FILE*) user); +} + +static stbi_io_callbacks stbi__stdio_callbacks = +{ + stbi__stdio_read, + stbi__stdio_skip, + stbi__stdio_eof, +}; + +static void stbi__start_file(stbi__context *s, FILE *f) +{ + stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f); +} + +//static void stop_file(stbi__context *s) { } + +#endif // !STBI_NO_STDIO + +static void stbi__rewind(stbi__context *s) +{ + // conceptually rewind SHOULD rewind to the beginning of the stream, + // but we just rewind to the beginning of the initial buffer, because + // we only use it after doing 'test', which only ever looks at at most 92 bytes + s->img_buffer = s->img_buffer_original; + s->img_buffer_end = s->img_buffer_original_end; +} + +enum +{ + STBI_ORDER_RGB, + STBI_ORDER_BGR +}; + +typedef struct +{ + int bits_per_channel; + int num_channels; + int channel_order; +} stbi__result_info; + +#ifndef STBI_NO_JPEG +static int stbi__jpeg_test(stbi__context *s); +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNG +static int stbi__png_test(stbi__context *s); +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__png_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_BMP +static int stbi__bmp_test(stbi__context *s); +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_TGA +static int stbi__tga_test(stbi__context *s); +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s); +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__psd_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_HDR +static int stbi__hdr_test(stbi__context *s); +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_test(stbi__context *s); +static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_GIF +static int stbi__gif_test(stbi__context *s); +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNM +static int stbi__pnm_test(stbi__context *s); +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +// stb_image uses ints pervasively, including for offset calculations. +// therefore the largest decoded image size we can support with the +// current code, even on 64-bit targets, is INT_MAX. this is not a +// significant limitation for the intended use case. +// +// we do, however, need to make sure our size calculations don't +// overflow. hence a few helper functions for size calculations that +// multiply integers together, making sure that they're non-negative +// and no overflow occurs. + +// return 1 if the sum is valid, 0 on overflow. +// negative terms are considered invalid. +static int stbi__addsizes_valid(int a, int b) +{ + if (b < 0) return 0; + // now 0 <= b <= INT_MAX, hence also + // 0 <= INT_MAX - b <= INTMAX. + // And "a + b <= INT_MAX" (which might overflow) is the + // same as a <= INT_MAX - b (no overflow) + return a <= INT_MAX - b; +} + +// returns 1 if the product is valid, 0 on overflow. +// negative factors are considered invalid. +static int stbi__mul2sizes_valid(int a, int b) +{ + if (a < 0 || b < 0) return 0; + if (b == 0) return 1; // mul-by-0 is always safe + // portable way to check for no overflows in a*b + return a <= INT_MAX/b; +} + +// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow +static int stbi__mad2sizes_valid(int a, int b, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add); +} + +// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow +static int stbi__mad3sizes_valid(int a, int b, int c, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__addsizes_valid(a*b*c, add); +} + +// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); +} +#endif + +// mallocs with size overflow checking +static void *stbi__malloc_mad2(int a, int b, int add) +{ + if (!stbi__mad2sizes_valid(a, b, add)) return NULL; + return stbi__malloc(a*b + add); +} + +static void *stbi__malloc_mad3(int a, int b, int c, int add) +{ + if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL; + return stbi__malloc(a*b*c + add); +} + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) +{ + if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; + return stbi__malloc(a*b*c*d + add); +} +#endif + +// stbi__err - error +// stbi__errpf - error returning pointer to float +// stbi__errpuc - error returning pointer to unsigned char + +#ifdef STBI_NO_FAILURE_STRINGS + #define stbi__err(x,y) 0 +#elif defined(STBI_FAILURE_USERMSG) + #define stbi__err(x,y) stbi__err(y) +#else + #define stbi__err(x,y) stbi__err(x) +#endif + +#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL)) +#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL)) + +STBIDEF void stbi_image_free(void *retval_from_stbi_load) +{ + STBI_FREE(retval_from_stbi_load); +} + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); +#endif + +#ifndef STBI_NO_HDR +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); +#endif + +static int stbi__vertically_flip_on_load = 0; + +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load = flag_true_if_should_flip; +} + +static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int /*bpc*/) +{ + memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields + ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed + ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order + ri->num_channels = 0; + + #ifndef STBI_NO_JPEG + if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PNG + if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_BMP + if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_GIF + if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PSD + if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc); + #endif + #ifndef STBI_NO_PIC + if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PNM + if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri); + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri); + return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } + #endif + + #ifndef STBI_NO_TGA + // test tga last because it's a crappy test! + if (stbi__tga_test(s)) + return stbi__tga_load(s,x,y,comp,req_comp, ri); + #endif + + return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); +} + +static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi_uc *reduced; + + reduced = (stbi_uc *) stbi__malloc(img_len); + if (reduced == NULL) return stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling + + STBI_FREE(orig); + return reduced; +} + +static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi__uint16 *enlarged; + + enlarged = (stbi__uint16 *) stbi__malloc(img_len*2); + if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff + + STBI_FREE(orig); + return enlarged; +} + +static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) +{ + int row; + size_t bytes_per_row = (size_t)w * bytes_per_pixel; + stbi_uc temp[2048]; + stbi_uc *bytes = (stbi_uc *)image; + + for (row = 0; row < (h>>1); row++) { + stbi_uc *row0 = bytes + row*bytes_per_row; + stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row; + // swap row0 with row1 + size_t bytes_left = bytes_per_row; + while (bytes_left) { + size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); + memcpy(temp, row0, bytes_copy); + memcpy(row0, row1, bytes_copy); + memcpy(row1, temp, bytes_copy); + row0 += bytes_copy; + row1 += bytes_copy; + bytes_left -= bytes_copy; + } + } +} + +#ifndef STBI_NO_GIF +static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) +{ + int slice; + int slice_size = w * h * bytes_per_pixel; + + stbi_uc *bytes = (stbi_uc *)image; + for (slice = 0; slice < z; ++slice) { + stbi__vertical_flip(bytes, w, h, bytes_per_pixel); + bytes += slice_size; + } +} +#endif + +static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); + + if (result == NULL) + return NULL; + + if (ri.bits_per_channel != 8) { + STBI_ASSERT(ri.bits_per_channel == 16); + result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 8; + } + + // @TODO: move stbi__convert_format to here + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); + } + + return (unsigned char *) result; +} + +static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); + + if (result == NULL) + return NULL; + + if (ri.bits_per_channel != 16) { + STBI_ASSERT(ri.bits_per_channel == 8); + result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 16; + } + + // @TODO: move stbi__convert_format16 to here + // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); + } + + return (stbi__uint16 *) result; +} + +#if !defined(STBI_NO_HDR) || !defined(STBI_NO_LINEAR) +static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) +{ + if (stbi__vertically_flip_on_load && result != NULL) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); + } +} +#endif + +#ifndef STBI_NO_STDIO + +static FILE *stbi__fopen(char const *filename, char const *mode) +{ + FILE *f; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != fopen_s(&f, filename, mode)) + f=0; +#else + f = fopen(filename, mode); +#endif + return f; +} + + +STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + unsigned char *result; + if (!f) return stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + if (fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR) == -1) { + stbi_image_free(result); + return stbi__errpuc("fseek() error", "File Seek Fail"); + } + } + return result; +} + +STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__uint16 *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + if (fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR) == -1) { + stbi_image_free(result); + return (stbi__uint16 *) stbi__errpuc("fseek() error", "File Seek Fail"); + } + } + return result; +} + +STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + stbi__uint16 *result; + if (!f) return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file_16(f,x,y,comp,req_comp); + fclose(f); + return result; +} + + +#endif //!STBI_NO_STDIO + +STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_mem(&s,buffer,len); + + result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); + if (stbi__vertically_flip_on_load) { + stbi__vertical_flip_slices( result, *x, *y, *z, *comp ); + } + + return result; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + stbi__result_info ri; + float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri); + if (hdr_data) + stbi__float_postprocess(hdr_data,x,y,comp,req_comp); + return hdr_data; + } + #endif + data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); + if (data) + return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); + return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); +} + +STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_STDIO +STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + float *result; + FILE *f = stbi__fopen(filename, "rb"); + if (!f) return stbi__errpf("can't fopen", "Unable to open file"); + result = stbi_loadf_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_file(&s,f); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} +#endif // !STBI_NO_STDIO + +#endif // !STBI_NO_LINEAR + +// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is +// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always +// reports false! + +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(buffer); + STBI_NOTUSED(len); + return 0; + #endif +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result=0; + if (f) { + result = stbi_is_hdr_from_file(f); + fclose(f); + } + return result; +} + +STBIDEF int stbi_is_hdr_from_file(FILE *f) +{ + #ifndef STBI_NO_HDR + long pos = ftell(f); + int res; + stbi__context s; + stbi__start_file(&s,f); + res = stbi__hdr_test(&s); + if (fseek(f, pos, SEEK_SET) == -1) return stbi__err("fseek() error", "File Seek Fail"); + return res; + #else + STBI_NOTUSED(f); + return 0; + #endif +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(clbk); + STBI_NOTUSED(user); + return 0; + #endif +} + +#ifndef STBI_NO_LINEAR +static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f; + +STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } +STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } +#endif + +static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f; + +STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; } +STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; } + + +////////////////////////////////////////////////////////////////////////////// +// +// Common code used by all image loaders +// + +enum +{ + STBI__SCAN_load=0, + STBI__SCAN_type, + STBI__SCAN_header +}; + +static void stbi__refill_buffer(stbi__context *s) +{ + int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen); + if (n == 0) { + // at end of file, treat same as if from memory, but need to handle case + // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file + s->read_from_callbacks = 0; + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start+1; + *s->img_buffer = 0; + } else { + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start + n; + } +} + +stbi_inline static stbi_uc stbi__get8(stbi__context *s) +{ + if (s->img_buffer < s->img_buffer_end) + return *s->img_buffer++; + if (s->read_from_callbacks) { + stbi__refill_buffer(s); + return *s->img_buffer++; + } + return 0; +} + +stbi_inline static int stbi__at_eof(stbi__context *s) +{ + if (s->io.read) { + if (!(s->io.eof)(s->io_user_data)) return 0; + // if feof() is true, check if buffer = end + // special case: we've only got the special 0 character at the end + if (s->read_from_callbacks == 0) return 1; + } + + return s->img_buffer >= s->img_buffer_end; +} + +static void stbi__skip(stbi__context *s, int n) +{ + if (n < 0) { + s->img_buffer = s->img_buffer_end; + return; + } + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + s->img_buffer = s->img_buffer_end; + (s->io.skip)(s->io_user_data, n - blen); + return; + } + } + s->img_buffer += n; +} + +static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) +{ + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + int res, count; + + memcpy(buffer, s->img_buffer, blen); + + count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen); + res = (count == (n-blen)); + s->img_buffer = s->img_buffer_end; + return res; + } + } + + if (s->img_buffer+n <= s->img_buffer_end) { + memcpy(buffer, s->img_buffer, n); + s->img_buffer += n; + return 1; + } else + return 0; +} + +static int stbi__get16be(stbi__context *s) +{ + int z = stbi__get8(s); + return (z << 8) + stbi__get8(s); +} + +static stbi__uint32 stbi__get32be(stbi__context *s) +{ + stbi__uint32 z = stbi__get16be(s); + return (z << 16) + stbi__get16be(s); +} + +#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) +// nothing +#else +static int stbi__get16le(stbi__context *s) +{ + int z = stbi__get8(s); + return z + (stbi__get8(s) << 8); +} +#endif + +#ifndef STBI_NO_BMP +static stbi__uint32 stbi__get32le(stbi__context *s) +{ + stbi__uint32 z = stbi__get16le(s); + return z + (stbi__get16le(s) << 16); +} +#endif + +#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings + + +////////////////////////////////////////////////////////////////////////////// +// +// generic converter from built-in img_n to req_comp +// individual types do this automatically as much as possible (e.g. jpeg +// does all cases internally since it needs to colorspace convert anyway, +// and it never has alpha, so very few cases ). png can automatically +// interleave an alpha=255 channel, but falls back to this for other cases +// +// assume data buffer is malloced, so malloc a new one and free that one +// only failure mode is malloc failing + +static stbi_uc stbi__compute_y(int r, int g, int b) +{ + return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8); +} + +static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + unsigned char *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0); + if (good == NULL) { + STBI_FREE(data); + return stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + unsigned char *src = data + j * x * img_n ; + unsigned char *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0], dest[1]=255; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = 255; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; } break; + default: STBI_ASSERT(0); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} + +static stbi__uint16 stbi__compute_y_16(int r, int g, int b) +{ + return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); +} + +static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + stbi__uint16 *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2); + if (good == NULL) { + STBI_FREE(data); + return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + stbi__uint16 *src = data + j * x * img_n ; + stbi__uint16 *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0], dest[1]=0xffff; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=0xffff; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=0xffff; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]), dest[1] = 0xffff; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]), dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; } break; + default: STBI_ASSERT(0); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) +{ + int i,k,n; + float *output; + if (!data) return NULL; + output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale); + } + if (k < comp) output[i*comp + k] = data[i*comp+k]/255.0f; + } + STBI_FREE(data); + return output; +} +#endif + +#ifndef STBI_NO_HDR +#define stbi__float2int(x) ((int) (x)) +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) +{ + int i,k,n; + stbi_uc *output; + if (!data) return NULL; + output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + if (k < comp) { + float z = data[i*comp+k] * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + } + STBI_FREE(data); + return output; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// "baseline" JPEG/JFIF decoder +// +// simple implementation +// - doesn't support delayed output of y-dimension +// - simple interface (only one output format: 8-bit interleaved RGB) +// - doesn't try to recover corrupt jpegs +// - doesn't allow partial loading, loading multiple at once +// - still fast on x86 (copying globals into locals doesn't help x86) +// - allocates lots of intermediate memory (full size of all components) +// - non-interleaved case requires this anyway +// - allows good upsampling (see next) +// high-quality +// - upsampled channels are bilinearly interpolated, even across blocks +// - quality integer IDCT derived from IJG's 'slow' +// performance +// - fast huffman; reasonable integer IDCT +// - some SIMD kernels for common paths on targets with SSE2/NEON +// - uses a lot of intermediate memory, could cache poorly + +#ifndef STBI_NO_JPEG + +// huffman decoding acceleration +#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache + +typedef struct +{ + stbi_uc fast[1 << FAST_BITS]; + // weirdly, repacking this into AoS is a 10% speed loss, instead of a win + stbi__uint16 code[256]; + stbi_uc values[256]; + stbi_uc size[257]; + unsigned int maxcode[18]; + int delta[17]; // old 'firstsymbol' - old 'firstcode' +} stbi__huffman; + +typedef struct +{ + stbi__context *s; + stbi__huffman huff_dc[4]; + stbi__huffman huff_ac[4]; + stbi__uint16 dequant[4][64]; + stbi__int16 fast_ac[4][1 << FAST_BITS]; + +// sizes for components, interleaved MCUs + int img_h_max, img_v_max; + int img_mcu_x, img_mcu_y; + int img_mcu_w, img_mcu_h; + +// definition of jpeg image component + struct + { + int id; + int h,v; + int tq; + int hd,ha; + int dc_pred; + + int x,y,w2,h2; + stbi_uc *data; + void *raw_data, *raw_coeff; + stbi_uc *linebuf; + short *coeff; // progressive only + int coeff_w, coeff_h; // number of 8x8 coefficient blocks + } img_comp[4]; + + stbi__uint32 code_buffer; // jpeg entropy-coded buffer + int code_bits; // number of valid bits + unsigned char marker; // marker seen while filling entropy buffer + int nomore; // flag if we saw a marker so must stop + + int progressive; + int spec_start; + int spec_end; + int succ_high; + int succ_low; + int eob_run; + int jfif; + int app14_color_transform; // Adobe APP14 tag + int rgb; + + int scan_n, order[4]; + int restart_interval, todo; + +// kernels + void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); + void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); + stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); +} stbi__jpeg; + +static int stbi__build_huffman(stbi__huffman *h, int *count) +{ + int i,j,k=0; + unsigned int code; + // build size list for each symbol (from JPEG spec) + for (i=0; i < 16; ++i) + for (j=0; j < count[i]; ++j) + h->size[k++] = (stbi_uc) (i+1); + h->size[k] = 0; + + // compute actual symbols (from jpeg spec) + code = 0; + k = 0; + for(j=1; j <= 16; ++j) { + // compute delta to add to code to compute symbol id + h->delta[j] = k - code; + if (h->size[k] == j) { + while (h->size[k] == j) + h->code[k++] = (stbi__uint16) (code++); + if (code-1 >= (1u << j)) return stbi__err("bad code lengths","Corrupt JPEG"); + } + // compute largest code + 1 for this size, preshifted as needed later + h->maxcode[j] = code << (16-j); + code <<= 1; + } + h->maxcode[j] = 0xffffffff; + + // build non-spec acceleration table; 255 is flag for not-accelerated + memset(h->fast, 255, 1 << FAST_BITS); + for (i=0; i < k; ++i) { + int s = h->size[i]; + if (s <= FAST_BITS) { + int c = h->code[i] << (FAST_BITS-s); + int m = 1 << (FAST_BITS-s); + for (j=0; j < m; ++j) { + h->fast[c+j] = (stbi_uc) i; + } + } + } + return 1; +} + +// build a table that decodes both magnitude and value of small ACs in +// one go. +static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) +{ + int i; + for (i=0; i < (1 << FAST_BITS); ++i) { + stbi_uc fast = h->fast[i]; + fast_ac[i] = 0; + if (fast < 255) { + int rs = h->values[fast]; + int run = (rs >> 4) & 15; + int magbits = rs & 15; + int len = h->size[fast]; + + if (magbits && len + magbits <= FAST_BITS) { + // magnitude code followed by receive_extend code + int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); + int m = 1 << (magbits - 1); + if (k < m) k += (~0U << magbits) + 1; + // if the result is small enough, we can fit it in fast_ac table + if (k >= -128 && k <= 127) + fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits)); + } + } + } +} + +static void stbi__grow_buffer_unsafe(stbi__jpeg *j) +{ + do { + unsigned int b = j->nomore ? 0 : stbi__get8(j->s); + if (b == 0xff) { + int c = stbi__get8(j->s); + while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes + if (c != 0) { + j->marker = (unsigned char) c; + j->nomore = 1; + return; + } + } + j->code_buffer |= b << (24 - j->code_bits); + j->code_bits += 8; + } while (j->code_bits <= 24); +} + +// (1 << n) - 1 +static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; + +// decode a jpeg huffman value from the bitstream +stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) +{ + unsigned int temp; + int c,k; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + // look at the top FAST_BITS and determine what symbol ID it is, + // if the code is <= FAST_BITS + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + k = h->fast[c]; + if (k < 255) { + int s = h->size[k]; + if (s > j->code_bits) + return -1; + j->code_buffer <<= s; + j->code_bits -= s; + return h->values[k]; + } + + // naive test is to shift the code_buffer down so k bits are + // valid, then test against maxcode. To speed this up, we've + // preshifted maxcode left so that it has (16-k) 0s at the + // end; in other words, regardless of the number of bits, it + // wants to be compared against something shifted to have 16; + // that way we don't need to shift inside the loop. + temp = j->code_buffer >> 16; + for (k=FAST_BITS+1 ; ; ++k) + if (temp < h->maxcode[k]) + break; + if (k == 17) { + // error! code not found + j->code_bits -= 16; + return -1; + } + + if (k > j->code_bits) + return -1; + + // convert the huffman code to the symbol id + c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; + STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); + + // convert the id to a symbol + j->code_bits -= k; + j->code_buffer <<= k; + return h->values[c]; +} + +// bias[n] = (-1<code_bits < n) stbi__grow_buffer_unsafe(j); + + sgn = (stbi__int32)j->code_buffer >> 31; // sign bit is always in MSB + k = stbi_lrot(j->code_buffer, n); + STBI_ASSERT(n >= 0 && n < (int) (sizeof(stbi__bmask)/sizeof(*stbi__bmask))); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k + (stbi__jbias[n] & ~sgn); +} + +// get some unsigned bits +stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) +{ + unsigned int k; + if (j->code_bits < n) stbi__grow_buffer_unsafe(j); + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k; +} + +stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) +{ + unsigned int k; + if (j->code_bits < 1) stbi__grow_buffer_unsafe(j); + k = j->code_buffer; + j->code_buffer <<= 1; + --j->code_bits; + return k & 0x80000000; +} + +// given a value that's at position X in the zigzag stream, +// where does it appear in the 8x8 matrix coded as row-major? +static const stbi_uc stbi__jpeg_dezigzag[64+15] = +{ + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + // let corrupt input sample past end + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63 +}; + +// decode one 64-entry block-- +static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) +{ + int diff,dc,k; + int t; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + + // 0 all the ac values now so we can do it 32-bits at a time + memset(data,0,64*sizeof(data[0])); + + diff = t ? stbi__extend_receive(j, t) : 0; + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + data[0] = (short) (dc * dequant[0]); + + // decode AC components, see JPEG spec + k = 1; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + j->code_buffer <<= s; + j->code_bits -= s; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * dequant[zig]); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (rs != 0xf0) break; // end block + k += 16; + } else { + k += r; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]); + } + } + } while (k < 64); + return 1; +} + +static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) +{ + int diff,dc; + int t; + if (j->spec_end != 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + if (j->succ_high == 0) { + // first scan for DC coefficient, must be first + memset(data,0,64*sizeof(data[0])); // 0 all the ac values now + t = stbi__jpeg_huff_decode(j, hdc); + diff = t ? stbi__extend_receive(j, t) : 0; + + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + data[0] = (short) (dc << j->succ_low); + } else { + // refinement scan for DC coefficient + if (stbi__jpeg_get_bit(j)) + data[0] += (short) (1 << j->succ_low); + } + return 1; +} + +// @OPTIMIZE: store non-zigzagged during the decode passes, +// and only de-zigzag when dequantizing +static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) +{ + int k; + if (j->spec_start == 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->succ_high == 0) { + int shift = j->succ_low; + + if (j->eob_run) { + --j->eob_run; + return 1; + } + + k = j->spec_start; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + j->code_buffer <<= s; + j->code_bits -= s; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) << shift); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r); + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + --j->eob_run; + break; + } + k += 16; + } else { + k += r; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) << shift); + } + } + } while (k <= j->spec_end); + } else { + // refinement scan for these AC coefficients + + short bit = (short) (1 << j->succ_low); + + if (j->eob_run) { + --j->eob_run; + for (k = j->spec_start; k <= j->spec_end; ++k) { + short *p = &data[stbi__jpeg_dezigzag[k]]; + if (*p != 0) + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } + } else { + k = j->spec_start; + do { + int r,s; + int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r) - 1; + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + r = 64; // force end of block + } else { + // r=15 s=0 should write 16 0s, so we just do + // a run of 15 0s and then write s (which is 0), + // so we don't have to do anything special here + } + } else { + if (s != 1) return stbi__err("bad huffman code", "Corrupt JPEG"); + // sign bit + if (stbi__jpeg_get_bit(j)) + s = bit; + else + s = -bit; + } + + // advance by r + while (k <= j->spec_end) { + short *p = &data[stbi__jpeg_dezigzag[k++]]; + if (*p != 0) { + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } else { + if (r == 0) { + *p = (short) s; + break; + } + --r; + } + } + } while (k <= j->spec_end); + } + } + return 1; +} + +// take a -128..127 value and stbi__clamp it and convert to 0..255 +stbi_inline static stbi_uc stbi__clamp(int x) +{ + // trick to use a single test to catch both cases + if ((unsigned int) x > 255) { + if (x < 0) return 0; + if (x > 255) return 255; + } + return (stbi_uc) x; +} + +#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5))) +#define stbi__fsh(x) ((x) * 4096) + +// derived from jidctint -- DCT_ISLOW +#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ + int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ + p2 = s2; \ + p3 = s6; \ + p1 = (p2+p3) * stbi__f2f(0.5411961f); \ + t2 = p1 + p3*stbi__f2f(-1.847759065f); \ + t3 = p1 + p2*stbi__f2f( 0.765366865f); \ + p2 = s0; \ + p3 = s4; \ + t0 = stbi__fsh(p2+p3); \ + t1 = stbi__fsh(p2-p3); \ + x0 = t0+t3; \ + x3 = t0-t3; \ + x1 = t1+t2; \ + x2 = t1-t2; \ + t0 = s7; \ + t1 = s5; \ + t2 = s3; \ + t3 = s1; \ + p3 = t0+t2; \ + p4 = t1+t3; \ + p1 = t0+t3; \ + p2 = t1+t2; \ + p5 = (p3+p4)*stbi__f2f( 1.175875602f); \ + t0 = t0*stbi__f2f( 0.298631336f); \ + t1 = t1*stbi__f2f( 2.053119869f); \ + t2 = t2*stbi__f2f( 3.072711026f); \ + t3 = t3*stbi__f2f( 1.501321110f); \ + p1 = p5 + p1*stbi__f2f(-0.899976223f); \ + p2 = p5 + p2*stbi__f2f(-2.562915447f); \ + p3 = p3*stbi__f2f(-1.961570560f); \ + p4 = p4*stbi__f2f(-0.390180644f); \ + t3 += p1+p4; \ + t2 += p2+p3; \ + t1 += p2+p4; \ + t0 += p1+p3; + +static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) +{ + int i,val[64],*v=val; + stbi_uc *o; + short *d = data; + + // columns + for (i=0; i < 8; ++i,++d, ++v) { + // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing + if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 + && d[40]==0 && d[48]==0 && d[56]==0) { + // no shortcut 0 seconds + // (1|2|3|4|5|6|7)==0 0 seconds + // all separate -0.047 seconds + // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds + int dcterm = d[0]*4; + v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; + } else { + STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56]) + // constants scaled things up by 1<<12; let's bring them back + // down, but keep 2 extra bits of precision + x0 += 512; x1 += 512; x2 += 512; x3 += 512; + v[ 0] = (x0+t3) >> 10; + v[56] = (x0-t3) >> 10; + v[ 8] = (x1+t2) >> 10; + v[48] = (x1-t2) >> 10; + v[16] = (x2+t1) >> 10; + v[40] = (x2-t1) >> 10; + v[24] = (x3+t0) >> 10; + v[32] = (x3-t0) >> 10; + } + } + + for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { + // no fast case since the first 1D IDCT spread components out + STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) + // constants scaled things up by 1<<12, plus we had 1<<2 from first + // loop, plus horizontal and vertical each scale by sqrt(8) so together + // we've got an extra 1<<3, so 1<<17 total we need to remove. + // so we want to round that, which means adding 0.5 * 1<<17, + // aka 65536. Also, we'll end up with -128 to 127 that we want + // to encode as 0..255 by adding 128, so we'll add that before the shift + x0 += 65536 + (128<<17); + x1 += 65536 + (128<<17); + x2 += 65536 + (128<<17); + x3 += 65536 + (128<<17); + // tried computing the shifts into temps, or'ing the temps to see + // if any were out of range, but that was slower + o[0] = stbi__clamp((x0+t3) >> 17); + o[7] = stbi__clamp((x0-t3) >> 17); + o[1] = stbi__clamp((x1+t2) >> 17); + o[6] = stbi__clamp((x1-t2) >> 17); + o[2] = stbi__clamp((x2+t1) >> 17); + o[5] = stbi__clamp((x2-t1) >> 17); + o[3] = stbi__clamp((x3+t0) >> 17); + o[4] = stbi__clamp((x3-t0) >> 17); + } +} + +#ifdef STBI_SSE2 +// sse2 integer IDCT. not the fastest possible implementation but it +// produces bit-identical results to the generic C version so it's +// fully "transparent". +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + // This is constructed to match our regular (generic) integer IDCT exactly. + __m128i row0, row1, row2, row3, row4, row5, row6, row7; + __m128i tmp; + + // dot product constant: even elems=x, odd elems=y + #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y)) + + // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) + // out(1) = c1[even]*x + c1[odd]*y + #define dct_rot(out0,out1, x,y,c0,c1) \ + __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \ + __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \ + __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ + __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ + __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ + __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) + + // out = in << 12 (in 16-bit, out 32-bit) + #define dct_widen(out, in) \ + __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ + __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) + + // wide add + #define dct_wadd(out, a, b) \ + __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_add_epi32(a##_h, b##_h) + + // wide sub + #define dct_wsub(out, a, b) \ + __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) + + // butterfly a/b, add bias, then shift by "s" and pack + #define dct_bfly32o(out0, out1, a,b,bias,s) \ + { \ + __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ + __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ + dct_wadd(sum, abiased, b); \ + dct_wsub(dif, abiased, b); \ + out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ + out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ + } + + // 8-bit interleave step (for transposes) + #define dct_interleave8(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi8(a, b); \ + b = _mm_unpackhi_epi8(tmp, b) + + // 16-bit interleave step (for transposes) + #define dct_interleave16(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi16(a, b); \ + b = _mm_unpackhi_epi16(tmp, b) + + #define dct_pass(bias,shift) \ + { \ + /* even part */ \ + dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \ + __m128i sum04 = _mm_add_epi16(row0, row4); \ + __m128i dif04 = _mm_sub_epi16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \ + dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \ + __m128i sum17 = _mm_add_epi16(row1, row7); \ + __m128i sum35 = _mm_add_epi16(row3, row5); \ + dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \ + dct_wadd(x4, y0o, y4o); \ + dct_wadd(x5, y1o, y5o); \ + dct_wadd(x6, y2o, y5o); \ + dct_wadd(x7, y3o, y4o); \ + dct_bfly32o(row0,row7, x0,x7,bias,shift); \ + dct_bfly32o(row1,row6, x1,x6,bias,shift); \ + dct_bfly32o(row2,row5, x2,x5,bias,shift); \ + dct_bfly32o(row3,row4, x3,x4,bias,shift); \ + } + + __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); + __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f)); + __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); + __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); + __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f)); + __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f)); + __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f)); + __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f)); + + // rounding biases in column/row passes, see stbi__idct_block for explanation. + __m128i bias_0 = _mm_set1_epi32(512); + __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17)); + + // load + row0 = _mm_load_si128((const __m128i *) (data + 0*8)); + row1 = _mm_load_si128((const __m128i *) (data + 1*8)); + row2 = _mm_load_si128((const __m128i *) (data + 2*8)); + row3 = _mm_load_si128((const __m128i *) (data + 3*8)); + row4 = _mm_load_si128((const __m128i *) (data + 4*8)); + row5 = _mm_load_si128((const __m128i *) (data + 5*8)); + row6 = _mm_load_si128((const __m128i *) (data + 6*8)); + row7 = _mm_load_si128((const __m128i *) (data + 7*8)); + + // column pass + dct_pass(bias_0, 10); + + { + // 16bit 8x8 transpose pass 1 + dct_interleave16(row0, row4); + dct_interleave16(row1, row5); + dct_interleave16(row2, row6); + dct_interleave16(row3, row7); + + // transpose pass 2 + dct_interleave16(row0, row2); + dct_interleave16(row1, row3); + dct_interleave16(row4, row6); + dct_interleave16(row5, row7); + + // transpose pass 3 + dct_interleave16(row0, row1); + dct_interleave16(row2, row3); + dct_interleave16(row4, row5); + dct_interleave16(row6, row7); + } + + // row pass + dct_pass(bias_1, 17); + + { + // pack + __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 + __m128i p1 = _mm_packus_epi16(row2, row3); + __m128i p2 = _mm_packus_epi16(row4, row5); + __m128i p3 = _mm_packus_epi16(row6, row7); + + // 8bit 8x8 transpose pass 1 + dct_interleave8(p0, p2); // a0e0a1e1... + dct_interleave8(p1, p3); // c0g0c1g1... + + // transpose pass 2 + dct_interleave8(p0, p1); // a0c0e0g0... + dct_interleave8(p2, p3); // b0d0f0h0... + + // transpose pass 3 + dct_interleave8(p0, p2); // a0b0c0d0... + dct_interleave8(p1, p3); // a4b4c4d4... + + // store + _mm_storel_epi64((__m128i *) out, p0); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p2); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p1); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p3); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e)); + } + +#undef dct_const +#undef dct_rot +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_interleave8 +#undef dct_interleave16 +#undef dct_pass +} + +#endif // STBI_SSE2 + +#ifdef STBI_NEON + +// NEON integer IDCT. should produce bit-identical +// results to the generic C version. +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; + + int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); + int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); + int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f)); + int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f)); + int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); + int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); + int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); + int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); + int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f)); + int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f)); + int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f)); + int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f)); + +#define dct_long_mul(out, inq, coeff) \ + int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) + +#define dct_long_mac(out, acc, inq, coeff) \ + int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) + +#define dct_widen(out, inq) \ + int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ + int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) + +// wide add +#define dct_wadd(out, a, b) \ + int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vaddq_s32(a##_h, b##_h) + +// wide sub +#define dct_wsub(out, a, b) \ + int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vsubq_s32(a##_h, b##_h) + +// butterfly a/b, then shift using "shiftop" by "s" and pack +#define dct_bfly32o(out0,out1, a,b,shiftop,s) \ + { \ + dct_wadd(sum, a, b); \ + dct_wsub(dif, a, b); \ + out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ + out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ + } + +#define dct_pass(shiftop, shift) \ + { \ + /* even part */ \ + int16x8_t sum26 = vaddq_s16(row2, row6); \ + dct_long_mul(p1e, sum26, rot0_0); \ + dct_long_mac(t2e, p1e, row6, rot0_1); \ + dct_long_mac(t3e, p1e, row2, rot0_2); \ + int16x8_t sum04 = vaddq_s16(row0, row4); \ + int16x8_t dif04 = vsubq_s16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + int16x8_t sum15 = vaddq_s16(row1, row5); \ + int16x8_t sum17 = vaddq_s16(row1, row7); \ + int16x8_t sum35 = vaddq_s16(row3, row5); \ + int16x8_t sum37 = vaddq_s16(row3, row7); \ + int16x8_t sumodd = vaddq_s16(sum17, sum35); \ + dct_long_mul(p5o, sumodd, rot1_0); \ + dct_long_mac(p1o, p5o, sum17, rot1_1); \ + dct_long_mac(p2o, p5o, sum35, rot1_2); \ + dct_long_mul(p3o, sum37, rot2_0); \ + dct_long_mul(p4o, sum15, rot2_1); \ + dct_wadd(sump13o, p1o, p3o); \ + dct_wadd(sump24o, p2o, p4o); \ + dct_wadd(sump23o, p2o, p3o); \ + dct_wadd(sump14o, p1o, p4o); \ + dct_long_mac(x4, sump13o, row7, rot3_0); \ + dct_long_mac(x5, sump24o, row5, rot3_1); \ + dct_long_mac(x6, sump23o, row3, rot3_2); \ + dct_long_mac(x7, sump14o, row1, rot3_3); \ + dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \ + dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \ + dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \ + dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \ + } + + // load + row0 = vld1q_s16(data + 0*8); + row1 = vld1q_s16(data + 1*8); + row2 = vld1q_s16(data + 2*8); + row3 = vld1q_s16(data + 3*8); + row4 = vld1q_s16(data + 4*8); + row5 = vld1q_s16(data + 5*8); + row6 = vld1q_s16(data + 6*8); + row7 = vld1q_s16(data + 7*8); + + // add DC bias + row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); + + // column pass + dct_pass(vrshrn_n_s32, 10); + + // 16bit 8x8 transpose + { +// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. +// whether compilers actually get this is another story, sadly. +#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); } +#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); } + + // pass 1 + dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 + dct_trn16(row2, row3); + dct_trn16(row4, row5); + dct_trn16(row6, row7); + + // pass 2 + dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 + dct_trn32(row1, row3); + dct_trn32(row4, row6); + dct_trn32(row5, row7); + + // pass 3 + dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 + dct_trn64(row1, row5); + dct_trn64(row2, row6); + dct_trn64(row3, row7); + +#undef dct_trn16 +#undef dct_trn32 +#undef dct_trn64 + } + + // row pass + // vrshrn_n_s32 only supports shifts up to 16, we need + // 17. so do a non-rounding shift of 16 first then follow + // up with a rounding shift by 1. + dct_pass(vshrn_n_s32, 16); + + { + // pack and round + uint8x8_t p0 = vqrshrun_n_s16(row0, 1); + uint8x8_t p1 = vqrshrun_n_s16(row1, 1); + uint8x8_t p2 = vqrshrun_n_s16(row2, 1); + uint8x8_t p3 = vqrshrun_n_s16(row3, 1); + uint8x8_t p4 = vqrshrun_n_s16(row4, 1); + uint8x8_t p5 = vqrshrun_n_s16(row5, 1); + uint8x8_t p6 = vqrshrun_n_s16(row6, 1); + uint8x8_t p7 = vqrshrun_n_s16(row7, 1); + + // again, these can translate into one instruction, but often don't. +#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); } +#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); } + + // sadly can't use interleaved stores here since we only write + // 8 bytes to each scan line! + + // 8x8 8-bit transpose pass 1 + dct_trn8_8(p0, p1); + dct_trn8_8(p2, p3); + dct_trn8_8(p4, p5); + dct_trn8_8(p6, p7); + + // pass 2 + dct_trn8_16(p0, p2); + dct_trn8_16(p1, p3); + dct_trn8_16(p4, p6); + dct_trn8_16(p5, p7); + + // pass 3 + dct_trn8_32(p0, p4); + dct_trn8_32(p1, p5); + dct_trn8_32(p2, p6); + dct_trn8_32(p3, p7); + + // store + vst1_u8(out, p0); out += out_stride; + vst1_u8(out, p1); out += out_stride; + vst1_u8(out, p2); out += out_stride; + vst1_u8(out, p3); out += out_stride; + vst1_u8(out, p4); out += out_stride; + vst1_u8(out, p5); out += out_stride; + vst1_u8(out, p6); out += out_stride; + vst1_u8(out, p7); + +#undef dct_trn8_8 +#undef dct_trn8_16 +#undef dct_trn8_32 + } + +#undef dct_long_mul +#undef dct_long_mac +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_pass +} + +#endif // STBI_NEON + +#define STBI__MARKER_none 0xff +// if there's a pending marker from the entropy stream, return that +// otherwise, fetch from the stream and get a marker. if there's no +// marker, return 0xff, which is never a valid marker value +static stbi_uc stbi__get_marker(stbi__jpeg *j) +{ + stbi_uc x; + if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; } + x = stbi__get8(j->s); + if (x != 0xff) return STBI__MARKER_none; + while (x == 0xff) + x = stbi__get8(j->s); // consume repeated 0xff fill bytes + return x; +} + +// in each scan, we'll have scan_n components, and the order +// of the components is specified by order[] +#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) + +// after a restart interval, stbi__jpeg_reset the entropy decoder and +// the dc prediction +static void stbi__jpeg_reset(stbi__jpeg *j) +{ + j->code_bits = 0; + j->code_buffer = 0; + j->nomore = 0; + j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; + j->marker = STBI__MARKER_none; + j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; + j->eob_run = 0; + // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, + // since we don't even allow 1<<30 pixels +} + +static int stbi__parse_entropy_coded_data(stbi__jpeg *z) +{ + stbi__jpeg_reset(z); + if (!z->progressive) { + if (z->scan_n == 1) { + int i,j; + STBI_SIMD_ALIGN(short, data[64]); + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + STBI_SIMD_ALIGN(short, data[64]); + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x)*8; + int y2 = (j*z->img_comp[n].v + y)*8; + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data); + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } else { + if (z->scan_n == 1) { + int i,j; + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + if (z->spec_start == 0) { + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } else { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])) + return 0; + } + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x); + int y2 = (j*z->img_comp[n].v + y); + short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } +} + +static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) +{ + int i; + for (i=0; i < 64; ++i) + data[i] *= dequant[i]; +} + +static void stbi__jpeg_finish(stbi__jpeg *z) +{ + if (z->progressive) { + // dequantize and idct the data + int i,j,n; + for (n=0; n < z->s->img_n; ++n) { + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + } + } + } + } +} + +static int stbi__process_marker(stbi__jpeg *z, int m) +{ + int L; + switch (m) { + case STBI__MARKER_none: // no marker found + return stbi__err("expected marker","Corrupt JPEG"); + + case 0xDD: // DRI - specify restart interval + if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG"); + z->restart_interval = stbi__get16be(z->s); + return 1; + + case 0xDB: // DQT - define quantization table + L = stbi__get16be(z->s)-2; + while (L > 0) { + int q = stbi__get8(z->s); + int p = q >> 4, sixteen = (p != 0); + int t = q & 15,i; + if (p != 0 && p != 1) return stbi__err("bad DQT type","Corrupt JPEG"); + if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG"); + + for (i=0; i < 64; ++i) + z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); + L -= (sixteen ? 129 : 65); + } + return L==0; + + case 0xC4: // DHT - define huffman table + L = stbi__get16be(z->s)-2; + while (L > 0) { + stbi_uc *v; + int sizes[16],i,n=0; + int q = stbi__get8(z->s); + int tc = q >> 4; + int th = q & 15; + if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG"); + for (i=0; i < 16; ++i) { + sizes[i] = stbi__get8(z->s); + n += sizes[i]; + } + L -= 17; + if (tc == 0) { + if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0; + v = z->huff_dc[th].values; + } else { + if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0; + v = z->huff_ac[th].values; + } + for (i=0; i < n; ++i) + v[i] = stbi__get8(z->s); + if (tc != 0) + stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); + L -= n; + } + return L==0; + } + + // check for comment block or APP blocks + if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { + L = stbi__get16be(z->s); + if (L < 2) { + if (m == 0xFE) + return stbi__err("bad COM len","Corrupt JPEG"); + else + return stbi__err("bad APP len","Corrupt JPEG"); + } + L -= 2; + + if (m == 0xE0 && L >= 5) { // JFIF APP0 segment + static const unsigned char tag[5] = {'J','F','I','F','\0'}; + int ok = 1; + int i; + for (i=0; i < 5; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 5; + if (ok) + z->jfif = 1; + } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment + static const unsigned char tag[6] = {'A','d','o','b','e','\0'}; + int ok = 1; + int i; + for (i=0; i < 6; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 6; + if (ok) { + stbi__get8(z->s); // version + stbi__get16be(z->s); // flags0 + stbi__get16be(z->s); // flags1 + z->app14_color_transform = stbi__get8(z->s); // color transform + L -= 6; + } + } + + stbi__skip(z->s, L); + return 1; + } + + return stbi__err("unknown marker","Corrupt JPEG"); +} + +// after we see SOS +static int stbi__process_scan_header(stbi__jpeg *z) +{ + int i; + int Ls = stbi__get16be(z->s); + z->scan_n = stbi__get8(z->s); + if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err("bad SOS component count","Corrupt JPEG"); + if (Ls != 6+2*z->scan_n) return stbi__err("bad SOS len","Corrupt JPEG"); + for (i=0; i < z->scan_n; ++i) { + int id = stbi__get8(z->s), which; + int q = stbi__get8(z->s); + for (which = 0; which < z->s->img_n; ++which) + if (z->img_comp[which].id == id) + break; + if (which == z->s->img_n) return 0; // no match + z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3) return stbi__err("bad DC huff","Corrupt JPEG"); + z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3) return stbi__err("bad AC huff","Corrupt JPEG"); + z->order[i] = which; + } + + { + int aa; + z->spec_start = stbi__get8(z->s); + z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 + aa = stbi__get8(z->s); + z->succ_high = (aa >> 4); + z->succ_low = (aa & 15); + if (z->progressive) { + if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13) + return stbi__err("bad SOS", "Corrupt JPEG"); + } else { + if (z->spec_start != 0) return stbi__err("bad SOS","Corrupt JPEG"); + if (z->succ_high != 0 || z->succ_low != 0) return stbi__err("bad SOS","Corrupt JPEG"); + z->spec_end = 63; + } + } + + return 1; +} + +static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) +{ + int i; + for (i=0; i < ncomp; ++i) { + if (z->img_comp[i].raw_data) { + STBI_FREE(z->img_comp[i].raw_data); + z->img_comp[i].raw_data = NULL; + z->img_comp[i].data = NULL; + } + if (z->img_comp[i].raw_coeff) { + STBI_FREE(z->img_comp[i].raw_coeff); + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].coeff = 0; + } + if (z->img_comp[i].linebuf) { + STBI_FREE(z->img_comp[i].linebuf); + z->img_comp[i].linebuf = NULL; + } + } + return why; +} + +static int stbi__process_frame_header(stbi__jpeg *z, int scan) +{ + stbi__context *s = z->s; + int Lf,p,i,q, h_max=1,v_max=1,c; + Lf = stbi__get16be(s); if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG + p = stbi__get8(s); if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline + s->img_y = stbi__get16be(s); if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG + s->img_x = stbi__get16be(s); if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires + c = stbi__get8(s); + if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG"); + s->img_n = c; + for (i=0; i < c; ++i) { + z->img_comp[i].data = NULL; + z->img_comp[i].linebuf = NULL; + } + + if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG"); + + z->rgb = 0; + for (i=0; i < s->img_n; ++i) { + static const unsigned char rgb[3] = { 'R', 'G', 'B' }; + z->img_comp[i].id = stbi__get8(s); + if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) + ++z->rgb; + q = stbi__get8(s); + z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG"); + z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG"); + z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG"); + } + + if (scan != STBI__SCAN_load) return 1; + + if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode"); + + for (i=0; i < s->img_n; ++i) { + if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h; + if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v; + } + + // compute interleaved mcu info + z->img_h_max = h_max; + z->img_v_max = v_max; + z->img_mcu_w = h_max * 8; + z->img_mcu_h = v_max * 8; + // these sizes can't be more than 17 bits + z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w; + z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h; + + for (i=0; i < s->img_n; ++i) { + // number of effective pixels (e.g. for non-interleaved MCU) + z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max; + z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max; + // to simplify generation, we'll allocate enough memory to decode + // the bogus oversized data from using interleaved MCUs and their + // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't + // discard the extra data until colorspace conversion + // + // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) + // so these muls can't overflow with 32-bit ints (which we require) + z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; + z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; + z->img_comp[i].coeff = 0; + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].linebuf = NULL; + z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); + if (z->img_comp[i].raw_data == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + // align blocks for idct using mmx/sse + z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15); + if (z->progressive) { + // w2, h2 are multiples of 8 (see above) + z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; + z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; + z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); + if (z->img_comp[i].raw_coeff == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15); + } + } + + return 1; +} + +// use comparisons since in some cases we handle more than one case (e.g. SOF) +#define stbi__DNL(x) ((x) == 0xdc) +#define stbi__SOI(x) ((x) == 0xd8) +#define stbi__EOI(x) ((x) == 0xd9) +#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) +#define stbi__SOS(x) ((x) == 0xda) + +#define stbi__SOF_progressive(x) ((x) == 0xc2) + +static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) +{ + int m; + z->jfif = 0; + z->app14_color_transform = -1; // valid values are 0,1,2 + z->marker = STBI__MARKER_none; // initialize cached marker to empty + m = stbi__get_marker(z); + if (!stbi__SOI(m)) return stbi__err("no SOI","Corrupt JPEG"); + if (scan == STBI__SCAN_type) return 1; + m = stbi__get_marker(z); + while (!stbi__SOF(m)) { + if (!stbi__process_marker(z,m)) return 0; + m = stbi__get_marker(z); + while (m == STBI__MARKER_none) { + // some files have extra padding after their blocks, so ok, we'll scan + if (stbi__at_eof(z->s)) return stbi__err("no SOF", "Corrupt JPEG"); + m = stbi__get_marker(z); + } + } + z->progressive = stbi__SOF_progressive(m); + if (!stbi__process_frame_header(z, scan)) return 0; + return 1; +} + +// decode image to YCbCr format +static int stbi__decode_jpeg_image(stbi__jpeg *j) +{ + int m; + for (m = 0; m < 4; m++) { + j->img_comp[m].raw_data = NULL; + j->img_comp[m].raw_coeff = NULL; + } + j->restart_interval = 0; + if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0; + m = stbi__get_marker(j); + while (!stbi__EOI(m)) { + if (stbi__SOS(m)) { + if (!stbi__process_scan_header(j)) return 0; + if (!stbi__parse_entropy_coded_data(j)) return 0; + if (j->marker == STBI__MARKER_none ) { + // handle 0s at the end of image data from IP Kamera 9060 + while (!stbi__at_eof(j->s)) { + int x = stbi__get8(j->s); + if (x == 255) { + j->marker = stbi__get8(j->s); + break; + } + } + // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 + } + } else if (stbi__DNL(m)) { + int Ld = stbi__get16be(j->s); + stbi__uint32 NL = stbi__get16be(j->s); + if (Ld != 4) return stbi__err("bad DNL len", "Corrupt JPEG"); + if (NL != j->s->img_y) return stbi__err("bad DNL height", "Corrupt JPEG"); + } else { + if (!stbi__process_marker(j, m)) return 0; + } + m = stbi__get_marker(j); + } + if (j->progressive) + stbi__jpeg_finish(j); + return 1; +} + +// static jfif-centered resampling (across block boundaries) + +typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, + int w, int hs); + +#define stbi__div4(x) ((stbi_uc) ((x) >> 2)) + +static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + STBI_NOTUSED(out); + STBI_NOTUSED(in_far); + STBI_NOTUSED(w); + STBI_NOTUSED(hs); + return in_near; +} + +static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples vertically for every one in input + int i; + STBI_NOTUSED(hs); + for (i=0; i < w; ++i) + out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2); + return out; +} + +static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples horizontally for every one in input + int i; + stbi_uc *input = in_near; + + if (w == 1) { + // if only one sample, can't do any interpolation + out[0] = out[1] = input[0]; + return out; + } + + out[0] = input[0]; + out[1] = stbi__div4(input[0]*3 + input[1] + 2); + for (i=1; i < w-1; ++i) { + int n = 3*input[i]+2; + out[i*2+0] = stbi__div4(n+input[i-1]); + out[i*2+1] = stbi__div4(n+input[i+1]); + } + out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2); + out[i*2+1] = input[w-1]; + + STBI_NOTUSED(in_far); + STBI_NOTUSED(hs); + + return out; +} + +#define stbi__div16(x) ((stbi_uc) ((x) >> 4)) + +static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i,t0,t1; + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + out[0] = stbi__div4(t1+2); + for (i=1; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i=0,t0,t1; + + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + // process groups of 8 pixels for as long as we can. + // note we can't handle the last pixel in a row in this loop + // because we need to handle the filter boundary conditions. + for (; i < ((w-1) & ~7); i += 8) { +#if defined(STBI_SSE2) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + __m128i zero = _mm_setzero_si128(); + __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i)); + __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i)); + __m128i farw = _mm_unpacklo_epi8(farb, zero); + __m128i nearw = _mm_unpacklo_epi8(nearb, zero); + __m128i diff = _mm_sub_epi16(farw, nearw); + __m128i nears = _mm_slli_epi16(nearw, 2); + __m128i curr = _mm_add_epi16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + __m128i prv0 = _mm_slli_si128(curr, 2); + __m128i nxt0 = _mm_srli_si128(curr, 2); + __m128i prev = _mm_insert_epi16(prv0, t1, 0); + __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + __m128i bias = _mm_set1_epi16(8); + __m128i curs = _mm_slli_epi16(curr, 2); + __m128i prvd = _mm_sub_epi16(prev, curr); + __m128i nxtd = _mm_sub_epi16(next, curr); + __m128i curb = _mm_add_epi16(curs, bias); + __m128i even = _mm_add_epi16(prvd, curb); + __m128i odd = _mm_add_epi16(nxtd, curb); + + // interleave even and odd pixels, then undo scaling. + __m128i int0 = _mm_unpacklo_epi16(even, odd); + __m128i int1 = _mm_unpackhi_epi16(even, odd); + __m128i de0 = _mm_srli_epi16(int0, 4); + __m128i de1 = _mm_srli_epi16(int1, 4); + + // pack and write output + __m128i outv = _mm_packus_epi16(de0, de1); + _mm_storeu_si128((__m128i *) (out + i*2), outv); +#elif defined(STBI_NEON) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + uint8x8_t farb = vld1_u8(in_far + i); + uint8x8_t nearb = vld1_u8(in_near + i); + int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); + int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); + int16x8_t curr = vaddq_s16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + int16x8_t prv0 = vextq_s16(curr, curr, 7); + int16x8_t nxt0 = vextq_s16(curr, curr, 1); + int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); + int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + int16x8_t curs = vshlq_n_s16(curr, 2); + int16x8_t prvd = vsubq_s16(prev, curr); + int16x8_t nxtd = vsubq_s16(next, curr); + int16x8_t even = vaddq_s16(curs, prvd); + int16x8_t odd = vaddq_s16(curs, nxtd); + + // undo scaling and round, then store with even/odd phases interleaved + uint8x8x2_t o; + o.val[0] = vqrshrun_n_s16(even, 4); + o.val[1] = vqrshrun_n_s16(odd, 4); + vst2_u8(out + i*2, o); +#endif + + // "previous" value for next iter + t1 = 3*in_near[i+7] + in_far[i+7]; + } + + t0 = t1; + t1 = 3*in_near[i] + in_far[i]; + out[i*2] = stbi__div16(3*t1 + t0 + 8); + + for (++i; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} +#endif + +static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // resample with nearest-neighbor + int i,j; + STBI_NOTUSED(in_far); + for (i=0; i < w; ++i) + for (j=0; j < hs; ++j) + out[i*hs+j] = in_near[i]; + return out; +} + +// this is a reduced-precision calculation of YCbCr-to-RGB introduced +// to make sure the code produces the same results in both SIMD and scalar +#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8) +static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) +{ + int i; + for (i=0; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) +{ + int i = 0; + +#ifdef STBI_SSE2 + // step == 3 is pretty ugly on the final interleave, and i'm not convinced + // it's useful in practice (you wouldn't use it for textures, for example). + // so just accelerate step == 4 case. + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + __m128i signflip = _mm_set1_epi8(-0x80); + __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f)); + __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f)); + __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f)); + __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f)); + __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128); + __m128i xw = _mm_set1_epi16(255); // alpha channel + + for (; i+7 < count; i += 8) { + // load + __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i)); + __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i)); + __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i)); + __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 + __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 + + // unpack to short (and left-shift cr, cb by 8) + __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); + __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); + __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); + + // color transform + __m128i yws = _mm_srli_epi16(yw, 4); + __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); + __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); + __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); + __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); + __m128i rws = _mm_add_epi16(cr0, yws); + __m128i gwt = _mm_add_epi16(cb0, yws); + __m128i bws = _mm_add_epi16(yws, cb1); + __m128i gws = _mm_add_epi16(gwt, cr1); + + // descale + __m128i rw = _mm_srai_epi16(rws, 4); + __m128i bw = _mm_srai_epi16(bws, 4); + __m128i gw = _mm_srai_epi16(gws, 4); + + // back to byte, set up for transpose + __m128i brb = _mm_packus_epi16(rw, bw); + __m128i gxb = _mm_packus_epi16(gw, xw); + + // transpose to interleave channels + __m128i t0 = _mm_unpacklo_epi8(brb, gxb); + __m128i t1 = _mm_unpackhi_epi8(brb, gxb); + __m128i o0 = _mm_unpacklo_epi16(t0, t1); + __m128i o1 = _mm_unpackhi_epi16(t0, t1); + + // store + _mm_storeu_si128((__m128i *) (out + 0), o0); + _mm_storeu_si128((__m128i *) (out + 16), o1); + out += 32; + } + } +#endif + +#ifdef STBI_NEON + // in this version, step=3 support would be easy to add. but is there demand? + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + uint8x8_t signflip = vdup_n_u8(0x80); + int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f)); + int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f)); + int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f)); + int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f)); + + for (; i+7 < count; i += 8) { + // load + uint8x8_t y_bytes = vld1_u8(y + i); + uint8x8_t cr_bytes = vld1_u8(pcr + i); + uint8x8_t cb_bytes = vld1_u8(pcb + i); + int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); + int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); + + // expand to s16 + int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); + int16x8_t crw = vshll_n_s8(cr_biased, 7); + int16x8_t cbw = vshll_n_s8(cb_biased, 7); + + // color transform + int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); + int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); + int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); + int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); + int16x8_t rws = vaddq_s16(yws, cr0); + int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); + int16x8_t bws = vaddq_s16(yws, cb1); + + // undo scaling, round, convert to byte + uint8x8x4_t o; + o.val[0] = vqrshrun_n_s16(rws, 4); + o.val[1] = vqrshrun_n_s16(gws, 4); + o.val[2] = vqrshrun_n_s16(bws, 4); + o.val[3] = vdup_n_u8(255); + + // store, interleaving r/g/b/a + vst4_u8(out, o); + out += 8*4; + } + } +#endif + + for (; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} +#endif + +// set up the kernels +static void stbi__setup_jpeg(stbi__jpeg *j) +{ + j->idct_block_kernel = stbi__idct_block; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; + +#ifdef STBI_SSE2 + if (stbi__sse2_available()) { + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; + } +#endif + +#ifdef STBI_NEON + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; +#endif +} + +// clean up the temporary component buffers +static void stbi__cleanup_jpeg(stbi__jpeg *j) +{ + stbi__free_jpeg_components(j, j->s->img_n, 0); +} + +typedef struct +{ + resample_row_func resample; + stbi_uc *line0,*line1; + int hs,vs; // expansion factor in each axis + int w_lores; // horizontal pixels pre-expansion + int ystep; // how far through vertical expansion we are + int ypos; // which pre-expansion row we're on +} stbi__resample; + +// fast 0..255 * 0..255 => 0..255 rounded multiplication +static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) +{ + unsigned int t = x*y + 128; + return (stbi_uc) ((t + (t >>8)) >> 8); +} + +static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) +{ + int n, decode_n, is_rgb; + z->s->img_n = 0; // make stbi__cleanup_jpeg safe + + // validate req_comp + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + + // load a jpeg image from whichever source, but leave in YCbCr format + if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; } + + // determine actual number of components to generate + n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; + + is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); + + if (z->s->img_n == 3 && n < 3 && !is_rgb) + decode_n = 1; + else + decode_n = z->s->img_n; + + // resample and color-convert + { + int k; + unsigned int i,j; + stbi_uc *output; + stbi_uc *coutput[4]; + + stbi__resample res_comp[4]; + + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + + // allocate line buffer big enough for upsampling off the edges + // with upsample factor of 4 + z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3); + if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + r->hs = z->img_h_max / z->img_comp[k].h; + r->vs = z->img_v_max / z->img_comp[k].v; + r->ystep = r->vs >> 1; + r->w_lores = (z->s->img_x + r->hs-1) / r->hs; + r->ypos = 0; + r->line0 = r->line1 = z->img_comp[k].data; + + if (r->hs == 1 && r->vs == 1) r->resample = resample_row_1; + else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2; + else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2; + else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel; + else r->resample = stbi__resample_row_generic; + } + + // can't error after this so, this is safe + output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); + if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + // now go ahead and resample + for (j=0; j < z->s->img_y; ++j) { + stbi_uc *out = output + n * z->s->img_x * j; + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + int y_bot = r->ystep >= (r->vs >> 1); + coutput[k] = r->resample(z->img_comp[k].linebuf, + y_bot ? r->line1 : r->line0, + y_bot ? r->line0 : r->line1, + r->w_lores, r->hs); + if (++r->ystep >= r->vs) { + r->ystep = 0; + r->line0 = r->line1; + if (++r->ypos < z->img_comp[k].y) + r->line1 += z->img_comp[k].w2; + } + } + if (n >= 3) { + stbi_uc *y = coutput[0]; + if (z->s->img_n == 3) { + if (is_rgb) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = y[i]; + out[1] = coutput[1][i]; + out[2] = coutput[2][i]; + out[3] = 255; + out += n; + } + } else { + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else if (z->s->img_n == 4) { + if (z->app14_color_transform == 0) { // CMYK + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(coutput[0][i], m); + out[1] = stbi__blinn_8x8(coutput[1][i], m); + out[2] = stbi__blinn_8x8(coutput[2][i], m); + out[3] = 255; + out += n; + } + } else if (z->app14_color_transform == 2) { // YCCK + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(255 - out[0], m); + out[1] = stbi__blinn_8x8(255 - out[1], m); + out[2] = stbi__blinn_8x8(255 - out[2], m); + out += n; + } + } else { // YCbCr + alpha? Ignore the fourth channel for now + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else + for (i=0; i < z->s->img_x; ++i) { + out[0] = out[1] = out[2] = y[i]; + out[3] = 255; // not used if n==3 + out += n; + } + } else { + if (is_rgb) { + if (n == 1) + for (i=0; i < z->s->img_x; ++i) + *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + else { + for (i=0; i < z->s->img_x; ++i, out += 2) { + out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + out[1] = 255; + } + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); + stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); + stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); + out[0] = stbi__compute_y(r, g, b); + out[1] = 255; + out += n; + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); + out[1] = 255; + out += n; + } + } else { + stbi_uc *y = coutput[0]; + if (n == 1) + for (i=0; i < z->s->img_x; ++i) out[i] = y[i]; + else + for (i=0; i < z->s->img_x; ++i) *out++ = y[i], *out++ = 255; + } + } + } + stbi__cleanup_jpeg(z); + *out_x = z->s->img_x; + *out_y = z->s->img_y; + if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output + return output; + } +} + +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + unsigned char* result; + stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); + STBI_NOTUSED(ri); + j->s = s; + stbi__setup_jpeg(j); + result = load_jpeg_image(j, x,y,comp,req_comp); + STBI_FREE(j); + return result; +} + +static int stbi__jpeg_test(stbi__context *s) +{ + int r; + stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg)); + j->s = s; + stbi__setup_jpeg(j); + r = stbi__decode_jpeg_header(j, STBI__SCAN_type); + stbi__rewind(s); + STBI_FREE(j); + return r; +} + +static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) +{ + if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { + stbi__rewind( j->s ); + return 0; + } + if (x) *x = j->s->img_x; + if (y) *y = j->s->img_y; + if (comp) *comp = j->s->img_n >= 3 ? 3 : 1; + return 1; +} + +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) +{ + int result; + stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg))); + if (!j) { + stbi__errpuc("outofmem", "Out of memory"); + return 0; + } + j->s = s; + result = stbi__jpeg_info_raw(j, x, y, comp); + STBI_FREE(j); + return result; +} +#endif + +// public domain zlib decode v0.2 Sean Barrett 2006-11-18 +// simple implementation +// - all input must be provided in an upfront buffer +// - all output is written to a single output buffer (can malloc/realloc) +// performance +// - fast huffman + +#ifndef STBI_NO_ZLIB + +// fast-way is faster to check than jpeg huffman, but slow way is slower +#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables +#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) + +// zlib-style huffman encoding +// (jpegs packs from left, zlib from right, so can't share code) +typedef struct +{ + stbi__uint16 fast[1 << STBI__ZFAST_BITS]; + stbi__uint16 firstcode[16]; + int maxcode[17]; + stbi__uint16 firstsymbol[16]; + stbi_uc size[288]; + stbi__uint16 value[288]; +} stbi__zhuffman; + +stbi_inline static int stbi__bitreverse16(int n) +{ + n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); + n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); + n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); + n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); + return n; +} + +stbi_inline static int stbi__bit_reverse(int v, int bits) +{ + STBI_ASSERT(bits <= 16); + // to bit reverse n bits, reverse 16 and shift + // e.g. 11 bits, bit reverse and shift away 5 + return stbi__bitreverse16(v) >> (16-bits); +} + +static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) +{ + int i,k=0; + int code, next_code[16], sizes[17]; + + // DEFLATE spec for generating codes + memset(sizes, 0, sizeof(sizes)); + memset(z->fast, 0, sizeof(z->fast)); + for (i=0; i < num; ++i) + ++sizes[sizelist[i]]; + sizes[0] = 0; + for (i=1; i < 16; ++i) + if (sizes[i] > (1 << i)) + return stbi__err("bad sizes", "Corrupt PNG"); + code = 0; + for (i=1; i < 16; ++i) { + next_code[i] = code; + z->firstcode[i] = (stbi__uint16) code; + z->firstsymbol[i] = (stbi__uint16) k; + code = (code + sizes[i]); + if (sizes[i]) + if (code-1 >= (1 << i)) return stbi__err("bad codelengths","Corrupt PNG"); + z->maxcode[i] = code << (16-i); // preshift for inner loop + code <<= 1; + k += sizes[i]; + } + z->maxcode[16] = 0x10000; // sentinel + for (i=0; i < num; ++i) { + int s = sizelist[i]; + if (s) { + int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; + stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i); + z->size [c] = (stbi_uc ) s; + z->value[c] = (stbi__uint16) i; + if (s <= STBI__ZFAST_BITS) { + int j = stbi__bit_reverse(next_code[s],s); + while (j < (1 << STBI__ZFAST_BITS)) { + z->fast[j] = fastv; + j += (1 << s); + } + } + ++next_code[s]; + } + } + return 1; +} + +// zlib-from-memory implementation for PNG reading +// because PNG allows splitting the zlib stream arbitrarily, +// and it's annoying structurally to have PNG call ZLIB call PNG, +// we require PNG read all the IDATs and combine them into a single +// memory buffer + +typedef struct +{ + stbi_uc *zbuffer, *zbuffer_end; + int num_bits; + stbi__uint32 code_buffer; + + char *zout; + char *zout_start; + char *zout_end; + int z_expandable; + + stbi__zhuffman z_length, z_distance; +} stbi__zbuf; + +stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) +{ + if (z->zbuffer >= z->zbuffer_end) return 0; + return *z->zbuffer++; +} + +static void stbi__fill_bits(stbi__zbuf *z) +{ + do { + STBI_ASSERT(z->code_buffer < (1U << z->num_bits)); + z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits; + z->num_bits += 8; + } while (z->num_bits <= 24); +} + +stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) +{ + unsigned int k; + if (z->num_bits < n) stbi__fill_bits(z); + k = z->code_buffer & ((1 << n) - 1); + z->code_buffer >>= n; + z->num_bits -= n; + return k; +} + +static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s,k; + // not resolved by fast table, so compute it the slow way + // use jpeg approach, which requires MSbits at top + k = stbi__bit_reverse(a->code_buffer, 16); + for (s=STBI__ZFAST_BITS+1; ; ++s) + if (k < z->maxcode[s]) + break; + if (s == 16) return -1; // invalid code! + // code size is s, so: + b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; + STBI_ASSERT(z->size[b] == s); + a->code_buffer >>= s; + a->num_bits -= s; + return z->value[b]; +} + +stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s; + if (a->num_bits < 16) stbi__fill_bits(a); + b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; + if (b) { + s = b >> 9; + a->code_buffer >>= s; + a->num_bits -= s; + return b & 511; + } + return stbi__zhuffman_decode_slowpath(a, z); +} + +static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes +{ + char *q; + int cur, limit, old_limit; + z->zout = zout; + if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG"); + cur = (int) (z->zout - z->zout_start); + limit = old_limit = (int) (z->zout_end - z->zout_start); + while (cur + n > limit) + limit *= 2; + q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); + STBI_NOTUSED(old_limit); + if (q == NULL) return stbi__err("outofmem", "Out of memory"); + z->zout_start = q; + z->zout = q + cur; + z->zout_end = q + limit; + return 1; +} + +static const int stbi__zlength_base[31] = { + 3,4,5,6,7,8,9,10,11,13, + 15,17,19,23,27,31,35,43,51,59, + 67,83,99,115,131,163,195,227,258,0,0 }; + +static const int stbi__zlength_extra[31]= +{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; + +static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, +257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; + +static const int stbi__zdist_extra[32] = +{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +static int stbi__parse_huffman_block(stbi__zbuf *a) +{ + char *zout = a->zout; + for(;;) { + int z = stbi__zhuffman_decode(a, &a->z_length); + if (z < 256) { + if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes + if (zout >= a->zout_end) { + if (!stbi__zexpand(a, zout, 1)) return 0; + zout = a->zout; + } + *zout++ = (char) z; + } else { + stbi_uc *p; + int len,dist; + if (z == 256) { + a->zout = zout; + return 1; + } + z -= 257; + len = stbi__zlength_base[z]; + if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]); + z = stbi__zhuffman_decode(a, &a->z_distance); + if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); + dist = stbi__zdist_base[z]; + if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]); + if (zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG"); + if (zout + len > a->zout_end) { + if (!stbi__zexpand(a, zout, len)) return 0; + zout = a->zout; + } + p = (stbi_uc *) (zout - dist); + if (dist == 1) { // run of one byte; common in images. + stbi_uc v = *p; + if (len) { do *zout++ = v; while (--len); } + } else { + if (len) { do *zout++ = *p++; while (--len); } + } + } + } +} + +static int stbi__compute_huffman_codes(stbi__zbuf *a) +{ + static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; + stbi__zhuffman z_codelength; + stbi_uc lencodes[286+32+137];//padding for maximum single op + stbi_uc codelength_sizes[19]; + int i,n; + + int hlit = stbi__zreceive(a,5) + 257; + int hdist = stbi__zreceive(a,5) + 1; + int hclen = stbi__zreceive(a,4) + 4; + int ntot = hlit + hdist; + + memset(codelength_sizes, 0, sizeof(codelength_sizes)); + for (i=0; i < hclen; ++i) { + int s = stbi__zreceive(a,3); + codelength_sizes[length_dezigzag[i]] = (stbi_uc) s; + } + if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; + + n = 0; + while (n < ntot) { + int c = stbi__zhuffman_decode(a, &z_codelength); + if (c < 0 || c >= 19) return stbi__err("bad codelengths", "Corrupt PNG"); + if (c < 16) + lencodes[n++] = (stbi_uc) c; + else { + stbi_uc fill = 0; + if (c == 16) { + c = stbi__zreceive(a,2)+3; + if (n == 0) return stbi__err("bad codelengths", "Corrupt PNG"); + fill = lencodes[n-1]; + } else if (c == 17) + c = stbi__zreceive(a,3)+3; + else { + STBI_ASSERT(c == 18); + c = stbi__zreceive(a,7)+11; + } + if (ntot - n < c) return stbi__err("bad codelengths", "Corrupt PNG"); + memset(lencodes+n, fill, c); + n += c; + } + } + if (n != ntot) return stbi__err("bad codelengths","Corrupt PNG"); + if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0; + return 1; +} + +static int stbi__parse_uncompressed_block(stbi__zbuf *a) +{ + stbi_uc header[4]; + int len,nlen,k; + if (a->num_bits & 7) + stbi__zreceive(a, a->num_bits & 7); // discard + // drain the bit-packed data into header + k = 0; + while (a->num_bits > 0) { + header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check + a->code_buffer >>= 8; + a->num_bits -= 8; + } + STBI_ASSERT(a->num_bits == 0); + // now fill header the normal way + while (k < 4) + header[k++] = stbi__zget8(a); + len = header[1] * 256 + header[0]; + nlen = header[3] * 256 + header[2]; + if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG"); + if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG"); + if (a->zout + len > a->zout_end) + if (!stbi__zexpand(a, a->zout, len)) return 0; + memcpy(a->zout, a->zbuffer, len); + a->zbuffer += len; + a->zout += len; + return 1; +} + +static int stbi__parse_zlib_header(stbi__zbuf *a) +{ + int cmf = stbi__zget8(a); + int cm = cmf & 15; + /* int cinfo = cmf >> 4; */ + int flg = stbi__zget8(a); + if ((cmf*256+flg) % 31 != 0) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if (flg & 32) return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png + if (cm != 8) return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png + // window = 1 << (8 + cinfo)... but who cares, we fully buffer output + return 1; +} + +static const stbi_uc stbi__zdefault_length[288] = +{ + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8 +}; +static const stbi_uc stbi__zdefault_distance[32] = +{ + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 +}; +/* +Init algorithm: +{ + int i; // use <= to match clearly with spec + for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; + for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; + for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; + for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; + + for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; +} +*/ + +static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) +{ + int final, type; + if (parse_header) + if (!stbi__parse_zlib_header(a)) return 0; + a->num_bits = 0; + a->code_buffer = 0; + do { + final = stbi__zreceive(a,1); + type = stbi__zreceive(a,2); + if (type == 0) { + if (!stbi__parse_uncompressed_block(a)) return 0; + } else if (type == 3) { + return 0; + } else { + if (type == 1) { + // use fixed code lengths + if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , 288)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) return 0; + } else { + if (!stbi__compute_huffman_codes(a)) return 0; + } + if (!stbi__parse_huffman_block(a)) return 0; + } + } while (!final); + return 1; +} + +static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) +{ + a->zout_start = obuf; + a->zout = obuf; + a->zout_end = obuf + olen; + a->z_expandable = exp; + + return stbi__parse_zlib(a, parse_header); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) +{ + return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) + return (int) (a.zout - a.zout_start); + else + return -1; +} + +STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(16384); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer+len; + if (stbi__do_zlib(&a, p, 16384, 1, 0)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) + return (int) (a.zout - a.zout_start); + else + return -1; +} +#endif + +// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 +// simple implementation +// - only 8-bit samples +// - no CRC checking +// - allocates lots of intermediate memory +// - avoids problem of streaming data between subsystems +// - avoids explicit window management +// performance +// - uses stb_zlib, a PD zlib implementation with fast huffman decoding + +#ifndef STBI_NO_PNG +typedef struct +{ + stbi__uint32 length; + stbi__uint32 type; +} stbi__pngchunk; + +static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) +{ + stbi__pngchunk c; + c.length = stbi__get32be(s); + c.type = stbi__get32be(s); + return c; +} + +static int stbi__check_png_header(stbi__context *s) +{ + static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 }; + int i; + for (i=0; i < 8; ++i) + if (stbi__get8(s) != png_sig[i]) return stbi__err("bad png sig","Not a PNG"); + return 1; +} + +typedef struct +{ + stbi__context *s; + stbi_uc *idata, *expanded, *out; + int depth; +} stbi__png; + + +enum { + STBI__F_none=0, + STBI__F_sub=1, + STBI__F_up=2, + STBI__F_avg=3, + STBI__F_paeth=4, + // synthetic filters used for first scanline to avoid needing a dummy row of 0s + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static stbi_uc first_row_filter[5] = +{ + STBI__F_none, + STBI__F_sub, + STBI__F_none, + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static int stbi__paeth(int a, int b, int c) +{ + int p = a + b - c; + int pa = abs(p-a); + int pb = abs(p-b); + int pc = abs(p-c); + if (pa <= pb && pa <= pc) return a; + if (pb <= pc) return b; + return c; +} + +static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; + +// create the png data from post-deflated data +static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) +{ + int bytes = (depth == 16? 2 : 1); + stbi__context *s = a->s; + stbi__uint32 i,j,stride = x*out_n*bytes; + stbi__uint32 img_len, img_width_bytes; + int k; + int img_n = s->img_n; // copy it into a local for later + + int output_bytes = out_n*bytes; + int filter_bytes = img_n*bytes; + int width = x; + + STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1); + a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into + if (!a->out) return stbi__err("outofmem", "Out of memory"); + + if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG"); + img_width_bytes = (((img_n * x * depth) + 7) >> 3); + img_len = (img_width_bytes + 1) * y; + + // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, + // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), + // so just check for raw_len < img_len always. + if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG"); + + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *prior; + int filter = *raw++; + + if (filter > 4) + return stbi__err("invalid filter","Corrupt PNG"); + + if (depth < 8) { + STBI_ASSERT(img_width_bytes <= x); + cur += x*out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place + filter_bytes = 1; + width = img_width_bytes; + } + prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above + + // if first row, use special filter that doesn't sample previous row + if (j == 0) filter = first_row_filter[filter]; + + // handle first byte explicitly + for (k=0; k < filter_bytes; ++k) { + switch (filter) { + case STBI__F_none : cur[k] = raw[k]; break; + case STBI__F_sub : cur[k] = raw[k]; break; + case STBI__F_up : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break; + case STBI__F_avg : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); break; + case STBI__F_paeth : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); break; + case STBI__F_avg_first : cur[k] = raw[k]; break; + case STBI__F_paeth_first: cur[k] = raw[k]; break; + } + } + + if (depth == 8) { + if (img_n != out_n) + cur[img_n] = 255; // first pixel + raw += img_n; + cur += out_n; + prior += out_n; + } else if (depth == 16) { + if (img_n != out_n) { + cur[filter_bytes] = 255; // first pixel top byte + cur[filter_bytes+1] = 255; // first pixel bottom byte + } + raw += filter_bytes; + cur += output_bytes; + prior += output_bytes; + } else { + raw += 1; + cur += 1; + prior += 1; + } + + // this is a little gross, so that we don't switch per-pixel or per-component + if (depth < 8 || img_n == out_n) { + int nk = (width - 1)*filter_bytes; + #define STBI__CASE(f) \ + case f: \ + for (k=0; k < nk; ++k) + switch (filter) { + // "none" filter turns into a memcpy here; make that explicit. + case STBI__F_none: memcpy(cur, raw, nk); break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break; + } + #undef STBI__CASE + raw += nk; + } else { + STBI_ASSERT(img_n+1 == out_n); + #define STBI__CASE(f) \ + case f: \ + for (i=x-1; i >= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \ + for (k=0; k < filter_bytes; ++k) + switch (filter) { + STBI__CASE(STBI__F_none) { cur[k] = raw[k]; } break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } break; + } + #undef STBI__CASE + + // the loop above sets the high byte of the pixels' alpha, but for + // 16 bit png files we also need the low byte set. we'll do that here. + if (depth == 16) { + cur = a->out + stride*j; // start at the beginning of the row again + for (i=0; i < x; ++i,cur+=output_bytes) { + cur[filter_bytes+1] = 255; + } + } + } + } + + // we make a separate pass to expand bits to pixels; for performance, + // this could run two scanlines behind the above code, so it won't + // intefere with filtering but will still be in the cache. + if (depth < 8) { + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *in = a->out + stride*j + x*out_n - img_width_bytes; + // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit + // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop + stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range + + // note that the final byte might overshoot and write more data than desired. + // we can allocate enough data that this never writes out of memory, but it + // could also overwrite the next scanline. can it overwrite non-empty data + // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel. + // so we need to explicitly clamp the final ones + + if (depth == 4) { + for (k=x*img_n; k >= 2; k-=2, ++in) { + *cur++ = scale * ((*in >> 4) ); + *cur++ = scale * ((*in ) & 0x0f); + } + if (k > 0) *cur++ = scale * ((*in >> 4) ); + } else if (depth == 2) { + for (k=x*img_n; k >= 4; k-=4, ++in) { + *cur++ = scale * ((*in >> 6) ); + *cur++ = scale * ((*in >> 4) & 0x03); + *cur++ = scale * ((*in >> 2) & 0x03); + *cur++ = scale * ((*in ) & 0x03); + } + if (k > 0) *cur++ = scale * ((*in >> 6) ); + if (k > 1) *cur++ = scale * ((*in >> 4) & 0x03); + if (k > 2) *cur++ = scale * ((*in >> 2) & 0x03); + } else if (depth == 1) { + for (k=x*img_n; k >= 8; k-=8, ++in) { + *cur++ = scale * ((*in >> 7) ); + *cur++ = scale * ((*in >> 6) & 0x01); + *cur++ = scale * ((*in >> 5) & 0x01); + *cur++ = scale * ((*in >> 4) & 0x01); + *cur++ = scale * ((*in >> 3) & 0x01); + *cur++ = scale * ((*in >> 2) & 0x01); + *cur++ = scale * ((*in >> 1) & 0x01); + *cur++ = scale * ((*in ) & 0x01); + } + if (k > 0) *cur++ = scale * ((*in >> 7) ); + if (k > 1) *cur++ = scale * ((*in >> 6) & 0x01); + if (k > 2) *cur++ = scale * ((*in >> 5) & 0x01); + if (k > 3) *cur++ = scale * ((*in >> 4) & 0x01); + if (k > 4) *cur++ = scale * ((*in >> 3) & 0x01); + if (k > 5) *cur++ = scale * ((*in >> 2) & 0x01); + if (k > 6) *cur++ = scale * ((*in >> 1) & 0x01); + } + if (img_n != out_n) { + int q; + // insert alpha = 255 + cur = a->out + stride*j; + if (img_n == 1) { + for (q=x-1; q >= 0; --q) { + cur[q*2+1] = 255; + cur[q*2+0] = cur[q]; + } + } else { + STBI_ASSERT(img_n == 3); + for (q=x-1; q >= 0; --q) { + cur[q*4+3] = 255; + cur[q*4+2] = cur[q*3+2]; + cur[q*4+1] = cur[q*3+1]; + cur[q*4+0] = cur[q*3+0]; + } + } + } + } + } else if (depth == 16) { + // force the image data from big-endian to platform-native. + // this is done in a separate pass due to the decoding relying + // on the data being untouched, but could probably be done + // per-line during decode if care is taken. + stbi_uc *cur = a->out; + stbi__uint16 *cur16 = (stbi__uint16*)cur; + + for(i=0; i < x*y*out_n; ++i,cur16++,cur+=2) { + *cur16 = (cur[0] << 8) | cur[1]; + } + } + + return 1; +} + +static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) +{ + int bytes = (depth == 16 ? 2 : 1); + int out_bytes = out_n * bytes; + stbi_uc *final; + int p; + if (!interlaced) + return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); + + // de-interlacing + final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); + for (p=0; p < 7; ++p) { + int xorig[] = { 0,4,0,2,0,1,0 }; + int yorig[] = { 0,0,4,0,2,0,1 }; + int xspc[] = { 8,8,4,4,2,2,1 }; + int yspc[] = { 8,8,8,4,4,2,2 }; + int i,j,x,y; + // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 + x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p]; + y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p]; + if (x && y) { + stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; + if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) { + STBI_FREE(final); + return 0; + } + for (j=0; j < y; ++j) { + for (i=0; i < x; ++i) { + int out_y = j*yspc[p]+yorig[p]; + int out_x = i*xspc[p]+xorig[p]; + memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes, + a->out + (j*x+i)*out_bytes, out_bytes); + } + } + STBI_FREE(a->out); + a->out = NULL; + image_data += img_len; + image_data_len -= img_len; + } + } + a->out = final; + + return 1; +} + +static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + // compute color-based transparency, assuming we've + // already got 255 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i=0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 255); + p += 2; + } + } else { + for (i=0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi__uint16 *p = (stbi__uint16*) z->out; + + // compute color-based transparency, assuming we've + // already got 65535 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i = 0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 65535); + p += 2; + } + } else { + for (i = 0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) +{ + stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; + stbi_uc *p, *temp_out, *orig = a->out; + + p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0); + if (p == NULL) return stbi__err("outofmem", "Out of memory"); + + // between here and free(out) below, exitting would leak + temp_out = p; + + if (pal_img_n == 3) { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p += 3; + } + } else { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p[3] = palette[n+3]; + p += 4; + } + } + STBI_FREE(a->out); + a->out = temp_out; + + STBI_NOTUSED(len); + + return 1; +} + +static int stbi__unpremultiply_on_load = 0; +static int stbi__de_iphone_flag = 0; + +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load = flag_true_if_should_unpremultiply; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag = flag_true_if_should_convert; +} + +static void stbi__de_iphone(stbi__png *z) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + if (s->img_out_n == 3) { // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 3; + } + } else { + STBI_ASSERT(s->img_out_n == 4); + if (stbi__unpremultiply_on_load) { + // convert bgr to rgb and unpremultiply + for (i=0; i < pixel_count; ++i) { + stbi_uc a = p[3]; + stbi_uc t = p[0]; + if (a) { + stbi_uc half = a / 2; + p[0] = (p[2] * 255 + half) / a; + p[1] = (p[1] * 255 + half) / a; + p[2] = ( t * 255 + half) / a; + } else { + p[0] = p[2]; + p[2] = t; + } + p += 4; + } + } else { + // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 4; + } + } + } +} + +#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d)) + +static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) +{ + stbi_uc palette[1024], pal_img_n=0; + stbi_uc has_trans=0, tc[3]; + stbi__uint16 tc16[3]; + stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0; + int first=1,k,interlace=0, color=0, is_iphone=0; + stbi__context *s = z->s; + + z->expanded = NULL; + z->idata = NULL; + z->out = NULL; + + if (!stbi__check_png_header(s)) return 0; + + if (scan == STBI__SCAN_type) return 1; + + for (;;) { + stbi__pngchunk c = stbi__get_chunk_header(s); + switch (c.type) { + case STBI__PNG_TYPE('C','g','B','I'): + is_iphone = 1; + stbi__skip(s, c.length); + break; + case STBI__PNG_TYPE('I','H','D','R'): { + int comp,filter; + if (!first) return stbi__err("multiple IHDR","Corrupt PNG"); + first = 0; + if (c.length != 13) return stbi__err("bad IHDR len","Corrupt PNG"); + s->img_x = stbi__get32be(s); if (s->img_x > (1 << 24)) return stbi__err("too large","Very large image (corrupt?)"); + s->img_y = stbi__get32be(s); if (s->img_y > (1 << 24)) return stbi__err("too large","Very large image (corrupt?)"); + z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); + color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); + comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); + filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); + interlace = stbi__get8(s); if (interlace>1) return stbi__err("bad interlace method","Corrupt PNG"); + if (!s->img_x || !s->img_y) return stbi__err("0-pixel image","Corrupt PNG"); + if (!pal_img_n) { + s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); + if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err("too large", "Image too large to decode"); + if (scan == STBI__SCAN_header) return 1; + } else { + // if paletted, then pal_n is our final components, and + // img_n is # components to decompress/filter. + s->img_n = 1; + if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err("too large","Corrupt PNG"); + // if SCAN_header, have to scan to see if we have a tRNS + } + break; + } + + case STBI__PNG_TYPE('P','L','T','E'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (c.length > 256*3) return stbi__err("invalid PLTE","Corrupt PNG"); + pal_len = c.length / 3; + if (pal_len * 3 != c.length) return stbi__err("invalid PLTE","Corrupt PNG"); + for (i=0; i < pal_len; ++i) { + palette[i*4+0] = stbi__get8(s); + palette[i*4+1] = stbi__get8(s); + palette[i*4+2] = stbi__get8(s); + palette[i*4+3] = 255; + } + break; + } + + case STBI__PNG_TYPE('t','R','N','S'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (z->idata) return stbi__err("tRNS after IDAT","Corrupt PNG"); + if (pal_img_n) { + if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; } + if (pal_len == 0) return stbi__err("tRNS before PLTE","Corrupt PNG"); + if (c.length > pal_len) return stbi__err("bad tRNS len","Corrupt PNG"); + pal_img_n = 4; + for (i=0; i < c.length; ++i) + palette[i*4+3] = stbi__get8(s); + } else { + if (!(s->img_n & 1)) return stbi__err("tRNS with alpha","Corrupt PNG"); + if (c.length != (stbi__uint32) s->img_n*2) return stbi__err("bad tRNS len","Corrupt PNG"); + has_trans = 1; + if (z->depth == 16) { + for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is + } else { + for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger + } + } + break; + } + + case STBI__PNG_TYPE('I','D','A','T'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG"); + if (scan == STBI__SCAN_header) { s->img_n = pal_img_n; return 1; } + if ((int)(ioff + c.length) < (int)ioff) return 0; + if (ioff + c.length > idata_limit) { + stbi__uint32 idata_limit_old = idata_limit; + stbi_uc *p; + if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096; + while (ioff + c.length > idata_limit) + idata_limit *= 2; + STBI_NOTUSED(idata_limit_old); + p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err("outofmem", "Out of memory"); + z->idata = p; + } + if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err("outofdata","Corrupt PNG"); + ioff += c.length; + break; + } + + case STBI__PNG_TYPE('I','E','N','D'): { + stbi__uint32 raw_len, bpl; + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (scan != STBI__SCAN_load) return 1; + if (z->idata == NULL) return stbi__err("no IDAT","Corrupt PNG"); + // initial guess for decoded data size to avoid unnecessary reallocs + bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component + raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; + z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone); + if (z->expanded == NULL) return 0; // zlib should set error + STBI_FREE(z->idata); z->idata = NULL; + if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans) + s->img_out_n = s->img_n+1; + else + s->img_out_n = s->img_n; + if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0; + if (has_trans) { + if (z->depth == 16) { + if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0; + } else { + if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0; + } + } + if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) + stbi__de_iphone(z); + if (pal_img_n) { + // pal_img_n == 3 or 4 + s->img_n = pal_img_n; // record the actual colors we had + s->img_out_n = pal_img_n; + if (req_comp >= 3) s->img_out_n = req_comp; + if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) + return 0; + } else if (has_trans) { + // non-paletted image with tRNS -> source image has (constant) alpha + ++s->img_n; + } + STBI_FREE(z->expanded); z->expanded = NULL; + return 1; + } + + default: + // if critical, fail + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if ((c.type & (1 << 29)) == 0) { + #ifndef STBI_NO_FAILURE_STRINGS + // not threadsafe + static char invalid_chunk[] = "XXXX PNG chunk not known"; + invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); + invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); + invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); + invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); + #endif + return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); + } + stbi__skip(s, c.length); + break; + } + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + } +} + +static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) +{ + void *result=NULL; + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { + if (p->depth < 8) + ri->bits_per_channel = 8; + else + ri->bits_per_channel = p->depth; + result = p->out; + p->out = NULL; + if (req_comp && req_comp != p->s->img_out_n) { + if (ri->bits_per_channel == 8) + result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + else + result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + p->s->img_out_n = req_comp; + if (result == NULL) return result; + } + *x = p->s->img_x; + *y = p->s->img_y; + if (n) *n = p->s->img_n; + } + STBI_FREE(p->out); p->out = NULL; + STBI_FREE(p->expanded); p->expanded = NULL; + STBI_FREE(p->idata); p->idata = NULL; + + return result; +} + +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi__png p; + p.s = s; + return stbi__do_png(&p, x,y,comp,req_comp, ri); +} + +static int stbi__png_test(stbi__context *s) +{ + int r; + r = stbi__check_png_header(s); + stbi__rewind(s); + return r; +} + +static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) +{ + if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { + stbi__rewind( p->s ); + return 0; + } + if (x) *x = p->s->img_x; + if (y) *y = p->s->img_y; + if (comp) *comp = p->s->img_n; + return 1; +} + +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__png p; + p.s = s; + return stbi__png_info_raw(&p, x, y, comp); +} + +static int stbi__png_is16(stbi__context *s) +{ + stbi__png p; + p.s = s; + if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) + return 0; + if (p.depth != 16) { + stbi__rewind(p.s); + return 0; + } + return 1; +} +#endif + +// Microsoft/Windows BMP image + +#ifndef STBI_NO_BMP +static int stbi__bmp_test_raw(stbi__context *s) +{ + int r; + int sz; + if (stbi__get8(s) != 'B') return 0; + if (stbi__get8(s) != 'M') return 0; + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + stbi__get32le(s); // discard data offset + sz = stbi__get32le(s); + r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); + return r; +} + +static int stbi__bmp_test(stbi__context *s) +{ + int r = stbi__bmp_test_raw(s); + stbi__rewind(s); + return r; +} + + +// returns 0..31 for the highest set bit +static int stbi__high_bit(unsigned int z) +{ + int n=0; + if (z == 0) return -1; + if (z >= 0x10000) n += 16, z >>= 16; + if (z >= 0x00100) n += 8, z >>= 8; + if (z >= 0x00010) n += 4, z >>= 4; + if (z >= 0x00004) n += 2, z >>= 2; + if (z >= 0x00002) n += 1, z >>= 1; + return n; +} + +static int stbi__bitcount(unsigned int a) +{ + a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 + a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits + a = (a + (a >> 8)); // max 16 per 8 bits + a = (a + (a >> 16)); // max 32 per 8 bits + return a & 0xff; +} + +// extract an arbitrarily-aligned N-bit value (N=bits) +// from v, and then make it 8-bits long and fractionally +// extend it to full full range. +static int stbi__shiftsigned(int v, int shift, int bits) +{ + static unsigned int mul_table[9] = { + 0, + 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/, + 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/, + }; + static unsigned int shift_table[9] = { + 0, 0,0,1,0,2,4,6,0, + }; + if (shift < 0) + v <<= -shift; + else + v >>= shift; + STBI_ASSERT(v >= 0 && v < 256); + v >>= (8-bits); + STBI_ASSERT(bits >= 0 && bits <= 8); + return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits]; +} + +typedef struct +{ + int bpp, offset, hsz; + unsigned int mr,mg,mb,ma, all_a; +} stbi__bmp_data; + +static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) +{ + int hsz; + if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP"); + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + info->offset = stbi__get32le(s); + info->hsz = hsz = stbi__get32le(s); + info->mr = info->mg = info->mb = info->ma = 0; + + if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); + if (hsz == 12) { + s->img_x = stbi__get16le(s); + s->img_y = stbi__get16le(s); + } else { + s->img_x = stbi__get32le(s); + s->img_y = stbi__get32le(s); + } + if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP"); + info->bpp = stbi__get16le(s); + if (hsz != 12) { + int compress = stbi__get32le(s); + if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); + stbi__get32le(s); // discard sizeof + stbi__get32le(s); // discard hres + stbi__get32le(s); // discard vres + stbi__get32le(s); // discard colorsused + stbi__get32le(s); // discard max important + if (hsz == 40 || hsz == 56) { + if (hsz == 56) { + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + } + if (info->bpp == 16 || info->bpp == 32) { + if (compress == 0) { + if (info->bpp == 32) { + info->mr = 0xffu << 16; + info->mg = 0xffu << 8; + info->mb = 0xffu << 0; + info->ma = 0xffu << 24; + info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 + } else { + info->mr = 31u << 10; + info->mg = 31u << 5; + info->mb = 31u << 0; + } + } else if (compress == 3) { + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + // not documented, but generated by photoshop and handled by mspaint + if (info->mr == info->mg && info->mg == info->mb) { + // ?!?!? + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else { + int i; + if (hsz != 108 && hsz != 124) + return stbi__errpuc("bad BMP", "bad BMP"); + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->ma = stbi__get32le(s); + stbi__get32le(s); // discard color space + for (i=0; i < 12; ++i) + stbi__get32le(s); // discard color space parameters + if (hsz == 124) { + stbi__get32le(s); // discard rendering intent + stbi__get32le(s); // discard offset of profile data + stbi__get32le(s); // discard size of profile data + stbi__get32le(s); // discard reserved + } + } + } + return (void *) 1; +} + + +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + unsigned int mr=0,mg=0,mb=0,ma=0, all_a; + stbi_uc pal[256][4]; + int psize=0,i,j,width; + int flip_vertically, pad, target; + stbi__bmp_data info; + STBI_NOTUSED(ri); + + info.all_a = 255; + if (stbi__bmp_parse_header(s, &info) == NULL) + return NULL; // error code already set + + flip_vertically = ((int) s->img_y) > 0; + s->img_y = abs((int) s->img_y); + + mr = info.mr; + mg = info.mg; + mb = info.mb; + ma = info.ma; + all_a = info.all_a; + + if (info.hsz == 12) { + if (info.bpp < 24) + psize = (info.offset - 14 - 24) / 3; + } else { + if (info.bpp < 16) + psize = (info.offset - 14 - info.hsz) >> 2; + } + + s->img_n = ma ? 4 : 3; + if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 + target = req_comp; + else + target = s->img_n; // if they want monochrome, we'll post-convert + + // sanity-check size + if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "Corrupt BMP"); + + out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + if (info.bpp < 16) { + int z=0; + if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); } + for (i=0; i < psize; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + if (info.hsz != 12) stbi__get8(s); + pal[i][3] = 255; + } + stbi__skip(s, info.offset - 14 - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); + if (info.bpp == 1) width = (s->img_x + 7) >> 3; + else if (info.bpp == 4) width = (s->img_x + 1) >> 1; + else if (info.bpp == 8) width = s->img_x; + else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); } + pad = (-width)&3; + if (info.bpp == 1) { + for (j=0; j < (int) s->img_y; ++j) { + int bit_offset = 7, v = stbi__get8(s); + for (i=0; i < (int) s->img_x; ++i) { + int color = (v>>bit_offset)&0x1; + out[z++] = pal[color][0]; + out[z++] = pal[color][1]; + out[z++] = pal[color][2]; + if((--bit_offset) < 0) { + bit_offset = 7; + v = stbi__get8(s); + } + } + stbi__skip(s, pad); + } + } else { + for (j=0; j < (int) s->img_y; ++j) { + for (i=0; i < (int) s->img_x; i += 2) { + int v=stbi__get8(s),v2=0; + if (info.bpp == 4) { + v2 = v & 15; + v >>= 4; + } + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + v = (info.bpp == 8) ? stbi__get8(s) : v2; + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + } + stbi__skip(s, pad); + } + } + } else { + int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; + int z = 0; + int easy=0; + stbi__skip(s, info.offset - 14 - info.hsz); + if (info.bpp == 24) width = 3 * s->img_x; + else if (info.bpp == 16) width = 2*s->img_x; + else /* bpp = 32 and pad = 0 */ width=0; + pad = (-width) & 3; + if (info.bpp == 24) { + easy = 1; + } else if (info.bpp == 32) { + if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) + easy = 2; + } + if (!easy) { + if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + // right shift amt to put high bit in position #7 + rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr); + gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg); + bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb); + ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma); + } + for (j=0; j < (int) s->img_y; ++j) { + if (easy) { + for (i=0; i < (int) s->img_x; ++i) { + unsigned char a; + out[z+2] = stbi__get8(s); + out[z+1] = stbi__get8(s); + out[z+0] = stbi__get8(s); + z += 3; + a = (easy == 2 ? stbi__get8(s) : 255); + all_a |= a; + if (target == 4) out[z++] = a; + } + } else { + int bpp = info.bpp; + for (i=0; i < (int) s->img_x; ++i) { + stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); + unsigned int a; + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); + a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); + all_a |= a; + if (target == 4) out[z++] = STBI__BYTECAST(a); + } + } + stbi__skip(s, pad); + } + } + + // if alpha channel is all 0s, replace with all 255s + if (target == 4 && all_a == 0) + for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4) + out[i] = 255; + + if (flip_vertically) { + stbi_uc t; + for (j=0; j < (int) s->img_y>>1; ++j) { + stbi_uc *p1 = out + j *s->img_x*target; + stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target; + for (i=0; i < (int) s->img_x*target; ++i) { + t = p1[i], p1[i] = p2[i], p2[i] = t; + } + } + } + + if (req_comp && req_comp != target) { + out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + return out; +} +#endif + +// Targa Truevision - TGA +// by Jonathan Dummer +#ifndef STBI_NO_TGA +// returns STBI_rgb or whatever, 0 on error +static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16) +{ + // only RGB or RGBA (incl. 16bit) or grey allowed + if (is_rgb16) *is_rgb16 = 0; + switch(bits_per_pixel) { + case 8: return STBI_grey; + case 16: if(is_grey) return STBI_grey_alpha; + // fallthrough + case 15: if(is_rgb16) *is_rgb16 = 1; + return STBI_rgb; + case 24: // fallthrough + case 32: return bits_per_pixel/8; + default: return 0; + } +} + +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) +{ + int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; + int sz, tga_colormap_type; + stbi__get8(s); // discard Offset + tga_colormap_type = stbi__get8(s); // colormap type + if( tga_colormap_type > 1 ) { + stbi__rewind(s); + return 0; // only RGB or indexed allowed + } + tga_image_type = stbi__get8(s); // image type + if ( tga_colormap_type == 1 ) { // colormapped (paletted) image + if (tga_image_type != 1 && tga_image_type != 9) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip image x and y origin + tga_colormap_bpp = sz; + } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE + if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) { + stbi__rewind(s); + return 0; // only RGB or grey allowed, +/- RLE + } + stbi__skip(s,9); // skip colormap specification and image x/y origin + tga_colormap_bpp = 0; + } + tga_w = stbi__get16le(s); + if( tga_w < 1 ) { + stbi__rewind(s); + return 0; // test width + } + tga_h = stbi__get16le(s); + if( tga_h < 1 ) { + stbi__rewind(s); + return 0; // test height + } + tga_bits_per_pixel = stbi__get8(s); // bits per pixel + stbi__get8(s); // ignore alpha bits + if (tga_colormap_bpp != 0) { + if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { + // when using a colormap, tga_bits_per_pixel is the size of the indexes + // I don't think anything but 8 or 16bit indexes makes sense + stbi__rewind(s); + return 0; + } + tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); + } else { + tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); + } + if(!tga_comp) { + stbi__rewind(s); + return 0; + } + if (x) *x = tga_w; + if (y) *y = tga_h; + if (comp) *comp = tga_comp; + return 1; // seems to have passed everything +} + +static int stbi__tga_test(stbi__context *s) +{ + int res = 0; + int sz, tga_color_type; + stbi__get8(s); // discard Offset + tga_color_type = stbi__get8(s); // color type + if ( tga_color_type > 1 ) goto errorEnd; // only RGB or indexed allowed + sz = stbi__get8(s); // image type + if ( tga_color_type == 1 ) { // colormapped (paletted) image + if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9 + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + stbi__skip(s,4); // skip image x and y origin + } else { // "normal" image w/o colormap + if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE + stbi__skip(s,9); // skip colormap specification and image x/y origin + } + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test width + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test height + sz = stbi__get8(s); // bits per pixel + if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + + res = 1; // if we got this far, everything's good and we can return 1 instead of 0 + +errorEnd: + stbi__rewind(s); + return res; +} + +// read 16bit value and convert to 24bit RGB +static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out) +{ + stbi__uint16 px = (stbi__uint16)stbi__get16le(s); + stbi__uint16 fiveBitMask = 31; + // we have 3 channels with 5bits each + int r = (px >> 10) & fiveBitMask; + int g = (px >> 5) & fiveBitMask; + int b = px & fiveBitMask; + // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later + out[0] = (stbi_uc)((r * 255)/31); + out[1] = (stbi_uc)((g * 255)/31); + out[2] = (stbi_uc)((b * 255)/31); + + // some people claim that the most significant bit might be used for alpha + // (possibly if an alpha-bit is set in the "image descriptor byte") + // but that only made 16bit test images completely translucent.. + // so let's treat all 15 and 16bit TGAs as RGB with no alpha. +} + +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + // read in the TGA header stuff + int tga_offset = stbi__get8(s); + int tga_indexed = stbi__get8(s); + int tga_image_type = stbi__get8(s); + int tga_is_RLE = 0; + int tga_palette_start = stbi__get16le(s); + int tga_palette_len = stbi__get16le(s); + int tga_palette_bits = stbi__get8(s); + int tga_x_origin = stbi__get16le(s); + int tga_y_origin = stbi__get16le(s); + int tga_width = stbi__get16le(s); + int tga_height = stbi__get16le(s); + int tga_bits_per_pixel = stbi__get8(s); + int tga_comp, tga_rgb16=0; + int tga_inverted = stbi__get8(s); + // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) + // image data + unsigned char *tga_data; + unsigned char *tga_palette = NULL; + int i, j; + unsigned char raw_data[4] = {0}; + int RLE_count = 0; + int RLE_repeating = 0; + int read_next_pixel = 1; + STBI_NOTUSED(ri); + + // do a tiny bit of precessing + if ( tga_image_type >= 8 ) + { + tga_image_type -= 8; + tga_is_RLE = 1; + } + tga_inverted = 1 - ((tga_inverted >> 5) & 1); + + // If I'm paletted, then I'll use the number of bits from the palette + if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); + else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); + + if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency + return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); + + // tga info + *x = tga_width; + *y = tga_height; + if (comp) *comp = tga_comp; + + if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) + return stbi__errpuc("too large", "Corrupt TGA"); + + tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); + if (!tga_data) return stbi__errpuc("outofmem", "Out of memory"); + + // skip to the data's starting position (offset usually = 0) + stbi__skip(s, tga_offset ); + + if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) { + for (i=0; i < tga_height; ++i) { + int row = tga_inverted ? tga_height -i - 1 : i; + stbi_uc *tga_row = tga_data + row*tga_width*tga_comp; + stbi__getn(s, tga_row, tga_width * tga_comp); + } + } else { + // do I need to load a palette? + if ( tga_indexed) + { + // any data to skip? (offset usually = 0) + stbi__skip(s, tga_palette_start ); + // load the palette + tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); + if (!tga_palette) { + STBI_FREE(tga_data); + return stbi__errpuc("outofmem", "Out of memory"); + } + if (tga_rgb16) { + stbi_uc *pal_entry = tga_palette; + STBI_ASSERT(tga_comp == STBI_rgb); + for (i=0; i < tga_palette_len; ++i) { + stbi__tga_read_rgb16(s, pal_entry); + pal_entry += tga_comp; + } + } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { + STBI_FREE(tga_data); + STBI_FREE(tga_palette); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + } + // load the data + for (i=0; i < tga_width * tga_height; ++i) + { + // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? + if ( tga_is_RLE ) + { + if ( RLE_count == 0 ) + { + // yep, get the next byte as a RLE command + int RLE_cmd = stbi__get8(s); + RLE_count = 1 + (RLE_cmd & 127); + RLE_repeating = RLE_cmd >> 7; + read_next_pixel = 1; + } else if ( !RLE_repeating ) + { + read_next_pixel = 1; + } + } else + { + read_next_pixel = 1; + } + // OK, if I need to read a pixel, do it now + if ( read_next_pixel ) + { + // load however much data we did have + if ( tga_indexed ) + { + // read in index, then perform the lookup + int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); + if ( pal_idx >= tga_palette_len ) { + // invalid index + pal_idx = 0; + } + pal_idx *= tga_comp; + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = tga_palette[pal_idx+j]; + } + } else if(tga_rgb16) { + STBI_ASSERT(tga_comp == STBI_rgb); + stbi__tga_read_rgb16(s, raw_data); + } else { + // read in the data raw + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = stbi__get8(s); + } + } + // clear the reading flag for the next pixel + read_next_pixel = 0; + } // end of reading a pixel + + // copy data + for (j = 0; j < tga_comp; ++j) + tga_data[i*tga_comp+j] = raw_data[j]; + + // in case we're in RLE mode, keep counting down + --RLE_count; + } + // do I need to invert the image? + if ( tga_inverted ) + { + for (j = 0; j*2 < tga_height; ++j) + { + int index1 = j * tga_width * tga_comp; + int index2 = (tga_height - 1 - j) * tga_width * tga_comp; + for (i = tga_width * tga_comp; i > 0; --i) + { + unsigned char temp = tga_data[index1]; + tga_data[index1] = tga_data[index2]; + tga_data[index2] = temp; + ++index1; + ++index2; + } + } + } + // clear my palette, if I had one + if ( tga_palette != NULL ) + { + STBI_FREE( tga_palette ); + } + } + + // swap RGB - if the source data was RGB16, it already is in the right order + if (tga_comp >= 3 && !tga_rgb16) + { + unsigned char* tga_pixel = tga_data; + for (i=0; i < tga_width * tga_height; ++i) + { + unsigned char temp = tga_pixel[0]; + tga_pixel[0] = tga_pixel[2]; + tga_pixel[2] = temp; + tga_pixel += tga_comp; + } + } + + // convert to target component count + if (req_comp && req_comp != tga_comp) + tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); + + // the things I do to get rid of an error message, and yet keep + // Microsoft's C compilers happy... [8^( + tga_palette_start = tga_palette_len = tga_palette_bits = + tga_x_origin = tga_y_origin = 0; + // OK, done + return tga_data; +} +#endif + +// ************************************************************************************************* +// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s) +{ + int r = (stbi__get32be(s) == 0x38425053); + stbi__rewind(s); + return r; +} + +static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) +{ + int count, nleft, len; + + count = 0; + while ((nleft = pixelCount - count) > 0) { + len = stbi__get8(s); + if (len == 128) { + // No-op. + } else if (len < 128) { + // Copy next len+1 bytes literally. + len++; + if (len > nleft) return 0; // corrupt data + count += len; + while (len) { + *p = stbi__get8(s); + p += 4; + len--; + } + } else if (len > 128) { + stbi_uc val; + // Next -len+1 bytes in the dest are replicated from next source byte. + // (Interpret len as a negative 8-bit int.) + len = 257 - len; + if (len > nleft) return 0; // corrupt data + val = stbi__get8(s); + count += len; + while (len) { + *p = val; + p += 4; + len--; + } + } + } + + return 1; +} + +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + int pixelCount; + int channelCount, compression; + int channel, i; + int bitdepth; + int w,h; + stbi_uc *out; + STBI_NOTUSED(ri); + + // Check identifier + if (stbi__get32be(s) != 0x38425053) // "8BPS" + return stbi__errpuc("not PSD", "Corrupt PSD image"); + + // Check file type version. + if (stbi__get16be(s) != 1) + return stbi__errpuc("wrong version", "Unsupported version of PSD image"); + + // Skip 6 reserved bytes. + stbi__skip(s, 6 ); + + // Read the number of channels (R, G, B, A, etc). + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) + return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); + + // Read the rows and columns of the image. + h = stbi__get32be(s); + w = stbi__get32be(s); + + // Make sure the depth is 8 bits. + bitdepth = stbi__get16be(s); + if (bitdepth != 8 && bitdepth != 16) + return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); + + // Make sure the color mode is RGB. + // Valid options are: + // 0: Bitmap + // 1: Grayscale + // 2: Indexed color + // 3: RGB color + // 4: CMYK color + // 7: Multichannel + // 8: Duotone + // 9: Lab color + if (stbi__get16be(s) != 3) + return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); + + // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) + stbi__skip(s,stbi__get32be(s) ); + + // Skip the image resources. (resolution, pen tool paths, etc) + stbi__skip(s, stbi__get32be(s) ); + + // Skip the reserved data. + stbi__skip(s, stbi__get32be(s) ); + + // Find out if the data is compressed. + // Known values: + // 0: no compression + // 1: RLE compressed + compression = stbi__get16be(s); + if (compression > 1) + return stbi__errpuc("bad compression", "PSD has an unknown compression format"); + + // Check size + if (!stbi__mad3sizes_valid(4, w, h, 0)) + return stbi__errpuc("too large", "Corrupt PSD"); + + // Create the destination image. + + if (!compression && bitdepth == 16 && bpc == 16) { + out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0); + ri->bits_per_channel = 16; + } else + out = (stbi_uc *) stbi__malloc(4 * w*h); + + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + pixelCount = w*h; + + // Initialize the data to zero. + //memset( out, 0, pixelCount * 4 ); + + // Finally, the image data. + if (compression) { + // RLE as used by .PSD and .TIFF + // Loop until you get the number of unpacked bytes you are expecting: + // Read the next source byte into n. + // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. + // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. + // Else if n is 128, noop. + // Endloop + + // The RLE-compressed data is preceeded by a 2-byte data count for each row in the data, + // which we're going to just skip. + stbi__skip(s, h * channelCount * 2 ); + + // Read the RLE data by channel. + for (channel = 0; channel < 4; channel++) { + stbi_uc *p; + + p = out+channel; + if (channel >= channelCount) { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++, p += 4) + *p = (channel == 3 ? 255 : 0); + } else { + // Read the RLE data. + if (!stbi__psd_decode_rle(s, p, pixelCount)) { + STBI_FREE(out); + return stbi__errpuc("corrupt", "bad RLE data"); + } + } + } + + } else { + // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) + // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. + + // Read the data by channel. + for (channel = 0; channel < 4; channel++) { + if (channel >= channelCount) { + // Fill this channel with default data. + if (bitdepth == 16 && bpc == 16) { + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + stbi__uint16 val = channel == 3 ? 65535 : 0; + for (i = 0; i < pixelCount; i++, q += 4) + *q = val; + } else { + stbi_uc *p = out+channel; + stbi_uc val = channel == 3 ? 255 : 0; + for (i = 0; i < pixelCount; i++, p += 4) + *p = val; + } + } else { + if (ri->bits_per_channel == 16) { // output bpc + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + for (i = 0; i < pixelCount; i++, q += 4) + *q = (stbi__uint16) stbi__get16be(s); + } else { + stbi_uc *p = out+channel; + if (bitdepth == 16) { // input bpc + for (i = 0; i < pixelCount; i++, p += 4) + *p = (stbi_uc) (stbi__get16be(s) >> 8); + } else { + for (i = 0; i < pixelCount; i++, p += 4) + *p = stbi__get8(s); + } + } + } + } + } + + // remove weird white matte from PSD + if (channelCount >= 4) { + if (ri->bits_per_channel == 16) { + for (i=0; i < w*h; ++i) { + stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i; + if (pixel[3] != 0 && pixel[3] != 65535) { + float a = pixel[3] / 65535.0f; + float ra = 1.0f / a; + float inv_a = 65535.0f * (1 - ra); + pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a); + pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a); + pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a); + } + } + } else { + for (i=0; i < w*h; ++i) { + unsigned char *pixel = out + 4*i; + if (pixel[3] != 0 && pixel[3] != 255) { + float a = pixel[3] / 255.0f; + float ra = 1.0f / a; + float inv_a = 255.0f * (1 - ra); + pixel[0] = (unsigned char) (pixel[0]*ra + inv_a); + pixel[1] = (unsigned char) (pixel[1]*ra + inv_a); + pixel[2] = (unsigned char) (pixel[2]*ra + inv_a); + } + } + } + } + + // convert to desired output format + if (req_comp && req_comp != 4) { + if (ri->bits_per_channel == 16) + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h); + else + out = stbi__convert_format(out, 4, req_comp, w, h); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + if (comp) *comp = 4; + *y = h; + *x = w; + + return out; +} +#endif + +// ************************************************************************************************* +// Softimage PIC loader +// by Tom Seddon +// +// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format +// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ + +#ifndef STBI_NO_PIC +static int stbi__pic_is4(stbi__context *s,const char *str) +{ + int i; + for (i=0; i<4; ++i) + if (stbi__get8(s) != (stbi_uc)str[i]) + return 0; + + return 1; +} + +static int stbi__pic_test_core(stbi__context *s) +{ + int i; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) + return 0; + + for(i=0;i<84;++i) + stbi__get8(s); + + if (!stbi__pic_is4(s,"PICT")) + return 0; + + return 1; +} + +typedef struct +{ + stbi_uc size,type,channel; +} stbi__pic_packet; + +static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) +{ + int mask=0x80, i; + + for (i=0; i<4; ++i, mask>>=1) { + if (channel & mask) { + if (stbi__at_eof(s)) return stbi__errpuc("bad file","PIC file too short"); + dest[i]=stbi__get8(s); + } + } + + return dest; +} + +static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src) +{ + int mask=0x80,i; + + for (i=0;i<4; ++i, mask>>=1) + if (channel&mask) + dest[i]=src[i]; +} + +static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result) +{ + int act_comp=0,num_packets=0,y,chained; + stbi__pic_packet packets[10]; + + // this will (should...) cater for even some bizarre stuff like having data + // for the same channel in multiple packets. + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return stbi__errpuc("bad format","too many packets"); + + packet = &packets[num_packets++]; + + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + + act_comp |= packet->channel; + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (reading packets)"); + if (packet->size != 8) return stbi__errpuc("bad format","packet isn't 8bpp"); + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? + + for(y=0; ytype) { + default: + return stbi__errpuc("bad format","packet has bad compression type"); + + case 0: {//uncompressed + int x; + + for(x=0;xchannel,dest)) + return 0; + break; + } + + case 1://Pure RLE + { + int left=width, i; + + while (left>0) { + stbi_uc count,value[4]; + + count=stbi__get8(s); + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pure read count)"); + + if (count > left) + count = (stbi_uc) left; + + if (!stbi__readval(s,packet->channel,value)) return 0; + + for(i=0; ichannel,dest,value); + left -= count; + } + } + break; + + case 2: {//Mixed RLE + int left=width; + while (left>0) { + int count = stbi__get8(s), i; + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (mixed read count)"); + + if (count >= 128) { // Repeated + stbi_uc value[4]; + + if (count==128) + count = stbi__get16be(s); + else + count -= 127; + if (count > left) + return stbi__errpuc("bad file","scanline overrun"); + + if (!stbi__readval(s,packet->channel,value)) + return 0; + + for(i=0;ichannel,dest,value); + } else { // Raw + ++count; + if (count>left) return stbi__errpuc("bad file","scanline overrun"); + + for(i=0;ichannel,dest)) + return 0; + } + left-=count; + } + break; + } + } + } + } + + return result; +} + +static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri) +{ + stbi_uc *result; + int i, x,y, internal_comp; + STBI_NOTUSED(ri); + + if (!comp) comp = &internal_comp; + + for (i=0; i<92; ++i) + stbi__get8(s); + + x = stbi__get16be(s); + y = stbi__get16be(s); + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pic header)"); + if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc("too large", "PIC image too large to decode"); + + stbi__get32be(s); //skip `ratio' + stbi__get16be(s); //skip `fields' + stbi__get16be(s); //skip `pad' + + // intermediate buffer is RGBA + result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0); + memset(result, 0xff, x*y*4); + + if (!stbi__pic_load_core(s,x,y,comp, result)) { + STBI_FREE(result); + result=0; + } + *px = x; + *py = y; + if (req_comp == 0) req_comp = *comp; + result=stbi__convert_format(result,4,req_comp,x,y); + + return result; +} + +static int stbi__pic_test(stbi__context *s) +{ + int r = stbi__pic_test_core(s); + stbi__rewind(s); + return r; +} +#endif + +// ************************************************************************************************* +// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb + +#ifndef STBI_NO_GIF +typedef struct +{ + stbi__int16 prefix; + stbi_uc first; + stbi_uc suffix; +} stbi__gif_lzw; + +typedef struct +{ + int w,h; + stbi_uc *out; // output buffer (always 4 components) + stbi_uc *background; // The current "background" as far as a gif is concerned + stbi_uc *history; + int flags, bgindex, ratio, transparent, eflags; + stbi_uc pal[256][4]; + stbi_uc lpal[256][4]; + stbi__gif_lzw codes[8192]; + stbi_uc *color_table; + int parse, step; + int lflags; + int start_x, start_y; + int max_x, max_y; + int cur_x, cur_y; + int line_size; + int delay; +} stbi__gif; + +static int stbi__gif_test_raw(stbi__context *s) +{ + int sz; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0; + sz = stbi__get8(s); + if (sz != '9' && sz != '7') return 0; + if (stbi__get8(s) != 'a') return 0; + return 1; +} + +static int stbi__gif_test(stbi__context *s) +{ + int r = stbi__gif_test_raw(s); + stbi__rewind(s); + return r; +} + +static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) +{ + int i; + for (i=0; i < num_entries; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + pal[i][3] = transp == i ? 0 : 255; + } +} + +static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) +{ + stbi_uc version; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') + return stbi__err("not GIF", "Corrupt GIF"); + + version = stbi__get8(s); + if (version != '7' && version != '9') return stbi__err("not GIF", "Corrupt GIF"); + if (stbi__get8(s) != 'a') return stbi__err("not GIF", "Corrupt GIF"); + + stbi__g_failure_reason = ""; + g->w = stbi__get16le(s); + g->h = stbi__get16le(s); + g->flags = stbi__get8(s); + g->bgindex = stbi__get8(s); + g->ratio = stbi__get8(s); + g->transparent = -1; + + if (comp != 0) *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments + + if (is_info) return 1; + + if (g->flags & 0x80) + stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1); + + return 1; +} + +static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif)); + if (!stbi__gif_header(s, g, comp, 1)) { + STBI_FREE(g); + stbi__rewind( s ); + return 0; + } + if (x) *x = g->w; + if (y) *y = g->h; + STBI_FREE(g); + return 1; +} + +static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) +{ + stbi_uc *p, *c; + int idx; + + // recurse to decode the prefixes, since the linked-list is backwards, + // and working backwards through an interleaved image would be nasty + if (g->codes[code].prefix >= 0) + stbi__out_gif_code(g, g->codes[code].prefix); + + if (g->cur_y >= g->max_y) return; + + idx = g->cur_x + g->cur_y; + p = &g->out[idx]; + g->history[idx / 4] = 1; + + c = &g->color_table[g->codes[code].suffix * 4]; + if (c[3] > 128) { // don't render transparent pixels; + p[0] = c[2]; + p[1] = c[1]; + p[2] = c[0]; + p[3] = c[3]; + } + g->cur_x += 4; + + if (g->cur_x >= g->max_x) { + g->cur_x = g->start_x; + g->cur_y += g->step; + + while (g->cur_y >= g->max_y && g->parse > 0) { + g->step = (1 << g->parse) * g->line_size; + g->cur_y = g->start_y + (g->step >> 1); + --g->parse; + } + } +} + +static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) +{ + stbi_uc lzw_cs; + stbi__int32 len, init_code; + stbi__uint32 first; + stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; + stbi__gif_lzw *p; + + lzw_cs = stbi__get8(s); + if (lzw_cs > 12) return NULL; + clear = 1 << lzw_cs; + first = 1; + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + bits = 0; + valid_bits = 0; + for (init_code = 0; init_code < clear; init_code++) { + g->codes[init_code].prefix = -1; + g->codes[init_code].first = (stbi_uc) init_code; + g->codes[init_code].suffix = (stbi_uc) init_code; + } + + // support no starting clear code + avail = clear+2; + oldcode = -1; + + len = 0; + for(;;) { + if (valid_bits < codesize) { + if (len == 0) { + len = stbi__get8(s); // start new block + if (len == 0) + return g->out; + } + --len; + bits |= (stbi__int32) stbi__get8(s) << valid_bits; + valid_bits += 8; + } else { + stbi__int32 code = bits & codemask; + bits >>= codesize; + valid_bits -= codesize; + // @OPTIMIZE: is there some way we can accelerate the non-clear path? + if (code == clear) { // clear code + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + avail = clear + 2; + oldcode = -1; + first = 0; + } else if (code == clear + 1) { // end of stream code + stbi__skip(s, len); + while ((len = stbi__get8(s)) > 0) + stbi__skip(s,len); + return g->out; + } else if (code <= avail) { + if (first) { + return stbi__errpuc("no clear code", "Corrupt GIF"); + } + + if (oldcode >= 0) { + p = &g->codes[avail++]; + if (avail > 8192) { + return stbi__errpuc("too many codes", "Corrupt GIF"); + } + + p->prefix = (stbi__int16) oldcode; + p->first = g->codes[oldcode].first; + p->suffix = (code == avail) ? p->first : g->codes[code].first; + } else if (code == avail) + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + + stbi__out_gif_code(g, (stbi__uint16) code); + + if ((avail & codemask) == 0 && avail <= 0x0FFF) { + codesize++; + codemask = (1 << codesize) - 1; + } + + oldcode = code; + } else { + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + } + } + } +} + +// this function is designed to support animated gifs, although stb_image doesn't support it +// two back is the image from two frames ago, used for a very specific disposal format +static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) +{ + int dispose; + int first_frame; + int pi; + int pcount; + + // on first frame, any non-written pixels get the background colour (non-transparent) + first_frame = 0; + if (g->out == 0) { + if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header + g->out = (stbi_uc *) stbi__malloc(4 * g->w * g->h); + g->background = (stbi_uc *) stbi__malloc(4 * g->w * g->h); + g->history = (stbi_uc *) stbi__malloc(g->w * g->h); + if (g->out == 0) return stbi__errpuc("outofmem", "Out of memory"); + + // image is treated as "tranparent" at the start - ie, nothing overwrites the current background; + // background colour is only used for pixels that are not rendered first frame, after that "background" + // color refers to teh color that was there the previous frame. + memset( g->out, 0x00, 4 * g->w * g->h ); + memset( g->background, 0x00, 4 * g->w * g->h ); // state of the background (starts transparent) + memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame + first_frame = 1; + } else { + // second frame - how do we dispoase of the previous one? + dispose = (g->eflags & 0x1C) >> 2; + pcount = g->w * g->h; + + if ((dispose == 3) && (two_back == 0)) { + dispose = 2; // if I don't have an image to revert back to, default to the old background + } + + if (dispose == 3) { // use previous graphic + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 ); + } + } + } else if (dispose == 2) { + // restore what was changed last frame to background before that frame; + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 ); + } + } + } else { + // This is a non-disposal case eithe way, so just + // leave the pixels as is, and they will become the new background + // 1: do not dispose + // 0: not specified. + } + + // background is what out is after the undoing of the previou frame; + memcpy( g->background, g->out, 4 * g->w * g->h ); + } + + // clear my history; + memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame + + for (;;) { + int tag = stbi__get8(s); + switch (tag) { + case 0x2C: /* Image Descriptor */ + { + stbi__int32 x, y, w, h; + stbi_uc *o; + + x = stbi__get16le(s); + y = stbi__get16le(s); + w = stbi__get16le(s); + h = stbi__get16le(s); + if (((x + w) > (g->w)) || ((y + h) > (g->h))) + return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); + + g->line_size = g->w * 4; + g->start_x = x * 4; + g->start_y = y * g->line_size; + g->max_x = g->start_x + w * 4; + g->max_y = g->start_y + h * g->line_size; + g->cur_x = g->start_x; + g->cur_y = g->start_y; + + g->lflags = stbi__get8(s); + + if (g->lflags & 0x40) { + g->step = 8 * g->line_size; // first interlaced spacing + g->parse = 3; + } else { + g->step = g->line_size; + g->parse = 0; + } + + if (g->lflags & 0x80) { + stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); + g->color_table = (stbi_uc *) g->lpal; + } else if (g->flags & 0x80) { + g->color_table = (stbi_uc *) g->pal; + } else + return stbi__errpuc("missing color table", "Corrupt GIF"); + + o = stbi__process_gif_raster(s, g); + if (o == NULL) return NULL; + + // if this was the first frame, + pcount = g->w * g->h; + if (first_frame && (g->bgindex > 0)) { + // if first frame, any pixel not drawn to gets the background color + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi] == 0) { + g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; + memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 ); + } + } + } + + return o; + } + + case 0x21: // Comment Extension. + { + int len; + int ext = stbi__get8(s); + if (ext == 0xF9) { // Graphic Control Extension. + len = stbi__get8(s); + if (len == 4) { + g->eflags = stbi__get8(s); + g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. + + // unset old transparent + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 255; + } + if (g->eflags & 0x01) { + g->transparent = stbi__get8(s); + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 0; + } + } else { + // don't need transparent + stbi__skip(s, 1); + g->transparent = -1; + } + } else { + stbi__skip(s, len); + break; + } + } + while ((len = stbi__get8(s)) != 0) { + stbi__skip(s, len); + } + break; + } + + case 0x3B: // gif stream termination code + return (stbi_uc *) s; // using '1' causes warning on some compilers + + default: + return stbi__errpuc("unknown code", "Corrupt GIF"); + } + } +} + +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + if (stbi__gif_test(s)) { + int layers = 0; + stbi_uc *u = 0; + stbi_uc *out = 0; + stbi_uc *two_back = 0; + stbi__gif g; + int stride; + memset(&g, 0, sizeof(g)); + if (delays) { + *delays = 0; + } + + do { + u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + + if (u) { + *x = g.w; + *y = g.h; + ++layers; + stride = g.w * g.h * 4; + + if (out) { + out = (stbi_uc*) STBI_REALLOC( out, layers * stride ); + if (delays) { + *delays = (int*) STBI_REALLOC( *delays, sizeof(int) * layers ); + } + } else { + out = (stbi_uc*)stbi__malloc( layers * stride ); + if (delays) { + *delays = (int*) stbi__malloc( layers * sizeof(int) ); + } + } + memcpy( out + ((layers - 1) * stride), u, stride ); + if (layers >= 2) { + two_back = out - 2 * stride; + } + + if (delays) { + (*delays)[layers - 1U] = g.delay; + } + } + } while (u != 0); + + // free temp buffer; + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + + // do the final conversion after loading everything; + if (req_comp && req_comp != 4) + out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); + + *z = layers; + return out; + } else { + return stbi__errpuc("not GIF", "Image was not as a gif type."); + } +} + +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *u = 0; + stbi__gif g; + memset(&g, 0, sizeof(g)); + + u = stbi__gif_load_next(s, &g, comp, req_comp, 0); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + if (u) { + *x = g.w; + *y = g.h; + + // moved conversion to after successful load so that the same + // can be done for multiple frames. + if (req_comp && req_comp != 4) + u = stbi__convert_format(u, 4, req_comp, g.w, g.h); + } + + // free buffers needed for multiple frame loading; + STBI_FREE(g.history); + STBI_FREE(g.background); + + return u; +} + +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) +{ + return stbi__gif_info_raw(s,x,y,comp); +} +#endif + +// ************************************************************************************************* +// Radiance RGBE HDR loader +// originally by Nicolas Schulz +#ifndef STBI_NO_HDR +static int stbi__hdr_test_core(stbi__context *s, const char *signature) +{ + int i; + for (i=0; signature[i]; ++i) + if (stbi__get8(s) != signature[i]) + return 0; + stbi__rewind(s); + return 1; +} + +static int stbi__hdr_test(stbi__context* s) +{ + int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); + stbi__rewind(s); + if(!r) { + r = stbi__hdr_test_core(s, "#?RGBE\n"); + stbi__rewind(s); + } + return r; +} + +#define STBI__HDR_BUFLEN 1024 +static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) +{ + int len=0; + char c = '\0'; + + c = (char) stbi__get8(z); + + while (!stbi__at_eof(z) && c != '\n') { + buffer[len++] = c; + if (len == STBI__HDR_BUFLEN-1) { + // flush to end of line + while (!stbi__at_eof(z) && stbi__get8(z) != '\n') + ; + break; + } + c = (char) stbi__get8(z); + } + + buffer[len] = 0; + return buffer; +} + +static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) +{ + if ( input[3] != 0 ) { + float f1; + // Exponent + f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); + if (req_comp <= 2) + output[0] = (input[0] + input[1] + input[2]) * f1 / 3; + else { + output[0] = input[0] * f1; + output[1] = input[1] * f1; + output[2] = input[2] * f1; + } + if (req_comp == 2) output[1] = 1; + if (req_comp == 4) output[3] = 1; + } else { + switch (req_comp) { + case 4: output[3] = 1; /* fallthrough */ + case 3: output[0] = output[1] = output[2] = 0; + break; + case 2: output[1] = 1; /* fallthrough */ + case 1: output[0] = 0; + break; + } + } +} + +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int width, height; + stbi_uc *scanline; + float *hdr_data; + int len; + unsigned char count, value; + int i, j, k, c1,c2, z; + const char *headerToken; + STBI_NOTUSED(ri); + + // Check identifier + headerToken = stbi__hdr_gettoken(s,buffer); + if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) + return stbi__errpf("not HDR", "Corrupt HDR image"); + + // Parse header + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) return stbi__errpf("unsupported format", "Unsupported HDR format"); + + // Parse width and height + // can't use sscanf() if we're not using stdio! + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + height = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + width = (int) strtol(token, NULL, 10); + + *x = width; + *y = height; + + if (comp) *comp = 3; + if (req_comp == 0) req_comp = 3; + + if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) + return stbi__errpf("too large", "HDR image is too large"); + + // Read data + hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); + if (!hdr_data) + return stbi__errpf("outofmem", "Out of memory"); + + // Load image data + // image data is stored as some number of sca + if ( width < 8 || width >= 32768) { + // Read flat data + for (j=0; j < height; ++j) { + for (i=0; i < width; ++i) { + stbi_uc rgbe[4]; + main_decode_loop: + stbi__getn(s, rgbe, 4); + stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); + } + } + } else { + // Read RLE-encoded data + scanline = NULL; + + for (j = 0; j < height; ++j) { + c1 = stbi__get8(s); + c2 = stbi__get8(s); + len = stbi__get8(s); + if (c1 != 2 || c2 != 2 || (len & 0x80)) { + // not run-length encoded, so we have to actually use THIS data as a decoded + // pixel (note this can't be a valid pixel--one of RGB must be >= 128) + stbi_uc rgbe[4]; + rgbe[0] = (stbi_uc) c1; + rgbe[1] = (stbi_uc) c2; + rgbe[2] = (stbi_uc) len; + rgbe[3] = (stbi_uc) stbi__get8(s); + stbi__hdr_convert(hdr_data, rgbe, req_comp); + i = 1; + j = 0; + STBI_FREE(scanline); + goto main_decode_loop; // yes, this makes no sense + } + len <<= 8; + len |= stbi__get8(s); + if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); } + if (scanline == NULL) { + scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0); + if (!scanline) { + STBI_FREE(hdr_data); + return stbi__errpf("outofmem", "Out of memory"); + } + } + + for (k = 0; k < 4; ++k) { + int nleft; + i = 0; + while ((nleft = width - i) > 0) { + count = stbi__get8(s); + if (count > 128) { + // Run + value = stbi__get8(s); + count -= 128; + if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = value; + } else { + // Dump + if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = stbi__get8(s); + } + } + } + for (i=0; i < width; ++i) + stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); + } + if (scanline) + STBI_FREE(scanline); + } + + return hdr_data; +} + +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int dummy; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (stbi__hdr_test(s) == 0) { + stbi__rewind( s ); + return 0; + } + + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) { + stbi__rewind( s ); + return 0; + } + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *y = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *x = (int) strtol(token, NULL, 10); + *comp = 3; + return 1; +} +#endif // STBI_NO_HDR + +#ifndef STBI_NO_BMP +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) +{ + void *p; + stbi__bmp_data info; + + info.all_a = 255; + p = stbi__bmp_parse_header(s, &info); + stbi__rewind( s ); + if (p == NULL) + return 0; + if (x) *x = s->img_x; + if (y) *y = s->img_y; + if (comp) *comp = info.ma ? 4 : 3; + return 1; +} +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) +{ + int channelCount, dummy, depth; + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + *y = stbi__get32be(s); + *x = stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 8 && depth != 16) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 3) { + stbi__rewind( s ); + return 0; + } + *comp = 4; + return 1; +} + +static int stbi__psd_is16(stbi__context *s) +{ + int channelCount, depth; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + (void) stbi__get32be(s); + (void) stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 16) { + stbi__rewind( s ); + return 0; + } + return 1; +} +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) +{ + int act_comp=0,num_packets=0,chained,dummy; + stbi__pic_packet packets[10]; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) { + stbi__rewind(s); + return 0; + } + + stbi__skip(s, 88); + + *x = stbi__get16be(s); + *y = stbi__get16be(s); + if (stbi__at_eof(s)) { + stbi__rewind( s); + return 0; + } + if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) { + stbi__rewind( s ); + return 0; + } + + stbi__skip(s, 8); + + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return 0; + + packet = &packets[num_packets++]; + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + act_comp |= packet->channel; + + if (stbi__at_eof(s)) { + stbi__rewind( s ); + return 0; + } + if (packet->size != 8) { + stbi__rewind( s ); + return 0; + } + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); + + return 1; +} +#endif + +// ************************************************************************************************* +// Portable Gray Map and Portable Pixel Map loader +// by Ken Miller +// +// PGM: http://netpbm.sourceforge.net/doc/pgm.html +// PPM: http://netpbm.sourceforge.net/doc/ppm.html +// +// Known limitations: +// Does not support comments in the header section +// Does not support ASCII image data (formats P2 and P3) +// Does not support 16-bit-per-channel + +#ifndef STBI_NO_PNM + +static int stbi__pnm_test(stbi__context *s) +{ + char p, t; + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind( s ); + return 0; + } + return 1; +} + +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + STBI_NOTUSED(ri); + + if (!stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n)) + return 0; + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + + if (!stbi__mad3sizes_valid(s->img_n, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "PNM too large"); + + out = (stbi_uc *) stbi__malloc_mad3(s->img_n, s->img_x, s->img_y, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + stbi__getn(s, out, s->img_n * s->img_x * s->img_y); + + if (req_comp && req_comp != s->img_n) { + out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + return out; +} + +static int stbi__pnm_isspace(char c) +{ + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; +} + +static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) +{ + for (;;) { + while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) + *c = (char) stbi__get8(s); + + if (stbi__at_eof(s) || *c != '#') + break; + + while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' ) + *c = (char) stbi__get8(s); + } +} + +static int stbi__pnm_isdigit(char c) +{ + return c >= '0' && c <= '9'; +} + +static int stbi__pnm_getinteger(stbi__context *s, char *c) +{ + int value = 0; + + while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { + value = value*10 + (*c - '0'); + *c = (char) stbi__get8(s); + } + + return value; +} + +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) +{ + int maxv, dummy; + char c, p, t; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + stbi__rewind(s); + + // Get identifier + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind(s); + return 0; + } + + *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm + + c = (char) stbi__get8(s); + stbi__pnm_skip_whitespace(s, &c); + + *x = stbi__pnm_getinteger(s, &c); // read width + stbi__pnm_skip_whitespace(s, &c); + + *y = stbi__pnm_getinteger(s, &c); // read height + stbi__pnm_skip_whitespace(s, &c); + + maxv = stbi__pnm_getinteger(s, &c); // read max value + + if (maxv > 255) + return stbi__err("max value > 255", "PPM image not 8-bit"); + else + return 1; +} +#endif + +static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) +{ + #ifndef STBI_NO_JPEG + if (stbi__jpeg_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNG + if (stbi__png_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_GIF + if (stbi__gif_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_BMP + if (stbi__bmp_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PIC + if (stbi__pic_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_info(s, x, y, comp)) return 1; + #endif + + // test tga last because it's a crappy test! + #ifndef STBI_NO_TGA + if (stbi__tga_info(s, x, y, comp)) + return 1; + #endif + return stbi__err("unknown image type", "Image not of any known type, or corrupt"); +} + +static int stbi__is_16_main(stbi__context *s) +{ + #ifndef STBI_NO_PNG + if (stbi__png_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_is16(s)) return 1; + #endif + + return 0; +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_info_from_file(f, x, y, comp); + fclose(f); + return result; +} + +STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__info_main(&s,x,y,comp); + if (pos >= 0) { + if (fseek(f,pos,SEEK_SET) == -1) return stbi__err("fseek() error", "File Seek Fail"); + } + return r; +} + +STBIDEF int stbi_is_16_bit(char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_is_16_bit_from_file(f); + fclose(f); + return result; +} + +STBIDEF int stbi_is_16_bit_from_file(FILE *f) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__is_16_main(&s); + if (pos >= 0) { + if (fseek(f,pos,SEEK_SET) == -1) return stbi__err("fseek() error", "File Seek Fail"); + } + return r; +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__is_16_main(&s); +} + +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__is_16_main(&s); +} + +#endif // STB_IMAGE_IMPLEMENTATION + +/* + revision history: + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug + 1-bit BMP + *_is_16_bit api + avoid warnings + 2.16 (2017-07-23) all functions have 16-bit variants; + STBI_NO_STDIO works again; + compilation fixes; + fix rounding in unpremultiply; + optimize vertical flip; + disable raw_len validation; + documentation fixes + 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; + warning fixes; disable run-time SSE detection on gcc; + uniform handling of optional "return" values; + thread-safe initialization of zlib tables + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) allocate large structures on the stack + remove white matting for transparent PSD + fix reported channel count for PNG & BMP + re-enable SSE2 in non-gcc 64-bit + support RGB-formatted JPEG + read 16-bit PNGs (only as 8-bit) + 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED + 2.09 (2016-01-16) allow comments in PNM files + 16-bit-per-pixel TGA (not bit-per-component) + info() for TGA could break due to .hdr handling + info() for BMP to shares code instead of sloppy parse + can use STBI_REALLOC_SIZED if allocator doesn't support realloc + code cleanup + 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA + 2.07 (2015-09-13) fix compiler warnings + partial animated GIF support + limited 16-bpc PSD support + #ifdef unused functions + bug with < 92 byte PIC,PNM,HDR,TGA + 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value + 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning + 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit + 2.03 (2015-04-12) extra corruption checking (mmozeiko) + stbi_set_flip_vertically_on_load (nguillemot) + fix NEON support; fix mingw support + 2.02 (2015-01-19) fix incorrect assert, fix warning + 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 + 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG + 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) + progressive JPEG (stb) + PGM/PPM support (Ken Miller) + STBI_MALLOC,STBI_REALLOC,STBI_FREE + GIF bugfix -- seemingly never worked + STBI_NO_*, STBI_ONLY_* + 1.48 (2014-12-14) fix incorrectly-named assert() + 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) + optimize PNG (ryg) + fix bug in interlaced PNG with user-specified channel count (stb) + 1.46 (2014-08-26) + fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG + 1.45 (2014-08-16) + fix MSVC-ARM internal compiler error by wrapping malloc + 1.44 (2014-08-07) + various warning fixes from Ronny Chevalier + 1.43 (2014-07-15) + fix MSVC-only compiler problem in code changed in 1.42 + 1.42 (2014-07-09) + don't define _CRT_SECURE_NO_WARNINGS (affects user code) + fixes to stbi__cleanup_jpeg path + added STBI_ASSERT to avoid requiring assert.h + 1.41 (2014-06-25) + fix search&replace from 1.36 that messed up comments/error messages + 1.40 (2014-06-22) + fix gcc struct-initialization warning + 1.39 (2014-06-15) + fix to TGA optimization when req_comp != number of components in TGA; + fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) + add support for BMP version 5 (more ignored fields) + 1.38 (2014-06-06) + suppress MSVC warnings on integer casts truncating values + fix accidental rename of 'skip' field of I/O + 1.37 (2014-06-04) + remove duplicate typedef + 1.36 (2014-06-03) + convert to header file single-file library + if de-iphone isn't set, load iphone images color-swapped instead of returning NULL + 1.35 (2014-05-27) + various warnings + fix broken STBI_SIMD path + fix bug where stbi_load_from_file no longer left file pointer in correct place + fix broken non-easy path for 32-bit BMP (possibly never used) + TGA optimization by Arseny Kapoulkine + 1.34 (unknown) + use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case + 1.33 (2011-07-14) + make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements + 1.32 (2011-07-13) + support for "info" function for all supported filetypes (SpartanJ) + 1.31 (2011-06-20) + a few more leak fixes, bug in PNG handling (SpartanJ) + 1.30 (2011-06-11) + added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) + removed deprecated format-specific test/load functions + removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway + error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) + fix inefficiency in decoding 32-bit BMP (David Woo) + 1.29 (2010-08-16) + various warning fixes from Aurelien Pocheville + 1.28 (2010-08-01) + fix bug in GIF palette transparency (SpartanJ) + 1.27 (2010-08-01) + cast-to-stbi_uc to fix warnings + 1.26 (2010-07-24) + fix bug in file buffering for PNG reported by SpartanJ + 1.25 (2010-07-17) + refix trans_data warning (Won Chun) + 1.24 (2010-07-12) + perf improvements reading from files on platforms with lock-heavy fgetc() + minor perf improvements for jpeg + deprecated type-specific functions so we'll get feedback if they're needed + attempt to fix trans_data warning (Won Chun) + 1.23 fixed bug in iPhone support + 1.22 (2010-07-10) + removed image *writing* support + stbi_info support from Jetro Lauha + GIF support from Jean-Marc Lienher + iPhone PNG-extensions from James Brown + warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) + 1.21 fix use of 'stbi_uc' in header (reported by jon blow) + 1.20 added support for Softimage PIC, by Tom Seddon + 1.19 bug in interlaced PNG corruption check (found by ryg) + 1.18 (2008-08-02) + fix a threading bug (local mutable static) + 1.17 support interlaced PNG + 1.16 major bugfix - stbi__convert_format converted one too many pixels + 1.15 initialize some fields for thread safety + 1.14 fix threadsafe conversion bug + header-file-only version (#define STBI_HEADER_FILE_ONLY before including) + 1.13 threadsafe + 1.12 const qualifiers in the API + 1.11 Support installable IDCT, colorspace conversion routines + 1.10 Fixes for 64-bit (don't use "unsigned long") + optimized upsampling by Fabian "ryg" Giesen + 1.09 Fix format-conversion for PSD code (bad global variables!) + 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz + 1.07 attempt to fix C++ warning/errors again + 1.06 attempt to fix C++ warning/errors again + 1.05 fix TGA loading to return correct *comp and use good luminance calc + 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free + 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR + 1.02 support for (subset of) HDR files, float interface for preferred access to them + 1.01 fix bug: possible bug in handling right-side up bmps... not sure + fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all + 1.00 interface to zlib that skips zlib header + 0.99 correct handling of alpha in palette + 0.98 TGA loader by lonesock; dynamically add loaders (untested) + 0.97 jpeg errors on too large a file; also catch another malloc failure + 0.96 fix detection of invalid v value - particleman@mollyrocket forum + 0.95 during header scan, seek to markers in case of padding + 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same + 0.93 handle jpegtran output; verbose errors + 0.92 read 4,8,16,24,32-bit BMP files of several formats + 0.91 output 24-bit Windows 3.0 BMP files + 0.90 fix a few more warnings; bump version number to approach 1.0 + 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd + 0.60 fix compiling as c++ + 0.59 fix warnings: merge Dave Moore's -Wall fixes + 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian + 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available + 0.56 fix bug: zlib uncompressed mode len vs. nlen + 0.55 fix bug: restart_interval not initialized to 0 + 0.54 allow NULL for 'int *comp' + 0.53 fix bug in png 3->4; speedup png decoding + 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments + 0.51 obey req_comp requests, 1-component jpegs return as 1-component, + on 'test' only check type, not whether we support this variant + 0.50 (2006-11-19) + first released version +*/ + + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------------ +*/ diff --git a/external/rlottie/src/vector/varenaalloc.cpp b/external/rlottie/src/vector/varenaalloc.cpp new file mode 100644 index 000000000..16af38738 --- /dev/null +++ b/external/rlottie/src/vector/varenaalloc.cpp @@ -0,0 +1,166 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "varenaalloc.h" +#include +#include + +static char* end_chain(char*) { return nullptr; } + +static uint32_t first_allocated_block(uint32_t blockSize, uint32_t firstHeapAllocation) { + return firstHeapAllocation > 0 ? firstHeapAllocation : + blockSize > 0 ? blockSize : 1024; +} + +VArenaAlloc::VArenaAlloc(char* block, size_t size, size_t firstHeapAllocation) + : fDtorCursor {block} + , fCursor {block} + , fEnd {block + ToU32(size)} + , fFirstBlock {block} + , fFirstSize {ToU32(size)} + , fFirstHeapAllocationSize {first_allocated_block(ToU32(size), ToU32(firstHeapAllocation))} +{ + if (size < sizeof(Footer)) { + fEnd = fCursor = fDtorCursor = nullptr; + } + + if (fCursor != nullptr) { + this->installFooter(end_chain, 0); + } +} + +VArenaAlloc::~VArenaAlloc() { + RunDtorsOnBlock(fDtorCursor); +} + +void VArenaAlloc::reset() { + this->~VArenaAlloc(); + new (this) VArenaAlloc{fFirstBlock, fFirstSize, fFirstHeapAllocationSize}; +} + +void VArenaAlloc::installFooter(FooterAction* action, uint32_t padding) { + assert(padding < 64); + int64_t actionInt = (int64_t)(intptr_t)action; + + // The top 14 bits should be either all 0s or all 1s. Check this. + assert((actionInt << 6) >> 6 == actionInt); + Footer encodedFooter = (actionInt << 6) | padding; + memmove(fCursor, &encodedFooter, sizeof(Footer)); + fCursor += sizeof(Footer); + fDtorCursor = fCursor; +} + +void VArenaAlloc::installPtrFooter(FooterAction* action, char* ptr, uint32_t padding) { + memmove(fCursor, &ptr, sizeof(char*)); + fCursor += sizeof(char*); + this->installFooter(action, padding); +} + +char* VArenaAlloc::SkipPod(char* footerEnd) { + char* objEnd = footerEnd - (sizeof(Footer) + sizeof(int32_t)); + int32_t skip; + memmove(&skip, objEnd, sizeof(int32_t)); + return objEnd - skip; +} + +void VArenaAlloc::RunDtorsOnBlock(char* footerEnd) { + while (footerEnd != nullptr) { + Footer footer; + memcpy(&footer, footerEnd - sizeof(Footer), sizeof(Footer)); + + FooterAction* action = (FooterAction*)(footer >> 6); + ptrdiff_t padding = footer & 63; + + footerEnd = action(footerEnd) - padding; + } +} + +char* VArenaAlloc::NextBlock(char* footerEnd) { + char* objEnd = footerEnd - (sizeof(Footer) + sizeof(char*)); + char* next; + memmove(&next, objEnd, sizeof(char*)); + RunDtorsOnBlock(next); + delete [] objEnd; + return nullptr; +} + +void VArenaAlloc::installUint32Footer(FooterAction* action, uint32_t value, uint32_t padding) { + memmove(fCursor, &value, sizeof(uint32_t)); + fCursor += sizeof(uint32_t); + this->installFooter(action, padding); +} + +void VArenaAlloc::ensureSpace(uint32_t size, uint32_t alignment) { + constexpr uint32_t headerSize = sizeof(Footer) + sizeof(ptrdiff_t); + // The chrome c++ library we use does not define std::max_align_t. + // This must be conservative to add the right amount of extra memory to handle the alignment + // padding. + constexpr uint32_t alignof_max_align_t = 8; + constexpr uint32_t maxSize = std::numeric_limits::max(); + constexpr uint32_t overhead = headerSize + sizeof(Footer); + AssertRelease(size <= maxSize - overhead); + uint32_t objSizeAndOverhead = size + overhead; + if (alignment > alignof_max_align_t) { + uint32_t alignmentOverhead = alignment - 1; + AssertRelease(objSizeAndOverhead <= maxSize - alignmentOverhead); + objSizeAndOverhead += alignmentOverhead; + } + + uint32_t minAllocationSize; + if (fFirstHeapAllocationSize <= maxSize / fFib0) { + minAllocationSize = fFirstHeapAllocationSize * fFib0; + fFib0 += fFib1; + std::swap(fFib0, fFib1); + } else { + minAllocationSize = maxSize; + } + uint32_t allocationSize = std::max(objSizeAndOverhead, minAllocationSize); + + // Round up to a nice size. If > 32K align to 4K boundary else up to max_align_t. The > 32K + // heuristic is from the JEMalloc behavior. + { + uint32_t mask = allocationSize > (1 << 15) ? (1 << 12) - 1 : 16 - 1; + AssertRelease(allocationSize <= maxSize - mask); + allocationSize = (allocationSize + mask) & ~mask; + } + + char* newBlock = new char[allocationSize]; + + auto previousDtor = fDtorCursor; + fCursor = newBlock; + fDtorCursor = newBlock; + fEnd = fCursor + allocationSize; + this->installPtrFooter(NextBlock, previousDtor, 0); +} + +char* VArenaAlloc::allocObjectWithFooter(uint32_t sizeIncludingFooter, uint32_t alignment) { + uintptr_t mask = alignment - 1; + +restart: + uint32_t skipOverhead = 0; + bool needsSkipFooter = fCursor != fDtorCursor; + if (needsSkipFooter) { + skipOverhead = sizeof(Footer) + sizeof(uint32_t); + } + char* objStart = (char*)((uintptr_t)(fCursor + skipOverhead + mask) & ~mask); + uint32_t totalSize = sizeIncludingFooter + skipOverhead; + //std::cout<<"non POD object size = "< fEnd - objStart) { + this->ensureSpace(totalSize, alignment); + goto restart; + } + + AssertRelease((ptrdiff_t)totalSize <= fEnd - objStart); + + // Install a skip footer if needed, thus terminating a run of POD data. The calling code is + // responsible for installing the footer after the object. + if (needsSkipFooter) { + this->installUint32Footer(SkipPod, ToU32(fCursor - fDtorCursor), 0); + } + + return objStart; +} diff --git a/external/rlottie/src/vector/varenaalloc.h b/external/rlottie/src/vector/varenaalloc.h new file mode 100644 index 000000000..ed03b53f2 --- /dev/null +++ b/external/rlottie/src/vector/varenaalloc.h @@ -0,0 +1,232 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef VARENAALLOC_H +#define VARENAALLOC_H +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// SkArenaAlloc allocates object and destroys the allocated objects when destroyed. It's designed +// to minimize the number of underlying block allocations. SkArenaAlloc allocates first out of an +// (optional) user-provided block of memory, and when that's exhausted it allocates on the heap, +// starting with an allocation of firstHeapAllocation bytes. If your data (plus a small overhead) +// fits in the user-provided block, SkArenaAlloc never uses the heap, and if it fits in +// firstHeapAllocation bytes, it'll use the heap only once. If 0 is specified for +// firstHeapAllocation, then blockSize is used unless that too is 0, then 1024 is used. +// +// Examples: +// +// char block[mostCasesSize]; +// SkArenaAlloc arena(block, mostCasesSize); +// +// If mostCasesSize is too large for the stack, you can use the following pattern. +// +// std::unique_ptr block{new char[mostCasesSize]}; +// SkArenaAlloc arena(block.get(), mostCasesSize, almostAllCasesSize); +// +// If the program only sometimes allocates memory, use the following pattern. +// +// SkArenaAlloc arena(nullptr, 0, almostAllCasesSize); +// +// The storage does not necessarily need to be on the stack. Embedding the storage in a class also +// works. +// +// class Foo { +// char storage[mostCasesSize]; +// SkArenaAlloc arena (storage, mostCasesSize); +// }; +// +// In addition, the system is optimized to handle POD data including arrays of PODs (where +// POD is really data with no destructors). For POD data it has zero overhead per item, and a +// typical per block overhead of 8 bytes. For non-POD objects there is a per item overhead of 4 +// bytes. For arrays of non-POD objects there is a per array overhead of typically 8 bytes. There +// is an addition overhead when switching from POD data to non-POD data of typically 8 bytes. +// +// If additional blocks are needed they are increased exponentially. This strategy bounds the +// recursion of the RunDtorsOnBlock to be limited to O(log size-of-memory). Block size grow using +// the Fibonacci sequence which means that for 2^32 memory there are 48 allocations, and for 2^48 +// there are 71 allocations. +class VArenaAlloc { +public: + VArenaAlloc(char* block, size_t blockSize, size_t firstHeapAllocation); + + explicit VArenaAlloc(size_t firstHeapAllocation) + : VArenaAlloc(nullptr, 0, firstHeapAllocation) + {} + + ~VArenaAlloc(); + + template + T* make(Args&&... args) { + uint32_t size = ToU32(sizeof(T)); + uint32_t alignment = ToU32(alignof(T)); + char* objStart; + if (std::is_trivially_destructible::value) { + objStart = this->allocObject(size, alignment); + fCursor = objStart + size; + } else { + objStart = this->allocObjectWithFooter(size + sizeof(Footer), alignment); + // Can never be UB because max value is alignof(T). + uint32_t padding = ToU32(objStart - fCursor); + + // Advance to end of object to install footer. + fCursor = objStart + size; + FooterAction* releaser = [](char* objEnd) { + char* objStart = objEnd - (sizeof(T) + sizeof(Footer)); + ((T*)objStart)->~T(); + return objStart; + }; + this->installFooter(releaser, padding); + } + + // This must be last to make objects with nested use of this allocator work. + return new(objStart) T(std::forward(args)...); + } + + template + T* makeArrayDefault(size_t count) { + uint32_t safeCount = ToU32(count); + T* array = (T*)this->commonArrayAlloc(safeCount); + + // If T is primitive then no initialization takes place. + for (size_t i = 0; i < safeCount; i++) { + new (&array[i]) T; + } + return array; + } + + template + T* makeArray(size_t count) { + uint32_t safeCount = ToU32(count); + T* array = (T*)this->commonArrayAlloc(safeCount); + + // If T is primitive then the memory is initialized. For example, an array of chars will + // be zeroed. + for (size_t i = 0; i < safeCount; i++) { + new (&array[i]) T(); + } + return array; + } + + // Only use makeBytesAlignedTo if none of the typed variants are impractical to use. + void* makeBytesAlignedTo(size_t size, size_t align) { + auto objStart = this->allocObject(ToU32(size), ToU32(align)); + fCursor = objStart + size; + return objStart; + } + + // Destroy all allocated objects, free any heap allocations. + void reset(); + +private: + static void AssertRelease(bool cond) { if (!cond) { ::abort(); } } + static uint32_t ToU32(size_t v) { + return (uint32_t)v; + } + + using Footer = int64_t; + using FooterAction = char* (char*); + + static char* SkipPod(char* footerEnd); + static void RunDtorsOnBlock(char* footerEnd); + static char* NextBlock(char* footerEnd); + + void installFooter(FooterAction* releaser, uint32_t padding); + void installUint32Footer(FooterAction* action, uint32_t value, uint32_t padding); + void installPtrFooter(FooterAction* action, char* ptr, uint32_t padding); + + void ensureSpace(uint32_t size, uint32_t alignment); + + char* allocObject(uint32_t size, uint32_t alignment) { + uintptr_t mask = alignment - 1; + uintptr_t alignedOffset = (~reinterpret_cast(fCursor) + 1) & mask; + uintptr_t totalSize = size + alignedOffset; + AssertRelease(totalSize >= size); + + if (totalSize > static_cast(fEnd - fCursor)) { + this->ensureSpace(size, alignment); + alignedOffset = (~reinterpret_cast(fCursor) + 1) & mask; + } + return fCursor + alignedOffset; + } + + char* allocObjectWithFooter(uint32_t sizeIncludingFooter, uint32_t alignment); + + template + char* commonArrayAlloc(uint32_t count) { + char* objStart; + AssertRelease(count <= std::numeric_limits::max() / sizeof(T)); + uint32_t arraySize = ToU32(count * sizeof(T)); + uint32_t alignment = ToU32(alignof(T)); + + if (std::is_trivially_destructible::value) { + objStart = this->allocObject(arraySize, alignment); + fCursor = objStart + arraySize; + } else { + constexpr uint32_t overhead = sizeof(Footer) + sizeof(uint32_t); + AssertRelease(arraySize <= std::numeric_limits::max() - overhead); + uint32_t totalSize = arraySize + overhead; + objStart = this->allocObjectWithFooter(totalSize, alignment); + + // Can never be UB because max value is alignof(T). + uint32_t padding = ToU32(objStart - fCursor); + + // Advance to end of array to install footer.? + fCursor = objStart + arraySize; + this->installUint32Footer( + [](char* footerEnd) { + char* objEnd = footerEnd - (sizeof(Footer) + sizeof(uint32_t)); + uint32_t count; + memmove(&count, objEnd, sizeof(uint32_t)); + char* objStart = objEnd - count * sizeof(T); + T* array = (T*) objStart; + for (uint32_t i = 0; i < count; i++) { + array[i].~T(); + } + return objStart; + }, + ToU32(count), + padding); + } + + return objStart; + } + + char* fDtorCursor; + char* fCursor; + char* fEnd; + char* const fFirstBlock; + const uint32_t fFirstSize; + const uint32_t fFirstHeapAllocationSize; + + // Use the Fibonacci sequence as the growth factor for block size. The size of the block + // allocated is fFib0 * fFirstHeapAllocationSize. Using 2 ^ n * fFirstHeapAllocationSize + // had too much slop for Android. + uint32_t fFib0 {1}, fFib1 {1}; +}; + +// Helper for defining allocators with inline/reserved storage. +// For argument declarations, stick to the base type (SkArenaAlloc). +template +class VSTArenaAlloc : public VArenaAlloc { +public: + explicit VSTArenaAlloc(size_t firstHeapAllocation = InlineStorageSize) + : VArenaAlloc(fInlineStorage, InlineStorageSize, firstHeapAllocation) {} + +private: + char fInlineStorage[InlineStorageSize]; +}; + +#endif // VARENAALLOC_H diff --git a/external/rlottie/src/vector/vbezier.cpp b/external/rlottie/src/vector/vbezier.cpp new file mode 100644 index 000000000..797d56440 --- /dev/null +++ b/external/rlottie/src/vector/vbezier.cpp @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vbezier.h" +#include +#include "vline.h" + +V_BEGIN_NAMESPACE + +VBezier VBezier::fromPoints(const VPointF &p1, const VPointF &p2, + const VPointF &p3, const VPointF &p4) +{ + VBezier b; + b.x1 = p1.x(); + b.y1 = p1.y(); + b.x2 = p2.x(); + b.y2 = p2.y(); + b.x3 = p3.x(); + b.y3 = p3.y(); + b.x4 = p4.x(); + b.y4 = p4.y(); + return b; +} + +float VBezier::length() const +{ + const auto len = VLine::length(x1, y1, x2, y2) + + VLine::length(x2, y2, x3, y3) + + VLine::length(x3, y3, x4, y4); + + const auto chord = VLine::length(x1, y1, x4, y4); + + if ((len - chord) > 0.01) { + VBezier left, right; + split(&left, &right); + return left.length() + right.length(); + } + + return len; +} + +VBezier VBezier::onInterval(float t0, float t1) const +{ + if (t0 == 0 && t1 == 1) return *this; + + VBezier bezier = *this; + + VBezier result; + bezier.parameterSplitLeft(t0, &result); + float trueT = (t1 - t0) / (1 - t0); + bezier.parameterSplitLeft(trueT, &result); + + return result; +} + +float VBezier::tAtLength(float l, float totalLength) const +{ + float t = 1.0; + const float error = 0.01f; + if (l > totalLength || vCompare(l, totalLength)) return t; + + t *= 0.5; + + float lastBigger = 1.0; + while (1) { + VBezier right = *this; + VBezier left; + right.parameterSplitLeft(t, &left); + float lLen = left.length(); + if (fabs(lLen - l) < error) break; + + if (lLen < l) { + t += (lastBigger - t) * 0.5f; + } else { + lastBigger = t; + t -= t * 0.5f; + } + } + return t; +} + +void VBezier::splitAtLength(float len, VBezier *left, VBezier *right) +{ + float t; + + *right = *this; + t = right->tAtLength(len); + right->parameterSplitLeft(t, left); +} + +VPointF VBezier::derivative(float t) const +{ + // p'(t) = 3 * (-(1-2t+t^2) * p0 + (1 - 4 * t + 3 * t^2) * p1 + (2 * t - 3 * + // t^2) * p2 + t^2 * p3) + + float m_t = 1.0f - t; + + float d = t * t; + float a = -m_t * m_t; + float b = 1 - 4 * t + 3 * d; + float c = 2 * t - 3 * d; + + return 3 * VPointF(a * x1 + b * x2 + c * x3 + d * x4, + a * y1 + b * y2 + c * y3 + d * y4); +} + +float VBezier::angleAt(float t) const +{ + if (t < 0 || t > 1) { + return 0; + } + return VLine({}, derivative(t)).angle(); +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vbezier.h b/external/rlottie/src/vector/vbezier.h new file mode 100644 index 000000000..18b7c596d --- /dev/null +++ b/external/rlottie/src/vector/vbezier.h @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VBEZIER_H +#define VBEZIER_H + +#include + +V_BEGIN_NAMESPACE + +class VBezier { +public: + VBezier() = default; + VPointF pointAt(float t) const; + float angleAt(float t) const; + VBezier onInterval(float t0, float t1) const; + float length() const; + static void coefficients(float t, float &a, float &b, float &c, float &d); + static VBezier fromPoints(const VPointF &start, const VPointF &cp1, + const VPointF &cp2, const VPointF &end); + inline void parameterSplitLeft(float t, VBezier *left); + inline void split(VBezier *firstHalf, VBezier *secondHalf) const; + float tAtLength(float len) const { return tAtLength(len , length());} + float tAtLength(float len, float totalLength) const; + void splitAtLength(float len, VBezier *left, VBezier *right); + VPointF pt1() const { return {x1, y1}; } + VPointF pt2() const { return {x2, y2}; } + VPointF pt3() const { return {x3, y3}; } + VPointF pt4() const { return {x4, y4}; } + +private: + VPointF derivative(float t) const; + float x1, y1, x2, y2, x3, y3, x4, y4; +}; + +inline void VBezier::coefficients(float t, float &a, float &b, float &c, + float &d) +{ + float m_t = 1.0f - t; + b = m_t * m_t; + c = t * t; + d = c * t; + a = b * m_t; + b *= 3.0f * t; + c *= 3.0f * m_t; +} + +inline VPointF VBezier::pointAt(float t) const +{ + // numerically more stable: + float x, y; + + float m_t = 1.0f - t; + { + float a = x1 * m_t + x2 * t; + float b = x2 * m_t + x3 * t; + float c = x3 * m_t + x4 * t; + a = a * m_t + b * t; + b = b * m_t + c * t; + x = a * m_t + b * t; + } + { + float a = y1 * m_t + y2 * t; + float b = y2 * m_t + y3 * t; + float c = y3 * m_t + y4 * t; + a = a * m_t + b * t; + b = b * m_t + c * t; + y = a * m_t + b * t; + } + return {x, y}; +} + +inline void VBezier::parameterSplitLeft(float t, VBezier *left) +{ + left->x1 = x1; + left->y1 = y1; + + left->x2 = x1 + t * (x2 - x1); + left->y2 = y1 + t * (y2 - y1); + + left->x3 = x2 + t * (x3 - x2); // temporary holding spot + left->y3 = y2 + t * (y3 - y2); // temporary holding spot + + x3 = x3 + t * (x4 - x3); + y3 = y3 + t * (y4 - y3); + + x2 = left->x3 + t * (x3 - left->x3); + y2 = left->y3 + t * (y3 - left->y3); + + left->x3 = left->x2 + t * (left->x3 - left->x2); + left->y3 = left->y2 + t * (left->y3 - left->y2); + + left->x4 = x1 = left->x3 + t * (x2 - left->x3); + left->y4 = y1 = left->y3 + t * (y2 - left->y3); +} + +inline void VBezier::split(VBezier *firstHalf, VBezier *secondHalf) const +{ + float c = (x2 + x3) * 0.5f; + firstHalf->x2 = (x1 + x2) * 0.5f; + secondHalf->x3 = (x3 + x4) * 0.5f; + firstHalf->x1 = x1; + secondHalf->x4 = x4; + firstHalf->x3 = (firstHalf->x2 + c) * 0.5f; + secondHalf->x2 = (secondHalf->x3 + c) * 0.5f; + firstHalf->x4 = secondHalf->x1 = (firstHalf->x3 + secondHalf->x2) * 0.5f; + + c = (y2 + y3) / 2; + firstHalf->y2 = (y1 + y2) * 0.5f; + secondHalf->y3 = (y3 + y4) * 0.5f; + firstHalf->y1 = y1; + secondHalf->y4 = y4; + firstHalf->y3 = (firstHalf->y2 + c) * 0.5f; + secondHalf->y2 = (secondHalf->y3 + c) * 0.5f; + firstHalf->y4 = secondHalf->y1 = (firstHalf->y3 + secondHalf->y2) * 0.5f; +} + +V_END_NAMESPACE + +#endif // VBEZIER_H diff --git a/external/rlottie/src/vector/vbitmap.cpp b/external/rlottie/src/vector/vbitmap.cpp new file mode 100644 index 000000000..22cb24346 --- /dev/null +++ b/external/rlottie/src/vector/vbitmap.cpp @@ -0,0 +1,219 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vbitmap.h" +#include +#include +#include "vdrawhelper.h" +#include "vglobal.h" + +V_BEGIN_NAMESPACE + +void VBitmap::Impl::reset(size_t width, size_t height, VBitmap::Format format) +{ + mRoData = nullptr; + mWidth = uint(width); + mHeight = uint(height); + mFormat = format; + + mDepth = depth(format); + mStride = ((mWidth * mDepth + 31) >> 5) + << 2; // bytes per scanline (must be multiple of 4) + mOwnData = std::make_unique(mStride * mHeight); +} + +void VBitmap::Impl::reset(uchar *data, size_t width, size_t height, size_t bytesPerLine, + VBitmap::Format format) +{ + mRoData = data; + mWidth = uint(width); + mHeight = uint(height); + mStride = uint(bytesPerLine); + mFormat = format; + mDepth = depth(format); + mOwnData = nullptr; +} + +uchar VBitmap::Impl::depth(VBitmap::Format format) +{ + uchar depth = 1; + switch (format) { + case VBitmap::Format::Alpha8: + depth = 8; + break; + case VBitmap::Format::ARGB32: + case VBitmap::Format::ARGB32_Premultiplied: + depth = 32; + break; + default: + break; + } + return depth; +} + +void VBitmap::Impl::fill(uint /*pixel*/) +{ + //@TODO +} + +void VBitmap::Impl::updateLuma() +{ + if (mFormat != VBitmap::Format::ARGB32_Premultiplied) return; + auto dataPtr = data(); + for (uint col = 0; col < mHeight; col++) { + uint *pixel = (uint *)(dataPtr + mStride * col); + for (uint row = 0; row < mWidth; row++) { + int alpha = vAlpha(*pixel); + if (alpha == 0) { + pixel++; + continue; + } + + int red = vRed(*pixel); + int green = vGreen(*pixel); + int blue = vBlue(*pixel); + + if (alpha != 255) { + // un multiply + red = (red * 255) / alpha; + green = (green * 255) / alpha; + blue = (blue * 255) / alpha; + } + int luminosity = int(0.299f * red + 0.587f * green + 0.114f * blue); + *pixel = luminosity << 24; + pixel++; + } + } +} + +VBitmap::VBitmap(size_t width, size_t height, VBitmap::Format format) +{ + if (width <= 0 || height <= 0 || format == Format::Invalid) return; + + mImpl = rc_ptr(width, height, format); +} + +VBitmap::VBitmap(uchar *data, size_t width, size_t height, size_t bytesPerLine, + VBitmap::Format format) +{ + if (!data || width <= 0 || height <= 0 || bytesPerLine <= 0 || + format == Format::Invalid) + return; + + mImpl = rc_ptr(data, width, height, bytesPerLine, format); +} + +void VBitmap::reset(uchar *data, size_t w, size_t h, size_t bytesPerLine, + VBitmap::Format format) +{ + if (mImpl) { + mImpl->reset(data, w, h, bytesPerLine, format); + } else { + mImpl = rc_ptr(data, w, h, bytesPerLine, format); + } +} + +void VBitmap::reset(size_t w, size_t h, VBitmap::Format format) +{ + if (mImpl) { + if (w == mImpl->width() && h == mImpl->height() && + format == mImpl->format()) { + return; + } + mImpl->reset(w, h, format); + } else { + mImpl = rc_ptr(w, h, format); + } +} + +size_t VBitmap::stride() const +{ + return mImpl ? mImpl->stride() : 0; +} + +size_t VBitmap::width() const +{ + return mImpl ? mImpl->width() : 0; +} + +size_t VBitmap::height() const +{ + return mImpl ? mImpl->height() : 0; +} + +size_t VBitmap::depth() const +{ + return mImpl ? mImpl->mDepth : 0; +} + +uchar *VBitmap::data() +{ + return mImpl ? mImpl->data() : nullptr; +} + +uchar *VBitmap::data() const +{ + return mImpl ? mImpl->data() : nullptr; +} + +VRect VBitmap::rect() const +{ + return mImpl ? mImpl->rect() : VRect(); +} + +VSize VBitmap::size() const +{ + return mImpl ? mImpl->size() : VSize(); +} + +bool VBitmap::valid() const +{ + return mImpl; +} + +VBitmap::Format VBitmap::format() const +{ + return mImpl ? mImpl->format() : VBitmap::Format::Invalid; +} + +void VBitmap::fill(uint pixel) +{ + if (mImpl) mImpl->fill(pixel); +} + +/* + * This is special function which converts + * RGB value to Luminosity and stores it in + * the Alpha component of the pixel. + * After this conversion the bitmap data is no more + * in RGB space. but the Alpha component contains the + * Luminosity value of the pixel in HSL color space. + * NOTE: this api has its own special usecase + * make sure you know what you are doing before using + * this api. + */ +void VBitmap::updateLuma() +{ + if (mImpl) mImpl->updateLuma(); +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vbitmap.h b/external/rlottie/src/vector/vbitmap.h new file mode 100644 index 000000000..a068d7446 --- /dev/null +++ b/external/rlottie/src/vector/vbitmap.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VBITMAP_H +#define VBITMAP_H + +#include "vrect.h" +#include + +V_BEGIN_NAMESPACE + +class VBitmap { +public: + enum class Format: uchar { + Invalid, + Alpha8, + ARGB32, + ARGB32_Premultiplied + }; + + VBitmap() = default; + VBitmap(size_t w, size_t h, VBitmap::Format format); + VBitmap(uchar *data, size_t w, size_t h, size_t bytesPerLine, VBitmap::Format format); + void reset(uchar *data, size_t w, size_t h, size_t stride, VBitmap::Format format); + void reset(size_t w, size_t h, VBitmap::Format format=Format::ARGB32_Premultiplied); + size_t stride() const; + size_t width() const; + size_t height() const; + size_t depth() const; + VBitmap::Format format() const; + bool valid() const; + uchar * data(); + uchar * data() const; + VRect rect() const; + VSize size() const; + void fill(uint pixel); + void updateLuma(); +private: + struct Impl { + std::unique_ptr mOwnData{nullptr}; + uchar * mRoData{nullptr}; + uint mWidth{0}; + uint mHeight{0}; + uint mStride{0}; + uchar mDepth{0}; + VBitmap::Format mFormat{VBitmap::Format::Invalid}; + + explicit Impl(size_t width, size_t height, VBitmap::Format format) + { + reset(width, height, format); + } + explicit Impl(uchar *data, size_t w, size_t h, size_t bytesPerLine, VBitmap::Format format) + { + reset(data, w, h, bytesPerLine, format); + } + VRect rect() const { return VRect(0, 0, mWidth, mHeight);} + VSize size() const { return VSize(mWidth, mHeight); } + size_t stride() const { return mStride; } + size_t width() const { return mWidth; } + size_t height() const { return mHeight; } + uchar * data() { return mRoData ? mRoData : mOwnData.get(); } + VBitmap::Format format() const { return mFormat; } + void reset(uchar *, size_t, size_t, size_t, VBitmap::Format); + void reset(size_t, size_t, VBitmap::Format); + static uchar depth(VBitmap::Format format); + void fill(uint); + void updateLuma(); + }; + + rc_ptr mImpl; +}; + +V_END_NAMESPACE + +#endif // VBITMAP_H diff --git a/external/rlottie/src/vector/vbrush.cpp b/external/rlottie/src/vector/vbrush.cpp new file mode 100644 index 000000000..fc0902ba8 --- /dev/null +++ b/external/rlottie/src/vector/vbrush.cpp @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vbrush.h" + +V_BEGIN_NAMESPACE + +VGradient::VGradient(VGradient::Type type) + : mType(type) +{ + if (mType == Type::Linear) + linear.x1 = linear.y1 = linear.x2 = linear.y2 = 0.0f; + else + radial.cx = radial.cy = radial.fx = + radial.fy = radial.cradius = radial.fradius = 0.0f; +} + +void VGradient::setStops(const VGradientStops &stops) +{ + mStops = stops; +} + +VBrush::VBrush(const VColor &color) : mType(VBrush::Type::Solid), mColor(color) +{ +} + +VBrush::VBrush(uchar r, uchar g, uchar b, uchar a) + : mType(VBrush::Type::Solid), mColor(r, g, b, a) + +{ +} + +VBrush::VBrush(const VGradient *gradient) +{ + if (!gradient) return; + + mGradient = gradient; + + if (gradient->mType == VGradient::Type::Linear) { + mType = VBrush::Type::LinearGradient; + } else if (gradient->mType == VGradient::Type::Radial) { + mType = VBrush::Type::RadialGradient; + } +} + +VBrush::VBrush(const VTexture *texture):mType(VBrush::Type::Texture), mTexture(texture) +{ +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vbrush.h b/external/rlottie/src/vector/vbrush.h new file mode 100644 index 000000000..74f8dcafe --- /dev/null +++ b/external/rlottie/src/vector/vbrush.h @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VBRUSH_H +#define VBRUSH_H + +#include +#include "vglobal.h" +#include "vmatrix.h" +#include "vpoint.h" +#include "vbitmap.h" + +V_BEGIN_NAMESPACE + +using VGradientStop = std::pair; +using VGradientStops = std::vector; +class VGradient { +public: + enum class Mode { Absolute, Relative }; + enum class Spread { Pad, Repeat, Reflect }; + enum class Type { Linear, Radial }; + explicit VGradient(VGradient::Type type); + void setStops(const VGradientStops &stops); + void setAlpha(float alpha) {mAlpha = alpha;} + float alpha() const {return mAlpha;} + +public: + static constexpr int colorTableSize = 1024; + VGradient::Type mType{Type::Linear}; + VGradient::Spread mSpread{Spread::Pad}; + VGradient::Mode mMode{Mode::Absolute}; + VGradientStops mStops; + float mAlpha{1.0}; + struct Linear{ + float x1{0}, y1{0}, x2{0}, y2{0}; + }; + struct Radial{ + float cx{0}, cy{0}, fx{0}, fy{0}, cradius{0}, fradius{0}; + }; + union { + Linear linear; + Radial radial; + }; + VMatrix mMatrix; +}; + +struct VTexture { + VBitmap mBitmap; + VMatrix mMatrix; + int mAlpha{255}; +}; + +class VBrush { +public: + enum class Type { NoBrush, Solid, LinearGradient, RadialGradient, Texture }; + VBrush():mType(Type::NoBrush),mColor(){}; + explicit VBrush(const VColor &color); + explicit VBrush(const VGradient *gradient); + explicit VBrush(uchar r, uchar g, uchar b, uchar a); + explicit VBrush(const VTexture *texture); + inline VBrush::Type type() const { return mType; } +public: + VBrush::Type mType{Type::NoBrush}; + union { + VColor mColor{}; + const VGradient *mGradient; + const VTexture *mTexture; + }; +}; + +V_END_NAMESPACE + +#endif // VBRUSH_H diff --git a/external/rlottie/src/vector/vcowptr.h b/external/rlottie/src/vector/vcowptr.h new file mode 100644 index 000000000..af2c7f248 --- /dev/null +++ b/external/rlottie/src/vector/vcowptr.h @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VCOWPTR_H +#define VCOWPTR_H + +#include +#include + +template +class vcow_ptr { + struct model { + std::atomic mRef{1}; + + model() = default; + + template + explicit model(Args&&... args) : mValue(std::forward(args)...){} + explicit model(const T& other) : mValue(other){} + + T mValue; + }; + model* mModel; + +public: + using element_type = T; + + vcow_ptr() + { + static model default_s; + mModel = &default_s; + ++mModel->mRef; + } + + ~vcow_ptr() + { + if (mModel && (--mModel->mRef == 0)) delete mModel; + } + + template + explicit vcow_ptr(Args&&... args) : mModel(new model(std::forward(args)...)) + { + } + + vcow_ptr(const vcow_ptr& x) noexcept : mModel(x.mModel) + { + assert(mModel); + ++mModel->mRef; + } + vcow_ptr(vcow_ptr&& x) noexcept : mModel(x.mModel) + { + assert(mModel); + x.mModel = nullptr; + } + + auto operator=(const vcow_ptr& x) noexcept -> vcow_ptr& + { + *this = vcow_ptr(x); + return *this; + } + + auto operator=(vcow_ptr&& x) noexcept -> vcow_ptr& + { + auto tmp = std::move(x); + swap(*this, tmp); + return *this; + } + + auto operator*() const noexcept -> const element_type& { return read(); } + + auto operator-> () const noexcept -> const element_type* { return &read(); } + + std::size_t refCount() const noexcept + { + assert(mModel); + + return mModel->mRef; + } + + bool unique() const noexcept + { + assert(mModel); + + return mModel->mRef == 1; + } + + auto write() -> element_type& + { + if (!unique()) *this = vcow_ptr(read()); + + return mModel->mValue; + } + + auto read() const noexcept -> const element_type& + { + assert(mModel); + + return mModel->mValue; + } + + friend inline void swap(vcow_ptr& x, vcow_ptr& y) noexcept + { + std::swap(x.mModel, y.mModel); + } +}; + +#endif // VCOWPTR_H diff --git a/external/rlottie/src/vector/vdasher.cpp b/external/rlottie/src/vector/vdasher.cpp new file mode 100644 index 000000000..759e30ac2 --- /dev/null +++ b/external/rlottie/src/vector/vdasher.cpp @@ -0,0 +1,254 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "vbezier.h" + +#include + +#include "vdasher.h" +#include "vline.h" + +V_BEGIN_NAMESPACE + +static constexpr float tolerance = 0.1f; +VDasher::VDasher(const float *dashArray, size_t size) +{ + mDashArray = reinterpret_cast(dashArray); + mArraySize = size / 2; + if (size % 2) mDashOffset = dashArray[size - 1]; + mIndex = 0; + mCurrentLength = 0; + mDiscard = false; + //if the dash array contains ZERO length + // segments or ZERO lengths gaps we could + // optimize those usecase. + for (size_t i = 0; i < mArraySize; i++) { + if (!vCompare(mDashArray[i].length, 0.0f)) + mNoLength = false; + if (!vCompare(mDashArray[i].gap, 0.0f)) + mNoGap = false; + } +} + +void VDasher::moveTo(const VPointF &p) +{ + mDiscard = false; + mStartNewSegment = true; + mCurPt = p; + mIndex = 0; + + if (!vCompare(mDashOffset, 0.0f)) { + float totalLength = 0.0; + for (size_t i = 0; i < mArraySize; i++) { + totalLength = mDashArray[i].length + mDashArray[i].gap; + } + float normalizeLen = std::fmod(mDashOffset, totalLength); + if (normalizeLen < 0.0f) { + normalizeLen = totalLength + normalizeLen; + } + // now the length is less than total length and +ve + // findout the current dash index , dashlength and gap. + for (size_t i = 0; i < mArraySize; i++) { + if (normalizeLen < mDashArray[i].length) { + mIndex = i; + mCurrentLength = mDashArray[i].length - normalizeLen; + mDiscard = false; + break; + } + normalizeLen -= mDashArray[i].length; + if (normalizeLen < mDashArray[i].gap) { + mIndex = i; + mCurrentLength = mDashArray[i].gap - normalizeLen; + mDiscard = true; + break; + } + normalizeLen -= mDashArray[i].gap; + } + } else { + mCurrentLength = mDashArray[mIndex].length; + } + if (vIsZero(mCurrentLength)) updateActiveSegment(); +} + +void VDasher::addLine(const VPointF &p) +{ + if (mDiscard) return; + + if (mStartNewSegment) { + mResult->moveTo(mCurPt); + mStartNewSegment = false; + } + mResult->lineTo(p); +} + +void VDasher::updateActiveSegment() +{ + mStartNewSegment = true; + + if (mDiscard) { + mDiscard = false; + mIndex = (mIndex + 1) % mArraySize; + mCurrentLength = mDashArray[mIndex].length; + } else { + mDiscard = true; + mCurrentLength = mDashArray[mIndex].gap; + } + if (vIsZero(mCurrentLength)) updateActiveSegment(); +} + +void VDasher::lineTo(const VPointF &p) +{ + VLine left, right; + VLine line(mCurPt, p); + float length = line.length(); + + if (length <= mCurrentLength) { + mCurrentLength -= length; + addLine(p); + } else { + while (length > mCurrentLength) { + length -= mCurrentLength; + line.splitAtLength(mCurrentLength, left, right); + + addLine(left.p2()); + updateActiveSegment(); + + line = right; + mCurPt = line.p1(); + } + // handle remainder + if (length > tolerance) { + mCurrentLength -= length; + addLine(line.p2()); + } + } + + if (mCurrentLength < tolerance) updateActiveSegment(); + + mCurPt = p; +} + +void VDasher::addCubic(const VPointF &cp1, const VPointF &cp2, const VPointF &e) +{ + if (mDiscard) return; + + if (mStartNewSegment) { + mResult->moveTo(mCurPt); + mStartNewSegment = false; + } + mResult->cubicTo(cp1, cp2, e); +} + +void VDasher::cubicTo(const VPointF &cp1, const VPointF &cp2, const VPointF &e) +{ + VBezier left, right; + VBezier b = VBezier::fromPoints(mCurPt, cp1, cp2, e); + float bezLen = b.length(); + + if (bezLen <= mCurrentLength) { + mCurrentLength -= bezLen; + addCubic(cp1, cp2, e); + } else { + while (bezLen > mCurrentLength) { + bezLen -= mCurrentLength; + b.splitAtLength(mCurrentLength, &left, &right); + + addCubic(left.pt2(), left.pt3(), left.pt4()); + updateActiveSegment(); + + b = right; + mCurPt = b.pt1(); + } + // handle remainder + if (bezLen > tolerance) { + mCurrentLength -= bezLen; + addCubic(b.pt2(), b.pt3(), b.pt4()); + } + } + + if (mCurrentLength < tolerance) updateActiveSegment(); + + mCurPt = e; +} + +void VDasher::dashHelper(const VPath &path, VPath &result) +{ + mResult = &result; + mResult->reserve(path.points().size(), path.elements().size()); + mIndex = 0; + const std::vector &elms = path.elements(); + const std::vector & pts = path.points(); + const VPointF * ptPtr = pts.data(); + + for (auto &i : elms) { + switch (i) { + case VPath::Element::MoveTo: { + moveTo(*ptPtr++); + break; + } + case VPath::Element::LineTo: { + lineTo(*ptPtr++); + break; + } + case VPath::Element::CubicTo: { + cubicTo(*ptPtr, *(ptPtr + 1), *(ptPtr + 2)); + ptPtr += 3; + break; + } + case VPath::Element::Close: { + // The point is already joined to start point in VPath + // no need to do anything here. + break; + } + } + } + mResult = nullptr; +} + +void VDasher::dashed(const VPath &path, VPath &result) +{ + if (mNoLength && mNoGap) return result.reset(); + + if (path.empty() || mNoLength) return result.reset(); + + if (mNoGap) return result.clone(path); + + result.reset(); + + dashHelper(path, result); +} + +VPath VDasher::dashed(const VPath &path) +{ + if (mNoLength && mNoGap) return path; + + if (path.empty() || mNoLength) return VPath(); + + if (mNoGap) return path; + + VPath result; + + dashHelper(path, result); + + return result; +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vdasher.h b/external/rlottie/src/vector/vdasher.h new file mode 100644 index 000000000..d9d62c2fb --- /dev/null +++ b/external/rlottie/src/vector/vdasher.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VDASHER_H +#define VDASHER_H +#include "vpath.h" + +V_BEGIN_NAMESPACE + +class VDasher { +public: + VDasher(const float *dashArray, size_t size); + VPath dashed(const VPath &path); + void dashed(const VPath &path, VPath &result); + +private: + void moveTo(const VPointF &p); + void lineTo(const VPointF &p); + void cubicTo(const VPointF &cp1, const VPointF &cp2, const VPointF &e); + void close(); + void addLine(const VPointF &p); + void addCubic(const VPointF &cp1, const VPointF &cp2, const VPointF &e); + void updateActiveSegment(); + +private: + void dashHelper(const VPath &path, VPath &result); + struct Dash { + float length; + float gap; + }; + const VDasher::Dash *mDashArray; + size_t mArraySize{0}; + VPointF mCurPt; + size_t mIndex{0}; /* index to the dash Array */ + float mCurrentLength; + float mDashOffset{0}; + VPath *mResult{nullptr}; + bool mDiscard{false}; + bool mStartNewSegment{true}; + bool mNoLength{true}; + bool mNoGap{true}; +}; + +V_END_NAMESPACE + +#endif // VDASHER_H diff --git a/external/rlottie/src/vector/vdebug.cpp b/external/rlottie/src/vector/vdebug.cpp new file mode 100644 index 000000000..03196ef37 --- /dev/null +++ b/external/rlottie/src/vector/vdebug.cpp @@ -0,0 +1,758 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vdebug.h" + +#ifdef LOTTIE_LOGGING_SUPPORT + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + +/* Returns microseconds since epoch */ +uint64_t timestamp_now() +{ + return std::chrono::duration_cast( + std::chrono::high_resolution_clock::now().time_since_epoch()) + .count(); +} + +/* I want [2016-10-13 00:01:23.528514] */ +void format_timestamp(std::ostream& os, uint64_t timestamp) +{ + // The next 3 lines do not work on MSVC! + // auto duration = std::chrono::microseconds(timestamp); + // std::chrono::high_resolution_clock::time_point time_point(duration); + // std::time_t time_t = + // std::chrono::high_resolution_clock::to_time_t(time_point); + std::time_t time_t = timestamp / 1000000; + auto gmtime = std::gmtime(&time_t); + char buffer[32]; + strftime(buffer, 32, "%Y-%m-%d %T.", gmtime); + char microseconds[7]; + snprintf(microseconds, 7, "%06llu", + (long long unsigned int)timestamp % 1000000); + os << '[' << buffer << microseconds << ']'; +} + +std::thread::id this_thread_id() +{ + static thread_local const std::thread::id id = std::this_thread::get_id(); + return id; +} + +template +struct TupleIndex; + +template +struct TupleIndex > { + static constexpr const std::size_t value = 0; +}; + +template +struct TupleIndex > { + static constexpr const std::size_t value = + 1 + TupleIndex >::value; +}; + +} // anonymous namespace + +typedef std::tuple + SupportedTypes; + +char const* to_string(LogLevel loglevel) +{ + switch (loglevel) { + case LogLevel::OFF: + return "OFF"; + case LogLevel::INFO: + return "INFO"; + case LogLevel::WARN: + return "WARN"; + case LogLevel::CRIT: + return "CRIT"; + } + return "XXXX"; +} + +template +void VDebug::encode(Arg arg) +{ + *reinterpret_cast(buffer()) = arg; + m_bytes_used += sizeof(Arg); +} + +template +void VDebug::encode(Arg arg, uint8_t type_id) +{ + resize_buffer_if_needed(sizeof(Arg) + sizeof(uint8_t)); + encode(type_id); + encode(arg); +} + +VDebug::VDebug(LogLevel level, char const* file, char const* function, + uint32_t line) + : m_bytes_used(0), m_buffer_size(sizeof(m_stack_buffer)) +{ + encode(timestamp_now()); + encode(this_thread_id()); + encode(string_literal_t(file)); + encode(string_literal_t(function)); + encode(line); + encode(level); + if (level == LogLevel::INFO) { + m_logAll = false; + } else { + m_logAll = true; + } +} + +VDebug::~VDebug() = default; + +void VDebug::stringify(std::ostream& os) +{ + char* b = !m_heap_buffer ? m_stack_buffer : m_heap_buffer.get(); + char const* const end = b + m_bytes_used; + uint64_t timestamp = *reinterpret_cast(b); + b += sizeof(uint64_t); + std::thread::id threadid = *reinterpret_cast(b); + b += sizeof(std::thread::id); + string_literal_t file = *reinterpret_cast(b); + b += sizeof(string_literal_t); + string_literal_t function = *reinterpret_cast(b); + b += sizeof(string_literal_t); + uint32_t line = *reinterpret_cast(b); + b += sizeof(uint32_t); + LogLevel loglevel = *reinterpret_cast(b); + b += sizeof(LogLevel); + if (m_logAll) { + format_timestamp(os, timestamp); + + os << '[' << to_string(loglevel) << ']' << '[' << threadid << ']' << '[' + << file.m_s << ':' << function.m_s << ':' << line << "] "; + } + + stringify(os, b, end); + os << std::endl; + + if (loglevel >= LogLevel::CRIT) os.flush(); +} + +template +char* decode(std::ostream& os, char* b, Arg* /*dummy*/) +{ + Arg arg = *reinterpret_cast(b); + os << arg; + return b + sizeof(Arg); +} + +template <> +char* decode(std::ostream& os, char* b, VDebug::string_literal_t* /*dummy*/) +{ + VDebug::string_literal_t s = + *reinterpret_cast(b); + os << s.m_s; + return b + sizeof(VDebug::string_literal_t); +} + +template <> +char* decode(std::ostream& os, char* b, char** /*dummy*/) +{ + while (*b != '\0') { + os << *b; + ++b; + } + return ++b; +} + +void VDebug::stringify(std::ostream& os, char* start, char const* const end) +{ + if (start == end) return; + + int type_id = static_cast(*start); + start++; + + switch (type_id) { + case 0: + stringify( + os, + decode(os, start, + static_cast::type*>( + nullptr)), + end); + return; + case 1: + stringify( + os, + decode(os, start, + static_cast::type*>( + nullptr)), + end); + return; + case 2: + stringify( + os, + decode(os, start, + static_cast::type*>( + nullptr)), + end); + return; + case 3: + stringify( + os, + decode(os, start, + static_cast::type*>( + nullptr)), + end); + return; + case 4: + stringify( + os, + decode(os, start, + static_cast::type*>( + nullptr)), + end); + return; + case 5: + stringify( + os, + decode(os, start, + static_cast::type*>( + nullptr)), + end); + return; + case 6: + stringify( + os, + decode(os, start, + static_cast::type*>( + nullptr)), + end); + return; + case 7: + stringify( + os, + decode(os, start, + static_cast::type*>( + nullptr)), + end); + return; + } +} + +char* VDebug::buffer() +{ + return !m_heap_buffer ? &m_stack_buffer[m_bytes_used] + : &(m_heap_buffer.get())[m_bytes_used]; +} + +void VDebug::resize_buffer_if_needed(size_t additional_bytes) +{ + size_t const required_size = m_bytes_used + additional_bytes; + + if (required_size <= m_buffer_size) return; + + if (!m_heap_buffer) { + m_buffer_size = std::max(static_cast(512), required_size); + m_heap_buffer = std::make_unique(m_buffer_size); + memcpy(m_heap_buffer.get(), m_stack_buffer, m_bytes_used); + return; + } else { + m_buffer_size = + std::max(static_cast(2 * m_buffer_size), required_size); + std::unique_ptr new_heap_buffer(new char[m_buffer_size]); + memcpy(new_heap_buffer.get(), m_heap_buffer.get(), m_bytes_used); + m_heap_buffer.swap(new_heap_buffer); + } +} + +void VDebug::encode(char const* arg) +{ + if (arg != nullptr) encode_c_string(arg, strlen(arg)); +} + +void VDebug::encode(char* arg) +{ + if (arg != nullptr) encode_c_string(arg, strlen(arg)); +} + +void VDebug::encode_c_string(char const* arg, size_t length) +{ + if (length == 0) return; + + resize_buffer_if_needed(1 + length + 1); + char* b = buffer(); + auto type_id = TupleIndex::value; + *reinterpret_cast(b++) = static_cast(type_id); + memcpy(b, arg, length + 1); + m_bytes_used += 1 + length + 1; +} + +void VDebug::encode(string_literal_t arg) +{ + encode( + arg, TupleIndex::value); +} + +VDebug& VDebug::operator<<(std::string const& arg) +{ + encode_c_string(arg.c_str(), arg.length()); + return *this; +} + +VDebug& VDebug::operator<<(int32_t arg) +{ + encode(arg, TupleIndex::value); + return *this; +} + +VDebug& VDebug::operator<<(uint32_t arg) +{ + encode(arg, TupleIndex::value); + return *this; +} + +// VDebug& VDebug::operator<<(int64_t arg) +// { +// encode < int64_t >(arg, TupleIndex < int64_t, SupportedTypes >::value); +// return *this; +// } + +// VDebug& VDebug::operator<<(uint64_t arg) +// { +// encode < uint64_t >(arg, TupleIndex < uint64_t, SupportedTypes >::value); +// return *this; +// } +VDebug& VDebug::operator<<(unsigned long arg) +{ + encode(arg, TupleIndex::value); + return *this; +} + +VDebug& VDebug::operator<<(long arg) +{ + encode(arg, TupleIndex::value); + return *this; +} + +VDebug& VDebug::operator<<(double arg) +{ + encode(arg, TupleIndex::value); + return *this; +} + +VDebug& VDebug::operator<<(char arg) +{ + encode(arg, TupleIndex::value); + return *this; +} + +struct BufferBase { + virtual ~BufferBase() = default; + virtual void push(VDebug&& logline) = 0; + virtual bool try_pop(VDebug& logline) = 0; +}; + +struct SpinLock { + SpinLock(std::atomic_flag& flag) : m_flag(flag) + { + while (m_flag.test_and_set(std::memory_order_acquire)) + ; + } + + ~SpinLock() { m_flag.clear(std::memory_order_release); } + +private: + std::atomic_flag& m_flag; +}; + +/* Multi Producer Single Consumer Ring Buffer */ +class RingBuffer : public BufferBase { +public: + struct alignas(64) Item { + Item() + : flag(), written(0), logline(LogLevel::INFO, nullptr, nullptr, 0) + { + } + + std::atomic_flag flag; + char written; + char padding[256 - sizeof(std::atomic_flag) - sizeof(char) - + sizeof(VDebug)]; + VDebug logline; + }; + + RingBuffer(size_t const size) + : m_size(size), + m_ring(static_cast(std::malloc(size * sizeof(Item)))), + m_write_index(0), + m_read_index(0) + { + for (size_t i = 0; i < m_size; ++i) { + new (&m_ring[i]) Item(); + } + static_assert(sizeof(Item) == 256, "Unexpected size != 256"); + } + + ~RingBuffer() override + { + for (size_t i = 0; i < m_size; ++i) { + m_ring[i].~Item(); + } + std::free(m_ring); + } + + void push(VDebug&& logline) override + { + unsigned int write_index = + m_write_index.fetch_add(1, std::memory_order_relaxed) % m_size; + Item& item = m_ring[write_index]; + SpinLock spinlock(item.flag); + item.logline = std::move(logline); + item.written = 1; + } + + bool try_pop(VDebug& logline) override + { + Item& item = m_ring[m_read_index % m_size]; + SpinLock spinlock(item.flag); + if (item.written == 1) { + logline = std::move(item.logline); + item.written = 0; + ++m_read_index; + return true; + } + return false; + } + + RingBuffer(RingBuffer const&) = delete; + RingBuffer& operator=(RingBuffer const&) = delete; + +private: + size_t const m_size; + Item* m_ring; + std::atomic m_write_index; + +public: + char pad[64]; + +private: + unsigned int m_read_index; +}; + +class Buffer { +public: + struct Item { + Item(VDebug&& logline) : logline(std::move(logline)) {} + char padding[256 - sizeof(VDebug)]; + VDebug logline; + }; + + static constexpr const size_t size = + 32768; // 8MB. Helps reduce memory fragmentation + + Buffer() : m_buffer(static_cast(std::malloc(size * sizeof(Item)))) + { + for (size_t i = 0; i <= size; ++i) { + m_write_state[i].store(0, std::memory_order_relaxed); + } + static_assert(sizeof(Item) == 256, "Unexpected size != 256"); + } + + ~Buffer() + { + unsigned int write_count = m_write_state[size].load(); + for (size_t i = 0; i < write_count; ++i) { + m_buffer[i].~Item(); + } + std::free(m_buffer); + } + + // Returns true if we need to switch to next buffer + bool push(VDebug&& logline, unsigned int const write_index) + { + new (&m_buffer[write_index]) Item(std::move(logline)); + m_write_state[write_index].store(1, std::memory_order_release); + return m_write_state[size].fetch_add(1, std::memory_order_acquire) + + 1 == + size; + } + + bool try_pop(VDebug& logline, unsigned int const read_index) + { + if (m_write_state[read_index].load(std::memory_order_acquire)) { + Item& item = m_buffer[read_index]; + logline = std::move(item.logline); + return true; + } + return false; + } + + Buffer(Buffer const&) = delete; + Buffer& operator=(Buffer const&) = delete; + +private: + Item* m_buffer; + std::atomic m_write_state[size + 1]; +}; + +class QueueBuffer : public BufferBase { +public: + QueueBuffer(QueueBuffer const&) = delete; + QueueBuffer& operator=(QueueBuffer const&) = delete; + + QueueBuffer() + : m_current_read_buffer{nullptr}, + m_write_index(0), + m_flag(), + m_read_index(0) + { + setup_next_write_buffer(); + } + + void push(VDebug&& logline) override + { + unsigned int write_index = + m_write_index.fetch_add(1, std::memory_order_relaxed); + if (write_index < Buffer::size) { + if (m_current_write_buffer.load(std::memory_order_acquire) + ->push(std::move(logline), write_index)) { + setup_next_write_buffer(); + } + } else { + while (m_write_index.load(std::memory_order_acquire) >= + Buffer::size) + ; + push(std::move(logline)); + } + } + + bool try_pop(VDebug& logline) override + { + if (m_current_read_buffer == nullptr) + m_current_read_buffer = get_next_read_buffer(); + + Buffer* read_buffer = m_current_read_buffer; + + if (read_buffer == nullptr) return false; + + if (read_buffer->try_pop(logline, m_read_index)) { + m_read_index++; + if (m_read_index == Buffer::size) { + m_read_index = 0; + m_current_read_buffer = nullptr; + SpinLock spinlock(m_flag); + m_buffers.pop(); + } + return true; + } + + return false; + } + +private: + void setup_next_write_buffer() + { + std::unique_ptr next_write_buffer(new Buffer()); + m_current_write_buffer.store(next_write_buffer.get(), + std::memory_order_release); + SpinLock spinlock(m_flag); + m_buffers.push(std::move(next_write_buffer)); + m_write_index.store(0, std::memory_order_relaxed); + } + + Buffer* get_next_read_buffer() + { + SpinLock spinlock(m_flag); + return m_buffers.empty() ? nullptr : m_buffers.front().get(); + } + +private: + std::queue > m_buffers; + std::atomic m_current_write_buffer; + Buffer* m_current_read_buffer; + std::atomic m_write_index; + std::atomic_flag m_flag; + unsigned int m_read_index; +}; + +class FileWriter { +public: + FileWriter(std::string const& log_directory, + std::string const& log_file_name, uint32_t log_file_roll_size_mb) + : m_log_file_roll_size_bytes(log_file_roll_size_mb * 1024 * 1024), + m_name(log_directory + log_file_name) + { + roll_file(); + } + + void write(VDebug& logline) + { + auto pos = m_os->tellp(); + logline.stringify(*m_os); + m_bytes_written += m_os->tellp() - pos; + if (m_bytes_written > m_log_file_roll_size_bytes) { + roll_file(); + } + } + +private: + void roll_file() + { + if (m_os) { + m_os->flush(); + m_os->close(); + } + + m_bytes_written = 0; + m_os = std::make_unique(); + // TODO Optimize this part. Does it even matter ? + std::string log_file_name = m_name; + log_file_name.append("."); + log_file_name.append(std::to_string(++m_file_number)); + log_file_name.append(".txt"); + m_os->open(log_file_name, std::ofstream::out | std::ofstream::trunc); + } + +private: + uint32_t m_file_number = 0; + std::streamoff m_bytes_written = 0; + uint32_t const m_log_file_roll_size_bytes; + std::string const m_name; + std::unique_ptr m_os; +}; + +class NanoLogger { +public: + NanoLogger(NonGuaranteedLogger ngl, std::string const& log_directory, + std::string const& log_file_name, uint32_t log_file_roll_size_mb) + : m_state(State::INIT), + m_buffer_base( + new RingBuffer(std::max(1u, ngl.ring_buffer_size_mb) * 1024 * 4)), + m_file_writer(log_directory, log_file_name, + std::max(1u, log_file_roll_size_mb)), + m_thread(&NanoLogger::pop, this) + { + m_state.store(State::READY, std::memory_order_release); + } + + NanoLogger(GuaranteedLogger /*gl*/, std::string const& log_directory, + std::string const& log_file_name, uint32_t log_file_roll_size_mb) + : m_state(State::INIT), + m_buffer_base(new QueueBuffer()), + m_file_writer(log_directory, log_file_name, + std::max(1u, log_file_roll_size_mb)), + m_thread(&NanoLogger::pop, this) + { + m_state.store(State::READY, std::memory_order_release); + } + + ~NanoLogger() + { + m_state.store(State::SHUTDOWN); + m_thread.join(); + } + + void add(VDebug&& logline) { m_buffer_base->push(std::move(logline)); } + + void pop() + { + // Wait for constructor to complete and pull all stores done there to + // this thread / core. + while (m_state.load(std::memory_order_acquire) == State::INIT) + std::this_thread::sleep_for(std::chrono::microseconds(50)); + + VDebug logline(LogLevel::INFO, nullptr, nullptr, 0); + + while (m_state.load() == State::READY) { + if (m_buffer_base->try_pop(logline)) + m_file_writer.write(logline); + else + std::this_thread::sleep_for(std::chrono::microseconds(50)); + } + + // Pop and log all remaining entries + while (m_buffer_base->try_pop(logline)) { + m_file_writer.write(logline); + } + } + +private: + enum class State { INIT, READY, SHUTDOWN }; + + std::atomic m_state; + std::unique_ptr m_buffer_base; + FileWriter m_file_writer; + std::thread m_thread; +}; + +std::unique_ptr nanologger; +std::atomic atomic_nanologger; + +bool VDebugServer::operator==(VDebug& logline) +{ + atomic_nanologger.load(std::memory_order_acquire)->add(std::move(logline)); + return true; +} + +void initialize(NonGuaranteedLogger ngl, std::string const& log_directory, + std::string const& log_file_name, + uint32_t log_file_roll_size_mb) +{ + nanologger = std::make_unique(ngl, log_directory, log_file_name, + log_file_roll_size_mb); + atomic_nanologger.store(nanologger.get(), std::memory_order_seq_cst); +} + +void initialize(GuaranteedLogger gl, std::string const& log_directory, + std::string const& log_file_name, + uint32_t log_file_roll_size_mb) +{ + nanologger = std::make_unique(gl, log_directory, log_file_name, + log_file_roll_size_mb); + atomic_nanologger.store(nanologger.get(), std::memory_order_seq_cst); +} + +std::atomic loglevel = {0}; + +void set_log_level(LogLevel level) +{ + loglevel.store(static_cast(level), std::memory_order_release); +} + +bool is_logged(LogLevel level) +{ + return static_cast(level) >= + loglevel.load(std::memory_order_relaxed); +} + +#endif // LOTTIE_LOGGING_SUPPORT diff --git a/external/rlottie/src/vector/vdebug.h b/external/rlottie/src/vector/vdebug.h new file mode 100644 index 000000000..5b6bef5b1 --- /dev/null +++ b/external/rlottie/src/vector/vdebug.h @@ -0,0 +1,187 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VDEBUG_H +#define VDEBUG_H + +#include "config.h" + +#ifdef LOTTIE_LOGGING_SUPPORT + +#include +#include +#include +#include +#include + +enum class LogLevel : uint8_t { INFO, WARN, CRIT, OFF }; + +class VDebug { +public: + VDebug(); + VDebug& debug() { return *this; } + VDebug(LogLevel level, char const* file, char const* function, + uint32_t line); + ~VDebug(); + + VDebug(VDebug&&) = default; + VDebug& operator=(VDebug&&) = default; + + void stringify(std::ostream& os); + + VDebug& operator<<(char arg); + VDebug& operator<<(int32_t arg); + VDebug& operator<<(uint32_t arg); + // VDebug& operator<<(int64_t arg); + // VDebug& operator<<(uint64_t arg); + + VDebug& operator<<(long arg); + VDebug& operator<<(unsigned long arg); + VDebug& operator<<(double arg); + VDebug& operator<<(std::string const& arg); + + template + VDebug& operator<<(const char (&arg)[N]) + { + encode(string_literal_t(arg)); + return *this; + } + + template + typename std::enable_if::value, + VDebug&>::type + operator<<(Arg const& arg) + { + encode(arg); + return *this; + } + + template + typename std::enable_if::value, VDebug&>::type + operator<<(Arg const& arg) + { + encode(arg); + return *this; + } + + struct string_literal_t { + explicit string_literal_t(char const* s) : m_s(s) {} + char const* m_s; + }; + +private: + char* buffer(); + + template + void encode(Arg arg); + + template + void encode(Arg arg, uint8_t type_id); + + void encode(char* arg); + void encode(char const* arg); + void encode(string_literal_t arg); + void encode_c_string(char const* arg, size_t length); + void resize_buffer_if_needed(size_t additional_bytes); + void stringify(std::ostream& os, char* start, char const* const end); + +private: + size_t m_bytes_used{0}; + size_t m_buffer_size{0}; + std::unique_ptr m_heap_buffer; + bool m_logAll; + char m_stack_buffer[256 - sizeof(bool) - 2 * sizeof(size_t) - + sizeof(decltype(m_heap_buffer)) - 8 /* Reserved */]; +}; + +struct VDebugServer { + /* + * Ideally this should have been operator+= + * Could not get that to compile, so here we are... + */ + bool operator==(VDebug&); +}; + +void set_log_level(LogLevel level); + +bool is_logged(LogLevel level); + +/* + * Non guaranteed logging. Uses a ring buffer to hold log lines. + * When the ring gets full, the previous log line in the slot will be dropped. + * Does not block producer even if the ring buffer is full. + * ring_buffer_size_mb - LogLines are pushed into a mpsc ring buffer whose size + * is determined by this parameter. Since each LogLine is 256 bytes, + * ring_buffer_size = ring_buffer_size_mb * 1024 * 1024 / 256 + */ +struct NonGuaranteedLogger { + NonGuaranteedLogger(uint32_t ring_buffer_size_mb_) + : ring_buffer_size_mb(ring_buffer_size_mb_) + { + } + uint32_t ring_buffer_size_mb; +}; + +/* + * Provides a guarantee log lines will not be dropped. + */ +struct GuaranteedLogger { +}; + +/* + * Ensure initialize() is called prior to any log statements. + * log_directory - where to create the logs. For example - "/tmp/" + * log_file_name - root of the file name. For example - "nanolog" + * This will create log files of the form - + * /tmp/nanolog.1.txt + * /tmp/nanolog.2.txt + * etc. + * log_file_roll_size_mb - mega bytes after which we roll to next log file. + */ +void initialize(GuaranteedLogger gl, std::string const& log_directory, + std::string const& log_file_name, + uint32_t log_file_roll_size_mb); +void initialize(NonGuaranteedLogger ngl, std::string const& log_directory, + std::string const& log_file_name, + uint32_t log_file_roll_size_mb); + +#define VDEBUG_LOG(LEVEL) \ + VDebugServer() == VDebug(LEVEL, __FILE__, __func__, __LINE__).debug() +#define vDebug is_logged(LogLevel::INFO) && VDEBUG_LOG(LogLevel::INFO) +#define vWarning is_logged(LogLevel::WARN) && VDEBUG_LOG(LogLevel::WARN) +#define vCritical is_logged(LogLevel::CRIT) && VDEBUG_LOG(LogLevel::CRIT) + +#else + +struct VDebug +{ + template + VDebug& operator<<(const Args &){return *this;} +}; + +#define vDebug VDebug() +#define vWarning VDebug() +#define vCritical VDebug() + +#endif //LOTTIE_LOGGING_SUPPORT + +#endif // VDEBUG_H diff --git a/external/rlottie/src/vector/vdrawable.cpp b/external/rlottie/src/vector/vdrawable.cpp new file mode 100644 index 000000000..c8ff02bc7 --- /dev/null +++ b/external/rlottie/src/vector/vdrawable.cpp @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vdrawable.h" +#include "vdasher.h" +#include "vraster.h" + +VDrawable::VDrawable(VDrawable::Type type) +{ + setType(type); +} + +VDrawable::~VDrawable() noexcept +{ + if (mStrokeInfo) { + if (mType == Type::StrokeWithDash) { + delete static_cast(mStrokeInfo); + } else { + delete mStrokeInfo; + } + } +} + +void VDrawable::setType(VDrawable::Type type) +{ + mType = type; + if (mType == VDrawable::Type::Stroke) { + mStrokeInfo = new StrokeInfo(); + } else if (mType == VDrawable::Type::StrokeWithDash) { + mStrokeInfo = new StrokeWithDashInfo(); + } +} + +void VDrawable::applyDashOp() +{ + if (mStrokeInfo && (mType == Type::StrokeWithDash)) { + auto obj = static_cast(mStrokeInfo); + if (!obj->mDash.empty()) { + VDasher dasher(obj->mDash.data(), obj->mDash.size()); + mPath.clone(dasher.dashed(mPath)); + } + } +} + +void VDrawable::preprocess(const VRect &clip) +{ + if (mFlag & (DirtyState::Path)) { + if (mType == Type::Fill) { + mRasterizer.rasterize(std::move(mPath), mFillRule, clip); + } else { + applyDashOp(); + mRasterizer.rasterize(std::move(mPath), mStrokeInfo->cap, mStrokeInfo->join, + mStrokeInfo->width, mStrokeInfo->miterLimit, clip); + } + mPath = {}; + mFlag &= ~DirtyFlag(DirtyState::Path); + } +} + +VRle VDrawable::rle() +{ + return mRasterizer.rle(); +} + +void VDrawable::setStrokeInfo(CapStyle cap, JoinStyle join, float miterLimit, + float strokeWidth) +{ + assert(mStrokeInfo); + if ((mStrokeInfo->cap == cap) && (mStrokeInfo->join == join) && + vCompare(mStrokeInfo->miterLimit, miterLimit) && + vCompare(mStrokeInfo->width, strokeWidth)) + return; + + mStrokeInfo->cap = cap; + mStrokeInfo->join = join; + mStrokeInfo->miterLimit = miterLimit; + mStrokeInfo->width = strokeWidth; + mFlag |= DirtyState::Path; +} + +void VDrawable::setDashInfo(std::vector &dashInfo) +{ + assert(mStrokeInfo); + assert(mType == VDrawable::Type::StrokeWithDash); + + auto obj = static_cast(mStrokeInfo); + bool hasChanged = false; + + if (obj->mDash.size() == dashInfo.size()) { + for (uint i = 0; i < dashInfo.size(); ++i) { + if (!vCompare(obj->mDash[i], dashInfo[i])) { + hasChanged = true; + break; + } + } + } else { + hasChanged = true; + } + + if (!hasChanged) return; + + obj->mDash = dashInfo; + + mFlag |= DirtyState::Path; +} + +void VDrawable::setPath(const VPath &path) +{ + mPath = path; + mFlag |= DirtyState::Path; +} diff --git a/external/rlottie/src/vector/vdrawable.h b/external/rlottie/src/vector/vdrawable.h new file mode 100644 index 000000000..357a69fdb --- /dev/null +++ b/external/rlottie/src/vector/vdrawable.h @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VDRAWABLE_H +#define VDRAWABLE_H +#include +#include +#include "vbrush.h" +#include "vpath.h" +#include "vrle.h" +#include "vraster.h" + +class VDrawable { +public: + enum class DirtyState : unsigned char { + None = 1<<0, + Path = 1<<1, + Stroke = 1<<2, + Brush = 1<<3, + All = (Path | Stroke | Brush) + }; + + enum class Type : unsigned char{ + Fill, + Stroke, + StrokeWithDash + }; + + explicit VDrawable(VDrawable::Type type = Type::Fill); + void setType(VDrawable::Type type); + ~VDrawable() noexcept; + + typedef vFlag DirtyFlag; + void setPath(const VPath &path); + void setFillRule(FillRule rule) { mFillRule = rule; } + void setBrush(const VBrush &brush) { mBrush = brush; } + void setStrokeInfo(CapStyle cap, JoinStyle join, float miterLimit, + float strokeWidth); + void setDashInfo(std::vector &dashInfo); + void preprocess(const VRect &clip); + void applyDashOp(); + VRle rle(); + void setName(const char *name) + { + mName = name; + } + const char* name() const { return mName; } + +public: + struct StrokeInfo { + float width{0.0}; + float miterLimit{10}; + CapStyle cap{CapStyle::Flat}; + JoinStyle join{JoinStyle::Bevel}; + }; + + struct StrokeWithDashInfo : public StrokeInfo{ + std::vector mDash; + }; + +public: + VPath mPath; + VBrush mBrush; + VRasterizer mRasterizer; + StrokeInfo *mStrokeInfo{nullptr}; + + DirtyFlag mFlag{DirtyState::All}; + FillRule mFillRule{FillRule::Winding}; + VDrawable::Type mType{Type::Fill}; + + const char *mName{nullptr}; +}; + +#endif // VDRAWABLE_H diff --git a/external/rlottie/src/vector/vdrawhelper.cpp b/external/rlottie/src/vector/vdrawhelper.cpp new file mode 100644 index 000000000..4594ae52c --- /dev/null +++ b/external/rlottie/src/vector/vdrawhelper.cpp @@ -0,0 +1,766 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vdrawhelper.h" +#include +#include +#include +#include +#include +#include + +static RenderFuncTable RenderTable; + +void VTextureData::setClip(const VRect &clip) +{ + left = clip.left(); + top = clip.top(); + right = std::min(clip.right(), int(width())) - 1; + bottom = std::min(clip.bottom(), int(height())) - 1; +} + +class VGradientCache { +public: + struct CacheInfo : public VColorTable { + inline CacheInfo(VGradientStops s) : stops(std::move(s)) {} + VGradientStops stops; + }; + using VCacheData = std::shared_ptr; + using VCacheKey = int64_t; + using VGradientColorTableHash = + std::unordered_multimap; + + bool generateGradientColorTable(const VGradientStops &stops, float alpha, + uint32_t *colorTable, int size); + VCacheData getBuffer(const VGradient &gradient) + { + VCacheKey hash_val = 0; + VCacheData info; + const VGradientStops &stops = gradient.mStops; + for (uint i = 0; i < stops.size() && i <= 2; i++) + hash_val += + VCacheKey(stops[i].second.premulARGB() * gradient.alpha()); + + { + std::lock_guard guard(mMutex); + + size_t count = mCache.count(hash_val); + if (!count) { + // key is not present in the hash + info = addCacheElement(hash_val, gradient); + } else if (count == 1) { + auto search = mCache.find(hash_val); + if (search->second->stops == stops) { + info = search->second; + } else { + // didn't find an exact match + info = addCacheElement(hash_val, gradient); + } + } else { + // we have a multiple data with same key + auto range = mCache.equal_range(hash_val); + for (auto it = range.first; it != range.second; ++it) { + if (it->second->stops == stops) { + info = it->second; + break; + } + } + if (!info) { + // didn't find an exact match + info = addCacheElement(hash_val, gradient); + } + } + } + return info; + } + + static VGradientCache &instance() + { + static VGradientCache CACHE; + return CACHE; + } + +protected: + uint maxCacheSize() const { return 60; } + VCacheData addCacheElement(VCacheKey hash_val, const VGradient &gradient) + { + if (mCache.size() == maxCacheSize()) { + uint count = maxCacheSize() / 10; + while (count--) { + mCache.erase(mCache.begin()); + } + } + auto cache_entry = std::make_shared(gradient.mStops); + cache_entry->alpha = generateGradientColorTable( + gradient.mStops, gradient.alpha(), cache_entry->buffer32, + VGradient::colorTableSize); + mCache.insert(std::make_pair(hash_val, cache_entry)); + return cache_entry; + } + +private: + VGradientCache() = default; + + VGradientColorTableHash mCache; + std::mutex mMutex; +}; + +bool VGradientCache::generateGradientColorTable(const VGradientStops &stops, + float opacity, + uint32_t *colorTable, int size) +{ + int dist, idist, pos = 0; + size_t i; + bool alpha = false; + size_t stopCount = stops.size(); + const VGradientStop *curr, *next, *start; + uint32_t curColor, nextColor; + float delta, t, incr, fpos; + + if (!vCompare(opacity, 1.0f)) alpha = true; + + start = stops.data(); + curr = start; + if (!curr->second.isOpaque()) alpha = true; + curColor = curr->second.premulARGB(opacity); + incr = 1.0f / (float)size; + fpos = 1.5f * incr; + + colorTable[pos++] = curColor; + + while (fpos <= curr->first) { + colorTable[pos] = colorTable[pos - 1]; + pos++; + fpos += incr; + } + + for (i = 0; i < stopCount - 1; ++i) { + curr = (start + i); + next = (start + i + 1); + delta = 1 / (next->first - curr->first); + if (!next->second.isOpaque()) alpha = true; + nextColor = next->second.premulARGB(opacity); + while (fpos < next->first && pos < size) { + t = (fpos - curr->first) * delta; + dist = (int)(255 * t); + idist = 255 - dist; + colorTable[pos] = + interpolate_pixel(curColor, idist, nextColor, dist); + ++pos; + fpos += incr; + } + curColor = nextColor; + } + + for (; pos < size; ++pos) colorTable[pos] = curColor; + + // Make sure the last color stop is represented at the end of the table + colorTable[size - 1] = curColor; + return alpha; +} + +void VRasterBuffer::clear() +{ + memset(mBuffer, 0, mHeight * mBytesPerLine); +} + +VBitmap::Format VRasterBuffer::prepare(const VBitmap *image) +{ + mBuffer = image->data(); + mWidth = image->width(); + mHeight = image->height(); + mBytesPerPixel = 4; + mBytesPerLine = image->stride(); + + mFormat = image->format(); + return mFormat; +} + +void VSpanData::init(VRasterBuffer *image) +{ + mRasterBuffer = image; + setDrawRegion(VRect(0, 0, int(image->width()), int(image->height()))); + mType = VSpanData::Type::None; + mBlendFunc = nullptr; + mUnclippedBlendFunc = nullptr; +} + +/* + * Gradient Draw routines + * + */ + +#define FIXPT_BITS 8 +#define FIXPT_SIZE (1 << FIXPT_BITS) +static inline void getLinearGradientValues(LinearGradientValues *v, + const VSpanData * data) +{ + const VGradientData *grad = &data->mGradient; + v->dx = grad->linear.x2 - grad->linear.x1; + v->dy = grad->linear.y2 - grad->linear.y1; + v->l = v->dx * v->dx + v->dy * v->dy; + v->off = 0; + if (v->l != 0) { + v->dx /= v->l; + v->dy /= v->l; + v->off = -v->dx * grad->linear.x1 - v->dy * grad->linear.y1; + } +} + +static inline void getRadialGradientValues(RadialGradientValues *v, + const VSpanData * data) +{ + const VGradientData &gradient = data->mGradient; + v->dx = gradient.radial.cx - gradient.radial.fx; + v->dy = gradient.radial.cy - gradient.radial.fy; + + v->dr = gradient.radial.cradius - gradient.radial.fradius; + v->sqrfr = gradient.radial.fradius * gradient.radial.fradius; + + v->a = v->dr * v->dr - v->dx * v->dx - v->dy * v->dy; + v->inv2a = 1 / (2 * v->a); + + v->extended = !vIsZero(gradient.radial.fradius) || v->a <= 0; +} + +static inline int gradientClamp(const VGradientData *grad, int ipos) +{ + int limit; + + if (grad->mSpread == VGradient::Spread::Repeat) { + ipos = ipos % VGradient::colorTableSize; + ipos = ipos < 0 ? VGradient::colorTableSize + ipos : ipos; + } else if (grad->mSpread == VGradient::Spread::Reflect) { + limit = VGradient::colorTableSize * 2; + ipos = ipos % limit; + ipos = ipos < 0 ? limit + ipos : ipos; + ipos = ipos >= VGradient::colorTableSize ? limit - 1 - ipos : ipos; + } else { + if (ipos < 0) + ipos = 0; + else if (ipos >= VGradient::colorTableSize) + ipos = VGradient::colorTableSize - 1; + } + return ipos; +} + +static uint32_t gradientPixelFixed(const VGradientData *grad, int fixed_pos) +{ + int ipos = (fixed_pos + (FIXPT_SIZE / 2)) >> FIXPT_BITS; + + return grad->mColorTable[gradientClamp(grad, ipos)]; +} + +static inline uint32_t gradientPixel(const VGradientData *grad, float pos) +{ + int ipos = (int)(pos * (VGradient::colorTableSize - 1) + (float)(0.5)); + + return grad->mColorTable[gradientClamp(grad, ipos)]; +} + +void fetch_linear_gradient(uint32_t *buffer, const Operator *op, + const VSpanData *data, int y, int x, int length) +{ + float t, inc; + const VGradientData *gradient = &data->mGradient; + + bool affine = true; + float rx = 0, ry = 0; + if (op->linear.l == 0) { + t = inc = 0; + } else { + rx = data->m21 * (y + float(0.5)) + data->m11 * (x + float(0.5)) + + data->dx; + ry = data->m22 * (y + float(0.5)) + data->m12 * (x + float(0.5)) + + data->dy; + t = op->linear.dx * rx + op->linear.dy * ry + op->linear.off; + inc = op->linear.dx * data->m11 + op->linear.dy * data->m12; + affine = !data->m13 && !data->m23; + + if (affine) { + t *= (VGradient::colorTableSize - 1); + inc *= (VGradient::colorTableSize - 1); + } + } + + const uint32_t *end = buffer + length; + if (affine) { + if (inc > float(-1e-5) && inc < float(1e-5)) { + memfill32(buffer, gradientPixelFixed(gradient, int(t * FIXPT_SIZE)), + length); + } else { + if (t + inc * length < float(INT_MAX >> (FIXPT_BITS + 1)) && + t + inc * length > float(INT_MIN >> (FIXPT_BITS + 1))) { + // we can use fixed point math + int t_fixed = int(t * FIXPT_SIZE); + int inc_fixed = int(inc * FIXPT_SIZE); + while (buffer < end) { + *buffer = gradientPixelFixed(gradient, t_fixed); + t_fixed += inc_fixed; + ++buffer; + } + } else { + // we have to fall back to float math + while (buffer < end) { + *buffer = + gradientPixel(gradient, t / VGradient::colorTableSize); + t += inc; + ++buffer; + } + } + } + } else { // fall back to float math here as well + float rw = data->m23 * (y + float(0.5)) + data->m13 * (x + float(0.5)) + + data->m33; + while (buffer < end) { + float xt = rx / rw; + float yt = ry / rw; + t = (op->linear.dx * xt + op->linear.dy * yt) + op->linear.off; + + *buffer = gradientPixel(gradient, t); + rx += data->m11; + ry += data->m12; + rw += data->m13; + if (!rw) { + rw += data->m13; + } + ++buffer; + } + } +} + +static inline float radialDeterminant(float a, float b, float c) +{ + return (b * b) - (4 * a * c); +} + +static void fetch(uint32_t *buffer, uint32_t *end, const Operator *op, + const VSpanData *data, float det, float delta_det, + float delta_delta_det, float b, float delta_b) +{ + if (op->radial.extended) { + while (buffer < end) { + uint32_t result = 0; + if (det >= 0) { + float w = std::sqrt(det) - b; + if (data->mGradient.radial.fradius + op->radial.dr * w >= 0) + result = gradientPixel(&data->mGradient, w); + } + + *buffer = result; + + det += delta_det; + delta_det += delta_delta_det; + b += delta_b; + + ++buffer; + } + } else { + while (buffer < end) { + *buffer++ = gradientPixel(&data->mGradient, std::sqrt(det) - b); + + det += delta_det; + delta_det += delta_delta_det; + b += delta_b; + } + } +} + +void fetch_radial_gradient(uint32_t *buffer, const Operator *op, + const VSpanData *data, int y, int x, int length) +{ + // avoid division by zero + if (vIsZero(op->radial.a)) { + memfill32(buffer, 0, length); + return; + } + + float rx = + data->m21 * (y + float(0.5)) + data->dx + data->m11 * (x + float(0.5)); + float ry = + data->m22 * (y + float(0.5)) + data->dy + data->m12 * (x + float(0.5)); + bool affine = !data->m13 && !data->m23; + + uint32_t *end = buffer + length; + if (affine) { + rx -= data->mGradient.radial.fx; + ry -= data->mGradient.radial.fy; + + float inv_a = 1 / float(2 * op->radial.a); + + const float delta_rx = data->m11; + const float delta_ry = data->m12; + + float b = 2 * (op->radial.dr * data->mGradient.radial.fradius + + rx * op->radial.dx + ry * op->radial.dy); + float delta_b = + 2 * (delta_rx * op->radial.dx + delta_ry * op->radial.dy); + const float b_delta_b = 2 * b * delta_b; + const float delta_b_delta_b = 2 * delta_b * delta_b; + + const float bb = b * b; + const float delta_bb = delta_b * delta_b; + + b *= inv_a; + delta_b *= inv_a; + + const float rxrxryry = rx * rx + ry * ry; + const float delta_rxrxryry = delta_rx * delta_rx + delta_ry * delta_ry; + const float rx_plus_ry = 2 * (rx * delta_rx + ry * delta_ry); + const float delta_rx_plus_ry = 2 * delta_rxrxryry; + + inv_a *= inv_a; + + float det = + (bb - 4 * op->radial.a * (op->radial.sqrfr - rxrxryry)) * inv_a; + float delta_det = (b_delta_b + delta_bb + + 4 * op->radial.a * (rx_plus_ry + delta_rxrxryry)) * + inv_a; + const float delta_delta_det = + (delta_b_delta_b + 4 * op->radial.a * delta_rx_plus_ry) * inv_a; + + fetch(buffer, end, op, data, det, delta_det, delta_delta_det, b, + delta_b); + } else { + float rw = data->m23 * (y + float(0.5)) + data->m33 + + data->m13 * (x + float(0.5)); + + while (buffer < end) { + if (rw == 0) { + *buffer = 0; + } else { + float invRw = 1 / rw; + float gx = rx * invRw - data->mGradient.radial.fx; + float gy = ry * invRw - data->mGradient.radial.fy; + float b = 2 * (op->radial.dr * data->mGradient.radial.fradius + + gx * op->radial.dx + gy * op->radial.dy); + float det = radialDeterminant( + op->radial.a, b, op->radial.sqrfr - (gx * gx + gy * gy)); + + uint32_t result = 0; + if (det >= 0) { + float detSqrt = std::sqrt(det); + + float s0 = (-b - detSqrt) * op->radial.inv2a; + float s1 = (-b + detSqrt) * op->radial.inv2a; + + float s = vMax(s0, s1); + + if (data->mGradient.radial.fradius + op->radial.dr * s >= 0) + result = gradientPixel(&data->mGradient, s); + } + + *buffer = result; + } + + rx += data->m11; + ry += data->m12; + rw += data->m13; + + ++buffer; + } + } +} + +static inline Operator getOperator(const VSpanData *data) +{ + Operator op; + bool solidSource = false; + + switch (data->mType) { + case VSpanData::Type::Solid: + solidSource = (vAlpha(data->mSolid) == 255); + op.srcFetch = nullptr; + break; + case VSpanData::Type::LinearGradient: + solidSource = false; + getLinearGradientValues(&op.linear, data); + op.srcFetch = &fetch_linear_gradient; + break; + case VSpanData::Type::RadialGradient: + solidSource = false; + getRadialGradientValues(&op.radial, data); + op.srcFetch = &fetch_radial_gradient; + break; + default: + op.srcFetch = nullptr; + break; + } + + op.mode = data->mBlendMode; + if (op.mode == BlendMode::SrcOver && solidSource) op.mode = BlendMode::Src; + + op.funcSolid = RenderTable.color(op.mode); + op.func = RenderTable.src(op.mode); + + return op; +} + +static void blend_color(size_t size, const VRle::Span *array, void *userData) +{ + VSpanData *data = (VSpanData *)(userData); + Operator op = getOperator(data); + const uint color = data->mSolid; + + for (size_t i = 0 ; i < size; ++i) { + const auto &span = array[i]; + op.funcSolid(data->buffer(span.x, span.y), span.len, color, span.coverage); + } +} + +// Signature of Process Object +// void Pocess(uint* scratchBuffer, size_t x, size_t y, uchar cov) +template +static inline void process_in_chunk(const VRle::Span *array, size_t size, + Process process) +{ + std::array buf; + for (size_t i = 0; i < size; i++) { + const auto &span = array[i]; + size_t len = span.len; + size_t x = span.x; + while (len) { + auto l = std::min(len, buf.size()); + process(buf.data(), x, span.y, l, span.coverage); + x += l; + len -= l; + } + } +} + +static void blend_gradient(size_t size, const VRle::Span *array, + void *userData) +{ + VSpanData *data = (VSpanData *)(userData); + Operator op = getOperator(data); + + if (!op.srcFetch) return; + + process_in_chunk( + array, size, + [&](uint *scratch, size_t x, size_t y, size_t len, uchar cov) { + op.srcFetch(scratch, &op, data, (int)y, (int)x, (int)len); + op.func(data->buffer((int)x, (int)y), (int)len, scratch, cov); + }); +} + +template +constexpr const T &clamp(const T &v, const T &lo, const T &hi) +{ + return v < lo ? lo : hi < v ? hi : v; +} + +static constexpr inline uchar alpha_mul(uchar a, uchar b) +{ + return ((a * b) >> 8); +} + +static void blend_image_xform(size_t size, const VRle::Span *array, + void *userData) +{ + const auto data = reinterpret_cast(userData); + const auto &src = data->texture(); + + if (src.format() != VBitmap::Format::ARGB32_Premultiplied && + src.format() != VBitmap::Format::ARGB32) { + //@TODO other formats not yet handled. + return; + } + + Operator op = getOperator(data); + + process_in_chunk( + array, size, + [&](uint *scratch, size_t x, size_t y, size_t len, uchar cov) { + const auto coverage = (cov * src.alpha()) >> 8; + const float xfactor = y * data->m21 + data->dx + data->m11; + const float yfactor = y * data->m22 + data->dy + data->m12; + for (size_t i = 0; i < len; i++) { + const float fx = (x + i) * data->m11 + xfactor; + const float fy = (x + i) * data->m12 + yfactor; + const int px = clamp(int(fx), src.left, src.right); + const int py = clamp(int(fy), src.top, src.bottom); + scratch[i] = src.pixel(px, py); + } + op.func(data->buffer((int)x, (int)y), (int)len, scratch, coverage); + }); +} + +static void blend_image(size_t size, const VRle::Span *array, void *userData) +{ + const auto data = reinterpret_cast(userData); + const auto &src = data->texture(); + + if (src.format() != VBitmap::Format::ARGB32_Premultiplied && + src.format() != VBitmap::Format::ARGB32) { + //@TODO other formats not yet handled. + return; + } + + Operator op = getOperator(data); + + for (size_t i = 0; i < size; i++) { + const auto &span = array[i]; + int x = span.x; + int length = span.len; + int sx = x + int(data->dx); + int sy = span.y + int(data->dy); + + // notyhing to copy. + if (sy < 0 || sy >= int(src.height()) || sx >= int(src.width()) || + (sx + length) <= 0) + continue; + + // intersecting left edge of image + if (sx < 0) { + x -= sx; + length += sx; + sx = 0; + } + // intersecting right edge of image + if (sx + length > int(src.width())) length = (int)src.width() - sx; + + op.func(data->buffer(x, span.y), length, src.pixelRef(sx, sy), + alpha_mul(span.coverage, src.alpha())); + } +} + +void VSpanData::setup(const VBrush &brush, BlendMode /*mode*/, int /*alpha*/) +{ + transformType = VMatrix::MatrixType::None; + + switch (brush.type()) { + case VBrush::Type::NoBrush: + mType = VSpanData::Type::None; + break; + case VBrush::Type::Solid: + mType = VSpanData::Type::Solid; + mSolid = brush.mColor.premulARGB(); + break; + case VBrush::Type::LinearGradient: { + mType = VSpanData::Type::LinearGradient; + mColorTable = VGradientCache::instance().getBuffer(*brush.mGradient); + mGradient.mColorTable = mColorTable->buffer32; + mGradient.mColorTableAlpha = mColorTable->alpha; + mGradient.linear.x1 = brush.mGradient->linear.x1; + mGradient.linear.y1 = brush.mGradient->linear.y1; + mGradient.linear.x2 = brush.mGradient->linear.x2; + mGradient.linear.y2 = brush.mGradient->linear.y2; + mGradient.mSpread = brush.mGradient->mSpread; + setupMatrix(brush.mGradient->mMatrix); + break; + } + case VBrush::Type::RadialGradient: { + mType = VSpanData::Type::RadialGradient; + mColorTable = VGradientCache::instance().getBuffer(*brush.mGradient); + mGradient.mColorTable = mColorTable->buffer32; + mGradient.mColorTableAlpha = mColorTable->alpha; + mGradient.radial.cx = brush.mGradient->radial.cx; + mGradient.radial.cy = brush.mGradient->radial.cy; + mGradient.radial.fx = brush.mGradient->radial.fx; + mGradient.radial.fy = brush.mGradient->radial.fy; + mGradient.radial.cradius = brush.mGradient->radial.cradius; + mGradient.radial.fradius = brush.mGradient->radial.fradius; + mGradient.mSpread = brush.mGradient->mSpread; + setupMatrix(brush.mGradient->mMatrix); + break; + } + case VBrush::Type::Texture: { + mType = VSpanData::Type::Texture; + initTexture(&brush.mTexture->mBitmap, brush.mTexture->mAlpha, + brush.mTexture->mBitmap.rect()); + setupMatrix(brush.mTexture->mMatrix); + break; + } + default: + break; + } + updateSpanFunc(); +} + +void VSpanData::setupMatrix(const VMatrix &matrix) +{ + VMatrix inv = matrix.inverted(); + m11 = inv.m11; + m12 = inv.m12; + m13 = inv.m13; + m21 = inv.m21; + m22 = inv.m22; + m23 = inv.m23; + m33 = inv.m33; + dx = inv.mtx; + dy = inv.mty; + transformType = inv.type(); + + const bool affine = inv.isAffine(); + const float f1 = m11 * m11 + m21 * m21; + const float f2 = m12 * m12 + m22 * m22; + fast_matrix = affine && f1 < 1e4 && f2 < 1e4 && f1 > (1.0 / 65536) && + f2 > (1.0 / 65536) && fabs(dx) < 1e4 && fabs(dy) < 1e4; +} + +void VSpanData::initTexture(const VBitmap *bitmap, int alpha, + const VRect &sourceRect) +{ + mType = VSpanData::Type::Texture; + mTexture.prepare(bitmap); + mTexture.setClip(sourceRect); + mTexture.setAlpha(alpha); + updateSpanFunc(); +} + +void VSpanData::updateSpanFunc() +{ + switch (mType) { + case VSpanData::Type::None: + mUnclippedBlendFunc = nullptr; + break; + case VSpanData::Type::Solid: + mUnclippedBlendFunc = &blend_color; + break; + case VSpanData::Type::LinearGradient: + case VSpanData::Type::RadialGradient: { + mUnclippedBlendFunc = &blend_gradient; + break; + } + case VSpanData::Type::Texture: { + //@TODO update proper image function. + if (transformType <= VMatrix::MatrixType::Translate) { + mUnclippedBlendFunc = &blend_image; + } else { + mUnclippedBlendFunc = &blend_image_xform; + } + break; + } + } +} + +#if !defined(__SSE2__) && !defined(__ARM_NEON__) +void memfill32(uint32_t *dest, uint32_t value, int length) +{ + // let compiler do the auto vectorization. + for (int i = 0 ; i < length; i++) { + *dest++ = value; + } +} +#endif + diff --git a/external/rlottie/src/vector/vdrawhelper.h b/external/rlottie/src/vector/vdrawhelper.h new file mode 100644 index 000000000..e654e93bc --- /dev/null +++ b/external/rlottie/src/vector/vdrawhelper.h @@ -0,0 +1,270 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VDRAWHELPER_H +#define VDRAWHELPER_H + +#include +#include +#include "assert.h" +#include "vbitmap.h" +#include "vbrush.h" +#include "vrect.h" +#include "vrle.h" + +V_USE_NAMESPACE + +struct VSpanData; +struct Operator; + +struct RenderFunc +{ + using Color = void (*)(uint32_t *dest, int length, uint32_t color, uint32_t alpha); + using Src = void (*)(uint32_t *dest, int length, const uint32_t *src, uint32_t alpha); + enum class Type { + Invalid, + Color, + Src, + }; + RenderFunc() = default; + RenderFunc(Type t, Color f):type_(t), color_(f){assert(t == Type::Color);} + RenderFunc(Type t, Src f):type_(t), src_(f){ assert(t == Type::Src);} + + Type type_{Type::Invalid}; + union { + Color color_; + Src src_; + }; +}; + +class RenderFuncTable +{ +public: + RenderFuncTable(); + RenderFunc::Color color(BlendMode mode) const + { + return colorTable[uint32_t(mode)].color_; + } + RenderFunc::Src src(BlendMode mode) const + { + return srcTable[uint32_t(mode)].src_; + } +private: + void neon(); + void sse(); + void updateColor(BlendMode mode, RenderFunc::Color f) + { + colorTable[uint32_t(mode)] = {RenderFunc::Type::Color, f}; + } + void updateSrc(BlendMode mode, RenderFunc::Src f) + { + srcTable[uint32_t(mode)] = {RenderFunc::Type::Src, f}; + } +private: + std::array colorTable; + std::array srcTable; +}; + +typedef void (*SourceFetchProc)(uint32_t *buffer, const Operator *o, + const VSpanData *data, int y, int x, + int length); +typedef void (*ProcessRleSpan)(size_t count, const VRle::Span *spans, + void *userData); + +extern void memfill32(uint32_t *dest, uint32_t value, int count); + +struct LinearGradientValues { + float dx; + float dy; + float l; + float off; +}; + +struct RadialGradientValues { + float dx; + float dy; + float dr; + float sqrfr; + float a; + float inv2a; + bool extended; +}; + +struct Operator { + BlendMode mode; + SourceFetchProc srcFetch; + RenderFunc::Color funcSolid; + RenderFunc::Src func; + union { + LinearGradientValues linear; + RadialGradientValues radial; + }; +}; + +class VRasterBuffer { +public: + VBitmap::Format prepare(const VBitmap *image); + void clear(); + + void resetBuffer(int val = 0); + + inline uchar *scanLine(int y) + { + assert(y >= 0); + assert(size_t(y) < mHeight); + return mBuffer + y * mBytesPerLine; + } + uint32_t *pixelRef(int x, int y) const + { + return (uint32_t *)(mBuffer + y * mBytesPerLine + x * mBytesPerPixel); + } + + size_t width() const { return mWidth; } + size_t height() const { return mHeight; } + size_t bytesPerLine() const { return mBytesPerLine; } + size_t bytesPerPixel() const { return mBytesPerPixel; } + VBitmap::Format format() const { return mFormat; } + +private: + VBitmap::Format mFormat{VBitmap::Format::ARGB32_Premultiplied}; + size_t mWidth{0}; + size_t mHeight{0}; + size_t mBytesPerLine{0}; + size_t mBytesPerPixel{0}; + mutable uchar * mBuffer{nullptr}; +}; + +struct VGradientData { + VGradient::Spread mSpread; + struct Linear { + float x1, y1, x2, y2; + }; + struct Radial { + float cx, cy, fx, fy, cradius, fradius; + }; + union { + Linear linear; + Radial radial; + }; + const uint32_t *mColorTable; + bool mColorTableAlpha; +}; + +struct VTextureData : public VRasterBuffer { + uint32_t pixel(int x, int y) const { return *pixelRef(x, y); }; + uchar alpha() const { return mAlpha; } + void setAlpha(uchar alpha) { mAlpha = alpha; } + void setClip(const VRect &clip); + // clip rect + int left; + int right; + int top; + int bottom; + bool hasAlpha; + uchar mAlpha; +}; + +struct VColorTable { + uint32_t buffer32[VGradient::colorTableSize]; + bool alpha{true}; +}; + +struct VSpanData { + enum class Type { None, Solid, LinearGradient, RadialGradient, Texture }; + + void updateSpanFunc(); + void init(VRasterBuffer *image); + void setup(const VBrush &brush, BlendMode mode = BlendMode::SrcOver, + int alpha = 255); + void setupMatrix(const VMatrix &matrix); + + VRect clipRect() const + { + return VRect(0, 0, mDrawableSize.width(), mDrawableSize.height()); + } + + void setDrawRegion(const VRect ®ion) + { + mOffset = VPoint(region.left(), region.top()); + mDrawableSize = VSize(region.width(), region.height()); + } + + uint *buffer(int x, int y) const + { + return mRasterBuffer->pixelRef(x + mOffset.x(), y + mOffset.y()); + } + void initTexture(const VBitmap *image, int alpha, const VRect &sourceRect); + const VTextureData &texture() const { return mTexture; } + + BlendMode mBlendMode{BlendMode::SrcOver}; + VRasterBuffer * mRasterBuffer; + ProcessRleSpan mBlendFunc; + ProcessRleSpan mUnclippedBlendFunc; + VSpanData::Type mType; + std::shared_ptr mColorTable{nullptr}; + VPoint mOffset; // offset to the subsurface + VSize mDrawableSize; // suburface size + uint32_t mSolid; + VGradientData mGradient; + VTextureData mTexture; + + float m11, m12, m13, m21, m22, m23, m33, dx, dy; // inverse xform matrix + bool fast_matrix{true}; + VMatrix::MatrixType transformType{VMatrix::MatrixType::None}; +}; + +#define BYTE_MUL(c, a) \ + ((((((c) >> 8) & 0x00ff00ff) * (a)) & 0xff00ff00) + \ + (((((c)&0x00ff00ff) * (a)) >> 8) & 0x00ff00ff)) + +inline constexpr int vRed(uint32_t c) +{ + return ((c >> 16) & 0xff); +} + +inline constexpr int vGreen(uint32_t c) +{ + return ((c >> 8) & 0xff); +} + +inline constexpr int vBlue(uint32_t c) +{ + return (c & 0xff); +} + +inline constexpr int vAlpha(uint32_t c) +{ + return c >> 24; +} + +static inline uint32_t interpolate_pixel(uint x, uint a, uint y, uint b) +{ + uint t = (x & 0xff00ff) * a + (y & 0xff00ff) * b; + t >>= 8; + t &= 0xff00ff; + x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b; + x &= 0xff00ff00; + x |= t; + return x; +} + +#endif // QDRAWHELPER_P_H diff --git a/external/rlottie/src/vector/vdrawhelper_common.cpp b/external/rlottie/src/vector/vdrawhelper_common.cpp new file mode 100644 index 000000000..b2eb6db01 --- /dev/null +++ b/external/rlottie/src/vector/vdrawhelper_common.cpp @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include "vdrawhelper.h" + +/* +result = s +dest = s * ca + d * cia +*/ +static void color_Source(uint32_t *dest, int length, uint32_t color, + uint32_t alpha) +{ + int ialpha, i; + + if (alpha == 255) { + memfill32(dest, color, length); + } else { + ialpha = 255 - alpha; + color = BYTE_MUL(color, alpha); + for (i = 0; i < length; ++i) + dest[i] = color + BYTE_MUL(dest[i], ialpha); + } +} + +/* + r = s + d * sia + dest = r * ca + d * cia + = (s + d * sia) * ca + d * cia + = s * ca + d * (sia * ca + cia) + = s * ca + d * (1 - sa*ca) + = s' + d ( 1 - s'a) +*/ +static void color_SourceOver(uint32_t *dest, int length, uint32_t color, + uint32_t alpha) +{ + int ialpha, i; + + if (alpha != 255) color = BYTE_MUL(color, alpha); + ialpha = 255 - vAlpha(color); + for (i = 0; i < length; ++i) dest[i] = color + BYTE_MUL(dest[i], ialpha); +} + +/* + result = d * sa + dest = d * sa * ca + d * cia + = d * (sa * ca + cia) +*/ +static void color_DestinationIn(uint *dest, int length, uint color, + uint alpha) +{ + uint a = vAlpha(color); + if (alpha != 255) { + a = BYTE_MUL(a, alpha) + 255 - alpha; + } + for (int i = 0; i < length; ++i) { + dest[i] = BYTE_MUL(dest[i], a); + } +} + +/* + result = d * sia + dest = d * sia * ca + d * cia + = d * (sia * ca + cia) +*/ +static void color_DestinationOut(uint *dest, int length, uint color, + uint alpha) +{ + uint a = vAlpha(~color); + if (alpha != 255) a = BYTE_MUL(a, alpha) + 255 - alpha; + for (int i = 0; i < length; ++i) { + dest[i] = BYTE_MUL(dest[i], a); + } +} + +static void src_Source(uint32_t *dest, int length, const uint32_t *src, + uint32_t alpha) +{ + if (alpha == 255) { + memcpy(dest, src, size_t(length) * sizeof(uint)); + } else { + uint ialpha = 255 - alpha; + for (int i = 0; i < length; ++i) { + dest[i] = + interpolate_pixel(src[i], alpha, dest[i], ialpha); + } + } +} + +/* s' = s * ca + * d' = s' + d (1 - s'a) + */ +static void src_SourceOver(uint32_t *dest, int length, const uint32_t *src, + uint32_t alpha) +{ + uint s, sia; + + if (alpha == 255) { + for (int i = 0; i < length; ++i) { + s = src[i]; + if (s >= 0xff000000) + dest[i] = s; + else if (s != 0) { + sia = vAlpha(~s); + dest[i] = s + BYTE_MUL(dest[i], sia); + } + } + } else { + /* source' = source * const_alpha + * dest = source' + dest ( 1- source'a) + */ + for (int i = 0; i < length; ++i) { + s = BYTE_MUL(src[i], alpha); + sia = vAlpha(~s); + dest[i] = s + BYTE_MUL(dest[i], sia); + } + } +} + +static void src_DestinationIn(uint *dest, int length, const uint *src, + uint alpha) +{ + if (alpha == 255) { + for (int i = 0; i < length; ++i) { + dest[i] = BYTE_MUL(dest[i], vAlpha(src[i])); + } + } else { + uint cia = 255 - alpha; + for (int i = 0; i < length; ++i) { + uint a = BYTE_MUL(vAlpha(src[i]), alpha) + cia; + dest[i] = BYTE_MUL(dest[i], a); + } + } +} + +static void src_DestinationOut(uint *dest, int length, const uint *src, + uint alpha) +{ + if (alpha == 255) { + for (int i = 0; i < length; ++i) { + dest[i] = BYTE_MUL(dest[i], vAlpha(~src[i])); + } + } else { + uint cia = 255 - alpha; + for (int i = 0; i < length; ++i) { + uint sia = BYTE_MUL(vAlpha(~src[i]), alpha) + cia; + dest[i] = BYTE_MUL(dest[i], sia); + } + } +} + +RenderFuncTable::RenderFuncTable() +{ + updateColor(BlendMode::Src, color_Source); + updateColor(BlendMode::SrcOver, color_SourceOver); + updateColor(BlendMode::DestIn, color_DestinationIn); + updateColor(BlendMode::DestOut, color_DestinationOut); + + updateSrc(BlendMode::Src, src_Source); + updateSrc(BlendMode::SrcOver, src_SourceOver); + updateSrc(BlendMode::DestIn, src_DestinationIn); + updateSrc(BlendMode::DestOut, src_DestinationOut); + +#if defined(__ARM_NEON__) + neon(); +#endif +#if defined(__SSE2__) + sse(); +#endif +} diff --git a/external/rlottie/src/vector/vdrawhelper_neon.cpp b/external/rlottie/src/vector/vdrawhelper_neon.cpp new file mode 100644 index 000000000..681eabbc7 --- /dev/null +++ b/external/rlottie/src/vector/vdrawhelper_neon.cpp @@ -0,0 +1,33 @@ +#if defined(__ARM_NEON__) + +#include "vdrawhelper.h" + +extern "C" void pixman_composite_src_n_8888_asm_neon(int32_t w, int32_t h, + uint32_t *dst, + int32_t dst_stride, + uint32_t src); + +extern "C" void pixman_composite_over_n_8888_asm_neon(int32_t w, int32_t h, + uint32_t *dst, + int32_t dst_stride, + uint32_t src); + +void memfill32(uint32_t *dest, uint32_t value, int length) +{ + pixman_composite_src_n_8888_asm_neon(length, 1, dest, length, value); +} + +static void color_SourceOver(uint32_t *dest, int length, + uint32_t color, + uint32_t const_alpha) +{ + if (const_alpha != 255) color = BYTE_MUL(color, const_alpha); + + pixman_composite_over_n_8888_asm_neon(length, 1, dest, length, color); +} + +void RenderFuncTable::neon() +{ + updateColor(BlendMode::Src , color_SourceOver); +} +#endif diff --git a/external/rlottie/src/vector/vdrawhelper_sse2.cpp b/external/rlottie/src/vector/vdrawhelper_sse2.cpp new file mode 100644 index 000000000..fd9b711e5 --- /dev/null +++ b/external/rlottie/src/vector/vdrawhelper_sse2.cpp @@ -0,0 +1,261 @@ +#if defined(__SSE2__) + +#include +#include /* for SSE2 intrinsics */ +#include /* for _mm_shuffle_pi16 and _MM_SHUFFLE */ + +#include "vdrawhelper.h" +// Each 32bits components of alphaChannel must be in the form 0x00AA00AA +inline static __m128i v4_byte_mul_sse2(__m128i c, __m128i a) +{ + const __m128i ag_mask = _mm_set1_epi32(0xFF00FF00); + const __m128i rb_mask = _mm_set1_epi32(0x00FF00FF); + + /* for AG */ + __m128i v_ag = _mm_and_si128(ag_mask, c); + v_ag = _mm_srli_epi32(v_ag, 8); + v_ag = _mm_mullo_epi16(a, v_ag); + v_ag = _mm_and_si128(ag_mask, v_ag); + + /* for RB */ + __m128i v_rb = _mm_and_si128(rb_mask, c); + v_rb = _mm_mullo_epi16(a, v_rb); + v_rb = _mm_srli_epi32(v_rb, 8); + v_rb = _mm_and_si128(rb_mask, v_rb); + + /* combine */ + return _mm_add_epi32(v_ag, v_rb); +} + +static inline __m128i v4_interpolate_color_sse2(__m128i a, __m128i c0, + __m128i c1) +{ + const __m128i rb_mask = _mm_set1_epi32(0xFF00FF00); + const __m128i zero = _mm_setzero_si128(); + + __m128i a_l = a; + __m128i a_h = a; + a_l = _mm_unpacklo_epi16(a_l, a_l); + a_h = _mm_unpackhi_epi16(a_h, a_h); + + __m128i a_t = _mm_slli_epi64(a_l, 32); + __m128i a_t0 = _mm_slli_epi64(a_h, 32); + + a_l = _mm_add_epi32(a_l, a_t); + a_h = _mm_add_epi32(a_h, a_t0); + + __m128i c0_l = c0; + __m128i c0_h = c0; + + c0_l = _mm_unpacklo_epi8(c0_l, zero); + c0_h = _mm_unpackhi_epi8(c0_h, zero); + + __m128i c1_l = c1; + __m128i c1_h = c1; + + c1_l = _mm_unpacklo_epi8(c1_l, zero); + c1_h = _mm_unpackhi_epi8(c1_h, zero); + + __m128i cl_sub = _mm_sub_epi16(c0_l, c1_l); + __m128i ch_sub = _mm_sub_epi16(c0_h, c1_h); + + cl_sub = _mm_mullo_epi16(cl_sub, a_l); + ch_sub = _mm_mullo_epi16(ch_sub, a_h); + + __m128i c1ls = _mm_slli_epi16(c1_l, 8); + __m128i c1hs = _mm_slli_epi16(c1_h, 8); + + cl_sub = _mm_add_epi16(cl_sub, c1ls); + ch_sub = _mm_add_epi16(ch_sub, c1hs); + + cl_sub = _mm_and_si128(cl_sub, rb_mask); + ch_sub = _mm_and_si128(ch_sub, rb_mask); + + cl_sub = _mm_srli_epi64(cl_sub, 8); + ch_sub = _mm_srli_epi64(ch_sub, 8); + + cl_sub = _mm_packus_epi16(cl_sub, cl_sub); + ch_sub = _mm_packus_epi16(ch_sub, ch_sub); + + return (__m128i)_mm_shuffle_ps((__m128)cl_sub, (__m128)ch_sub, 0x44); +} + +// Load src and dest vector +#define V4_FETCH_SRC_DEST \ + __m128i v_src = _mm_loadu_si128((__m128i*)src); \ + __m128i v_dest = _mm_load_si128((__m128i*)dest); + +#define V4_FETCH_SRC __m128i v_src = _mm_loadu_si128((__m128i*)src); + +#define V4_STORE_DEST _mm_store_si128((__m128i*)dest, v_src); + +#define V4_SRC_DEST_LEN_INC \ + dest += 4; \ + src += 4; \ + length -= 4; + +// Multiply src color with const_alpha +#define V4_ALPHA_MULTIPLY v_src = v4_byte_mul_sse2(v_src, v_alpha); + + +// dest = src + dest * sia +#define V4_COMP_OP_SRC \ + v_src = v4_interpolate_color_sse2(v_alpha, v_src, v_dest); + +#define LOOP_ALIGNED_U1_A4(DEST, LENGTH, UOP, A4OP) \ + { \ + while ((uintptr_t)DEST & 0xF && LENGTH) \ + UOP \ + \ + while (LENGTH) \ + { \ + switch (LENGTH) { \ + case 3: \ + case 2: \ + case 1: \ + UOP break; \ + default: \ + A4OP break; \ + } \ + } \ + } + +void memfill32(uint32_t* dest, uint32_t value, int length) +{ + __m128i vector_data = _mm_set_epi32(value, value, value, value); + + // run till memory alligned to 16byte memory + while (length && ((uintptr_t)dest & 0xf)) { + *dest++ = value; + length--; + } + + while (length >= 32) { + _mm_store_si128((__m128i*)(dest), vector_data); + _mm_store_si128((__m128i*)(dest + 4), vector_data); + _mm_store_si128((__m128i*)(dest + 8), vector_data); + _mm_store_si128((__m128i*)(dest + 12), vector_data); + _mm_store_si128((__m128i*)(dest + 16), vector_data); + _mm_store_si128((__m128i*)(dest + 20), vector_data); + _mm_store_si128((__m128i*)(dest + 24), vector_data); + _mm_store_si128((__m128i*)(dest + 28), vector_data); + + dest += 32; + length -= 32; + } + + if (length >= 16) { + _mm_store_si128((__m128i*)(dest), vector_data); + _mm_store_si128((__m128i*)(dest + 4), vector_data); + _mm_store_si128((__m128i*)(dest + 8), vector_data); + _mm_store_si128((__m128i*)(dest + 12), vector_data); + + dest += 16; + length -= 16; + } + + if (length >= 8) { + _mm_store_si128((__m128i*)(dest), vector_data); + _mm_store_si128((__m128i*)(dest + 4), vector_data); + + dest += 8; + length -= 8; + } + + if (length >= 4) { + _mm_store_si128((__m128i*)(dest), vector_data); + + dest += 4; + length -= 4; + } + + while (length) { + *dest++ = value; + length--; + } +} + +// dest = color + (dest * alpha) +inline static void copy_helper_sse2(uint32_t* dest, int length, + uint32_t color, uint32_t alpha) +{ + const __m128i v_color = _mm_set1_epi32(color); + const __m128i v_a = _mm_set1_epi16(alpha); + + LOOP_ALIGNED_U1_A4(dest, length, + { /* UOP */ + *dest = color + BYTE_MUL(*dest, alpha); + dest++; + length--; + }, + { /* A4OP */ + __m128i v_dest = _mm_load_si128((__m128i*)dest); + + v_dest = v4_byte_mul_sse2(v_dest, v_a); + v_dest = _mm_add_epi32(v_dest, v_color); + + _mm_store_si128((__m128i*)dest, v_dest); + + dest += 4; + length -= 4; + }) +} + +static void color_Source(uint32_t* dest, int length, uint32_t color, + uint32_t const_alpha) +{ + if (const_alpha == 255) { + memfill32(dest, color, length); + } else { + int ialpha; + + ialpha = 255 - const_alpha; + color = BYTE_MUL(color, const_alpha); + copy_helper_sse2(dest, length, color, ialpha); + } +} + +static void color_SourceOver(uint32_t* dest, int length, + uint32_t color, + uint32_t const_alpha) +{ + int ialpha; + + if (const_alpha != 255) color = BYTE_MUL(color, const_alpha); + ialpha = 255 - vAlpha(color); + copy_helper_sse2(dest, length, color, ialpha); +} + +static void src_Source(uint32_t* dest, int length, const uint32_t* src, + uint32_t const_alpha) +{ + int ialpha; + if (const_alpha == 255) { + memcpy(dest, src, length * sizeof(uint32_t)); + } else { + ialpha = 255 - const_alpha; + __m128i v_alpha = _mm_set1_epi32(const_alpha); + + LOOP_ALIGNED_U1_A4(dest, length, + { /* UOP */ + *dest = interpolate_pixel(*src, const_alpha, + *dest, ialpha); + dest++; + src++; + length--; + }, + {/* A4OP */ + V4_FETCH_SRC_DEST V4_COMP_OP_SRC V4_STORE_DEST + V4_SRC_DEST_LEN_INC}) + } +} + +void RenderFuncTable::sse() +{ + updateColor(BlendMode::Src , color_Source); + updateColor(BlendMode::SrcOver , color_SourceOver); + + updateSrc(BlendMode::Src , src_Source); +} + +#endif diff --git a/external/rlottie/src/vector/velapsedtimer.cpp b/external/rlottie/src/vector/velapsedtimer.cpp new file mode 100644 index 000000000..42aa45295 --- /dev/null +++ b/external/rlottie/src/vector/velapsedtimer.cpp @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "velapsedtimer.h" + +void VElapsedTimer::start() +{ + clock = std::chrono::high_resolution_clock::now(); + m_valid = true; +} + +double VElapsedTimer::restart() +{ + double elapsedTime = elapsed(); + start(); + return elapsedTime; +} + +double VElapsedTimer::elapsed() const +{ + if (!isValid()) return 0; + return std::chrono::duration( + std::chrono::high_resolution_clock::now() - clock) + .count(); +} + +bool VElapsedTimer::hasExpired(double time) +{ + double elapsedTime = elapsed(); + if (elapsedTime > time) return true; + return false; +} diff --git a/external/rlottie/src/vector/velapsedtimer.h b/external/rlottie/src/vector/velapsedtimer.h new file mode 100644 index 000000000..d53d38ad6 --- /dev/null +++ b/external/rlottie/src/vector/velapsedtimer.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VELAPSEDTIMER_H +#define VELAPSEDTIMER_H + +#include +#include "vglobal.h" + +class VElapsedTimer { +public: + double elapsed() const; + bool hasExpired(double millsec); + void start(); + double restart(); + inline bool isValid() const { return m_valid; } + +private: + std::chrono::high_resolution_clock::time_point clock; + bool m_valid{false}; +}; +#endif // VELAPSEDTIMER_H diff --git a/external/rlottie/src/vector/vglobal.h b/external/rlottie/src/vector/vglobal.h new file mode 100644 index 000000000..45e95e335 --- /dev/null +++ b/external/rlottie/src/vector/vglobal.h @@ -0,0 +1,302 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VGLOBAL_H +#define VGLOBAL_H + +#include +#include +#include +#include +#include + +using uint = uint32_t; +using ushort = uint16_t; +using uchar = uint8_t; + +#if !defined(V_NAMESPACE) + +#define V_USE_NAMESPACE +#define V_BEGIN_NAMESPACE +#define V_END_NAMESPACE + +#else /* user namespace */ + +#define V_USE_NAMESPACE using namespace ::V_NAMESPACE; +#define V_BEGIN_NAMESPACE namespace V_NAMESPACE { +#define V_END_NAMESPACE } + +#endif + +#ifndef __has_attribute +# define __has_attribute(x) 0 +#endif /* !__has_attribute */ + +#if __has_attribute(unused) +# define V_UNUSED __attribute__((__unused__)) +#else +# define V_UNUSED +#endif /* V_UNUSED */ + +#if __has_attribute(warn_unused_result) +# define V_REQUIRED_RESULT __attribute__((__warn_unused_result__)) +#else +# define V_REQUIRED_RESULT +#endif /* V_REQUIRED_RESULT */ + +#define V_CONSTEXPR constexpr +#define V_NOTHROW noexcept + +#include "vdebug.h" + +#if __GNUC__ >= 7 +#define VECTOR_FALLTHROUGH __attribute__ ((fallthrough)); +#else +#define VECTOR_FALLTHROUGH +#endif + +#ifdef LOTTIE_THREAD_SUPPORT +#define vthread_local thread_local +#else +#define vthread_local +#endif + +#if defined(_MSC_VER) + #define V_ALWAYS_INLINE __forceinline +#else + #define V_ALWAYS_INLINE __attribute__((always_inline)) +#endif + +template +V_CONSTEXPR inline const T &vMin(const T &a, const T &b) +{ + return (a < b) ? a : b; +} +template +V_CONSTEXPR inline const T &vMax(const T &a, const T &b) +{ + return (a < b) ? b : a; +} + +static const double EPSILON_DOUBLE = 0.000000000001f; +static const float EPSILON_FLOAT = 0.000001f; + +static inline bool vCompare(float p1, float p2) +{ + return (std::abs(p1 - p2) < EPSILON_FLOAT); +} + +static inline bool vIsZero(float f) +{ + return (std::abs(f) <= EPSILON_FLOAT); +} + +static inline bool vIsZero(double f) +{ + return (std::abs(f) <= EPSILON_DOUBLE); +} + +class vFlagHelper { + int i; + +public: + explicit constexpr inline vFlagHelper(int ai) noexcept : i(ai) {} + constexpr inline operator int() const noexcept { return i; } + + explicit constexpr inline vFlagHelper(uint ai) noexcept : i(int(ai)) {} + explicit constexpr inline vFlagHelper(short ai) noexcept : i(int(ai)) {} + explicit constexpr inline vFlagHelper(ushort ai) noexcept : i(int(uint(ai))) {} + constexpr inline operator uint() const noexcept { return uint(i); } +}; + +template +class vFlag { +public: + static_assert( + (sizeof(Enum) <= sizeof(int)), + "vFlag only supports int as storage so bigger type will overflow"); + static_assert((std::is_enum::value), + "vFlag is only usable on enumeration types."); + + using Int = typename std::conditional< + std::is_unsigned::type>::value, + unsigned int, signed int>::type; + + using enum_type = Enum; + // compiler-generated copy/move ctor/assignment operators are fine! + + vFlag() = default; + constexpr vFlag(Enum f) noexcept : i(Int(f)) {} + explicit constexpr vFlag(vFlagHelper f) noexcept : i(f) {} + + inline vFlag &operator&=(int mask) noexcept + { + i &= mask; + return *this; + } + inline vFlag &operator&=(uint mask) noexcept + { + i &= mask; + return *this; + } + inline vFlag &operator&=(Enum mask) noexcept + { + i &= Int(mask); + return *this; + } + inline vFlag &operator|=(vFlag f) noexcept + { + i |= f.i; + return *this; + } + inline vFlag &operator|=(Enum f) noexcept + { + i |= Int(f); + return *this; + } + inline vFlag &operator^=(vFlag f) noexcept + { + i ^= f.i; + return *this; + } + inline vFlag &operator^=(Enum f) noexcept + { + i ^= Int(f); + return *this; + } + + constexpr inline operator Int() const noexcept { return i; } + + constexpr inline vFlag operator|(vFlag f) const + { + return vFlag(vFlagHelper(i | f.i)); + } + constexpr inline vFlag operator|(Enum f) const noexcept + { + return vFlag(vFlagHelper(i | Int(f))); + } + constexpr inline vFlag operator^(vFlag f) const noexcept + { + return vFlag(vFlagHelper(i ^ f.i)); + } + constexpr inline vFlag operator^(Enum f) const noexcept + { + return vFlag(vFlagHelper(i ^ Int(f))); + } + constexpr inline vFlag operator&(int mask) const noexcept + { + return vFlag(vFlagHelper(i & mask)); + } + constexpr inline vFlag operator&(uint mask) const noexcept + { + return vFlag(vFlagHelper(i & mask)); + } + constexpr inline vFlag operator&(Enum f) const noexcept + { + return vFlag(vFlagHelper(i & Int(f))); + } + constexpr inline vFlag operator~() const noexcept + { + return vFlag(vFlagHelper(~i)); + } + + constexpr inline bool operator!() const noexcept { return !i; } + + constexpr inline bool testFlag(Enum f) const noexcept + { + return (i & Int(f)) == Int(f) && (Int(f) != 0 || i == Int(f)); + } + inline vFlag &setFlag(Enum f, bool on = true) noexcept + { + return on ? (*this |= f) : (*this &= ~f); + } + + Int i{0}; +}; + +class VColor { +public: + VColor() = default; + explicit VColor(uchar red, uchar green, uchar blue, uchar alpha = 255) noexcept + :a(alpha), r(red), g(green), b(blue){} + inline uchar red() const noexcept { return r; } + inline uchar green() const noexcept { return g; } + inline uchar blue() const noexcept { return b; } + inline uchar alpha() const noexcept { return a; } + inline void setRed(uchar red) noexcept { r = red; } + inline void setGreen(uchar green) noexcept { g = green; } + inline void setBlue(uchar blue) noexcept { b = blue; } + inline void setAlpha(uchar alpha) noexcept { a = alpha; } + inline bool isOpaque() const { return a == 255; } + inline bool isTransparent() const { return a == 0; } + inline bool operator==(const VColor &o) const + { + return ((a == o.a) && (r == o.r) && (g == o.g) && (b == o.b)); + } + uint premulARGB() const + { + int pr = (r * a) / 255; + int pg = (g * a) / 255; + int pb = (b * a) / 255; + return uint((a << 24) | (pr << 16) | (pg << 8) | (pb)); + } + + uint premulARGB(float opacity) const + { + int alpha = int(a * opacity); + int pr = (r * alpha) / 255; + int pg = (g * alpha) / 255; + int pb = (b * alpha) / 255; + return uint((alpha << 24) | (pr << 16) | (pg << 8) | (pb)); + } + +public: + uchar a{0}; + uchar r{0}; + uchar g{0}; + uchar b{0}; +}; + +enum class FillRule: unsigned char { EvenOdd, Winding }; +enum class JoinStyle: unsigned char { Miter, Bevel, Round }; +enum class CapStyle: unsigned char { Flat, Square, Round }; + +enum class BlendMode { + Src, + SrcOver, + DestIn, + DestOut, + Last, +}; + +#ifndef V_CONSTRUCTOR_FUNCTION +#define V_CONSTRUCTOR_FUNCTION0(AFUNC) \ + namespace { \ + static const struct AFUNC##_ctor_class_ { \ + inline AFUNC##_ctor_class_() { AFUNC(); } \ + } AFUNC##_ctor_instance_; \ + } + +#define V_CONSTRUCTOR_FUNCTION(AFUNC) V_CONSTRUCTOR_FUNCTION0(AFUNC) +#endif + +#endif // VGLOBAL_H diff --git a/external/rlottie/src/vector/vimageloader.cpp b/external/rlottie/src/vector/vimageloader.cpp new file mode 100644 index 000000000..c2446be95 --- /dev/null +++ b/external/rlottie/src/vector/vimageloader.cpp @@ -0,0 +1,220 @@ +#include "vimageloader.h" +#include "config.h" +#include "vdebug.h" +#include + +#ifdef _WIN32 +# include +#else +# include +#endif // _WIN32 + +using lottie_image_load_f = unsigned char *(*)(const char *filename, int *x, + int *y, int *comp, int req_comp); +using lottie_image_load_data_f = unsigned char *(*)(const char *data, int len, + int *x, int *y, int *comp, + int req_comp); +using lottie_image_free_f = void (*)(unsigned char *); + +#ifdef __cplusplus +extern "C" { +#endif + +extern unsigned char *lottie_image_load(char const *filename, int *x, int *y, + int *comp, int req_comp); +extern unsigned char *lottie_image_load_from_data(const char *imageData, + int len, int *x, int *y, + int *comp, int req_comp); +extern void lottie_image_free(unsigned char *data); + +#ifdef __cplusplus +} +#endif + +struct VImageLoader::Impl { + lottie_image_load_f imageLoad{nullptr}; + lottie_image_free_f imageFree{nullptr}; + lottie_image_load_data_f imageFromData{nullptr}; + +#ifdef LOTTIE_IMAGE_MODULE_SUPPORT +# ifdef _WIN32 + HMODULE dl_handle{nullptr}; + bool moduleLoad() + { + dl_handle = LoadLibraryA(LOTTIE_IMAGE_MODULE_PLUGIN); + return (dl_handle == nullptr); + } + void moduleFree() + { + if (dl_handle) FreeLibrary(dl_handle); + } + void init() + { + imageLoad = reinterpret_cast( + GetProcAddress(dl_handle, "lottie_image_load")); + imageFree = reinterpret_cast( + GetProcAddress(dl_handle, "lottie_image_free")); + imageFromData = reinterpret_cast( + GetProcAddress(dl_handle, "lottie_image_load_from_data")); + } +# else // _WIN32 + void *dl_handle{nullptr}; + void init() + { + imageLoad = reinterpret_cast( + dlsym(dl_handle, "lottie_image_load")); + imageFree = reinterpret_cast( + dlsym(dl_handle, "lottie_image_free")); + imageFromData = reinterpret_cast( + dlsym(dl_handle, "lottie_image_load_from_data")); + } + + void moduleFree() + { + if (dl_handle) dlclose(dl_handle); + } + bool moduleLoad() + { + dl_handle = dlopen(LOTTIE_IMAGE_MODULE_PLUGIN, RTLD_LAZY); + return (dl_handle == nullptr); + } +# endif // _WIN32 +#else // LOTTIE_IMAGE_MODULE_SUPPORT + void init() + { + imageLoad = lottie_image_load; + imageFree = lottie_image_free; + imageFromData = lottie_image_load_from_data; + } + void moduleFree() {} + bool moduleLoad() { return false; } +#endif // LOTTIE_IMAGE_MODULE_SUPPORT + + Impl() + { + if (moduleLoad()) { + vWarning << "Failed to dlopen librlottie-image-loader library"; + return; + } + + init(); + + if (!imageLoad) + vWarning << "Failed to find symbol lottie_image_load in " + "librlottie-image-loader library"; + + if (!imageFree) + vWarning << "Failed to find symbol lottie_image_free in " + "librlottie-image-loader library"; + + if (!imageFromData) + vWarning << "Failed to find symbol lottie_image_load_data in " + "librlottie-image-loader library"; + } + + ~Impl() { moduleFree(); } + + VBitmap createBitmap(unsigned char *data, int width, int height, + int channel) + { + // premultiply alpha + if (channel == 4) + convertToBGRAPremul(data, width, height); + else + convertToBGRA(data, width, height); + + // create a bitmap of same size. + VBitmap result = + VBitmap(width, height, VBitmap::Format::ARGB32_Premultiplied); + + // copy the data to bitmap buffer + memcpy(result.data(), data, width * height * 4); + + // free the image data + imageFree(data); + + return result; + } + + VBitmap load(const char *fileName) + { + if (!imageLoad) return VBitmap(); + + int width, height, n; + unsigned char *data = imageLoad(fileName, &width, &height, &n, 4); + + if (!data) { + return VBitmap(); + } + + return createBitmap(data, width, height, n); + } + + VBitmap load(const char *imageData, size_t len) + { + if (!imageFromData) return VBitmap(); + + int width, height, n; + unsigned char *data = + imageFromData(imageData, static_cast(len), &width, &height, &n, 4); + + if (!data) { + return VBitmap(); + } + + return createBitmap(data, width, height, n); + } + /* + * convert from RGBA to BGRA and premultiply + */ + void convertToBGRAPremul(unsigned char *bits, int width, int height) + { + int pixelCount = width * height; + unsigned char *pix = bits; + for (int i = 0; i < pixelCount; i++) { + unsigned char r = pix[0]; + unsigned char g = pix[1]; + unsigned char b = pix[2]; + unsigned char a = pix[3]; + + r = (r * a) / 255; + g = (g * a) / 255; + b = (b * a) / 255; + + pix[0] = b; + pix[1] = g; + pix[2] = r; + + pix += 4; + } + } + /* + * convert from RGBA to BGRA + */ + void convertToBGRA(unsigned char *bits, int width, int height) + { + int pixelCount = width * height; + unsigned char *pix = bits; + for (int i = 0; i < pixelCount; i++) { + unsigned char r = pix[0]; + unsigned char b = pix[2]; + pix[0] = b; + pix[2] = r; + pix += 4; + } + } +}; + +VImageLoader::VImageLoader() : mImpl(std::make_unique()) {} + +VImageLoader::~VImageLoader() {} + +VBitmap VImageLoader::load(const char *fileName) +{ + return mImpl->load(fileName); +} + +VBitmap VImageLoader::load(const char *data, size_t len) +{ + return mImpl->load(data, int(len)); +} diff --git a/external/rlottie/src/vector/vimageloader.h b/external/rlottie/src/vector/vimageloader.h new file mode 100644 index 000000000..4d96a7dc0 --- /dev/null +++ b/external/rlottie/src/vector/vimageloader.h @@ -0,0 +1,26 @@ +#ifndef VIMAGELOADER_H +#define VIMAGELOADER_H + +#include + +#include "vbitmap.h" + +class VImageLoader +{ +public: + static VImageLoader& instance() + { + static VImageLoader singleton; + return singleton; + } + + VBitmap load(const char *fileName); + VBitmap load(const char *data, size_t len); + ~VImageLoader(); +private: + VImageLoader(); + struct Impl; + std::unique_ptr mImpl; +}; + +#endif // VIMAGELOADER_H diff --git a/external/rlottie/src/vector/vinterpolator.cpp b/external/rlottie/src/vector/vinterpolator.cpp new file mode 100644 index 000000000..fca078467 --- /dev/null +++ b/external/rlottie/src/vector/vinterpolator.cpp @@ -0,0 +1,124 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "vinterpolator.h" +#include + +V_BEGIN_NAMESPACE + +#define NEWTON_ITERATIONS 4 +#define NEWTON_MIN_SLOPE 0.02 +#define SUBDIVISION_PRECISION 0.0000001 +#define SUBDIVISION_MAX_ITERATIONS 10 + +const float VInterpolator::kSampleStepSize = + 1.0f / float(VInterpolator::kSplineTableSize - 1); + +void VInterpolator::init(float aX1, float aY1, float aX2, float aY2) +{ + mX1 = aX1; + mY1 = aY1; + mX2 = aX2; + mY2 = aY2; + + if (mX1 != mY1 || mX2 != mY2) CalcSampleValues(); +} + +/*static*/ float VInterpolator::CalcBezier(float aT, float aA1, float aA2) +{ + // use Horner's scheme to evaluate the Bezier polynomial + return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; +} + +void VInterpolator::CalcSampleValues() +{ + for (int i = 0; i < kSplineTableSize; ++i) { + mSampleValues[i] = CalcBezier(float(i) * kSampleStepSize, mX1, mX2); + } +} + +float VInterpolator::GetSlope(float aT, float aA1, float aA2) +{ + return 3.0f * A(aA1, aA2) * aT * aT + 2.0f * B(aA1, aA2) * aT + C(aA1); +} + +float VInterpolator::value(float aX) const +{ + if (mX1 == mY1 && mX2 == mY2) return aX; + + return CalcBezier(GetTForX(aX), mY1, mY2); +} + +float VInterpolator::GetTForX(float aX) const +{ + // Find interval where t lies + float intervalStart = 0.0; + const float* currentSample = &mSampleValues[1]; + const float* const lastSample = &mSampleValues[kSplineTableSize - 1]; + for (; currentSample != lastSample && *currentSample <= aX; + ++currentSample) { + intervalStart += kSampleStepSize; + } + --currentSample; // t now lies between *currentSample and *currentSample+1 + + // Interpolate to provide an initial guess for t + float dist = + (aX - *currentSample) / (*(currentSample + 1) - *currentSample); + float guessForT = intervalStart + dist * kSampleStepSize; + + // Check the slope to see what strategy to use. If the slope is too small + // Newton-Raphson iteration won't converge on a root so we use bisection + // instead. + float initialSlope = GetSlope(guessForT, mX1, mX2); + if (initialSlope >= NEWTON_MIN_SLOPE) { + return NewtonRaphsonIterate(aX, guessForT); + } else if (initialSlope == 0.0) { + return guessForT; + } else { + return BinarySubdivide(aX, intervalStart, + intervalStart + kSampleStepSize); + } +} + +float VInterpolator::NewtonRaphsonIterate(float aX, float aGuessT) const +{ + // Refine guess with Newton-Raphson iteration + for (int i = 0; i < NEWTON_ITERATIONS; ++i) { + // We're trying to find where f(t) = aX, + // so we're actually looking for a root for: CalcBezier(t) - aX + float currentX = CalcBezier(aGuessT, mX1, mX2) - aX; + float currentSlope = GetSlope(aGuessT, mX1, mX2); + + if (currentSlope == 0.0) return aGuessT; + + aGuessT -= currentX / currentSlope; + } + + return aGuessT; +} + +float VInterpolator::BinarySubdivide(float aX, float aA, float aB) const +{ + float currentX; + float currentT; + int i = 0; + + do { + currentT = aA + (aB - aA) / 2.0f; + currentX = CalcBezier(currentT, mX1, mX2) - aX; + + if (currentX > 0.0) { + aB = currentT; + } else { + aA = currentT; + } + } while (fabs(currentX) > SUBDIVISION_PRECISION && + ++i < SUBDIVISION_MAX_ITERATIONS); + + return currentT; +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vinterpolator.h b/external/rlottie/src/vector/vinterpolator.h new file mode 100644 index 000000000..0218eab5f --- /dev/null +++ b/external/rlottie/src/vector/vinterpolator.h @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VINTERPOLATOR_H +#define VINTERPOLATOR_H + +#include "vpoint.h" + +V_BEGIN_NAMESPACE + +class VInterpolator { +public: + VInterpolator() + { /* caller must call Init later */ + } + + VInterpolator(float aX1, float aY1, float aX2, float aY2) + { + init(aX1, aY1, aX2, aY2); + } + + VInterpolator(VPointF pt1, VPointF pt2) + { + init(pt1.x(), pt1.y(), pt2.x(), pt2.y()); + } + + void init(float aX1, float aY1, float aX2, float aY2); + + float value(float aX) const; + + void GetSplineDerivativeValues(float aX, float& aDX, float& aDY) const; + +private: + void CalcSampleValues(); + + /** + * Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. + */ + static float CalcBezier(float aT, float aA1, float aA2); + + /** + * Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. + */ + static float GetSlope(float aT, float aA1, float aA2); + + float GetTForX(float aX) const; + + float NewtonRaphsonIterate(float aX, float aGuessT) const; + + float BinarySubdivide(float aX, float aA, float aB) const; + + static float A(float aA1, float aA2) { return 1.0f - 3.0f * aA2 + 3.0f * aA1; } + + static float B(float aA1, float aA2) { return 3.0f * aA2 - 6.0f * aA1; } + + static float C(float aA1) { return 3.0f * aA1; } + + float mX1; + float mY1; + float mX2; + float mY2; + enum { kSplineTableSize = 11 }; + float mSampleValues[kSplineTableSize]; + static const float kSampleStepSize; +}; + +V_END_NAMESPACE + +#endif // VINTERPOLATOR_H diff --git a/external/rlottie/src/vector/vline.h b/external/rlottie/src/vector/vline.h new file mode 100644 index 000000000..ee8b4a567 --- /dev/null +++ b/external/rlottie/src/vector/vline.h @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VLINE_H +#define VLINE_H + +#include "vglobal.h" +#include "vpoint.h" + +V_BEGIN_NAMESPACE + +class VLine { +public: + VLine() = default; + VLine(float x1, float y1, float x2, float y2) + : mX1(x1), mY1(y1), mX2(x2), mY2(y2) + { + } + VLine(const VPointF &p1, const VPointF &p2) + : mX1(p1.x()), mY1(p1.y()), mX2(p2.x()), mY2(p2.y()) + { + } + float length() const { return length(mX1, mY1, mX2, mY2);} + void splitAtLength(float length, VLine &left, VLine &right) const; + VPointF p1() const { return {mX1, mY1}; } + VPointF p2() const { return {mX2, mY2}; } + float angle() const; + static float length(float x1, float y1, float x2, float y2); + +private: + float mX1{0}; + float mY1{0}; + float mX2{0}; + float mY2{0}; +}; + +inline float VLine::angle() const +{ + static constexpr float K_PI = 3.141592f; + const float dx = mX2 - mX1; + const float dy = mY2 - mY1; + + const float theta = std::atan2(dy, dx) * 180.0f / K_PI; + return theta; +} + +// approximate sqrt(x*x + y*y) using alpha max plus beta min algorithm. +// With alpha = 1, beta = 3/8, giving results with the largest error less +// than 7% compared to the exact value. +inline V_ALWAYS_INLINE float VLine::length(float x1, float y1, float x2, float y2) +{ + float x = x2 - x1; + float y = y2 - y1; + + x = x < 0 ? -x : x; + y = y < 0 ? -y : y; + + return (x > y ? x + 0.375f * y : y + 0.375f * x); +} + +inline void VLine::splitAtLength(float lengthAt, VLine &left, VLine &right) const +{ + float len = length(); + float dx = ((mX2 - mX1) / len) * lengthAt; + float dy = ((mY2 - mY1) / len) * lengthAt; + + left.mX1 = mX1; + left.mY1 = mY1; + left.mX2 = left.mX1 + dx; + left.mY2 = left.mY1 + dy; + + right.mX1 = left.mX2; + right.mY1 = left.mY2; + right.mX2 = mX2; + right.mY2 = mY2; +} + +#endif //VLINE_H diff --git a/external/rlottie/src/vector/vmatrix.cpp b/external/rlottie/src/vector/vmatrix.cpp new file mode 100644 index 000000000..7efed61bb --- /dev/null +++ b/external/rlottie/src/vector/vmatrix.cpp @@ -0,0 +1,684 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vmatrix.h" +#include +#include +#include + +V_BEGIN_NAMESPACE + +/* m11 m21 mtx + * m12 m22 mty + * m13 m23 m33 + */ + +inline float VMatrix::determinant() const +{ + return m11 * (m33 * m22 - mty * m23) - m21 * (m33 * m12 - mty * m13) + + mtx * (m23 * m12 - m22 * m13); +} + +bool VMatrix::isAffine() const +{ + return type() < MatrixType::Project; +} + +bool VMatrix::isIdentity() const +{ + return type() == MatrixType::None; +} + +bool VMatrix::isInvertible() const +{ + return !vIsZero(determinant()); +} + +bool VMatrix::isScaling() const +{ + return type() >= MatrixType::Scale; +} +bool VMatrix::isRotating() const +{ + return type() >= MatrixType::Rotate; +} + +bool VMatrix::isTranslating() const +{ + return type() >= MatrixType::Translate; +} + +VMatrix &VMatrix::operator*=(float num) +{ + if (num == 1.) return *this; + + m11 *= num; + m12 *= num; + m13 *= num; + m21 *= num; + m22 *= num; + m23 *= num; + mtx *= num; + mty *= num; + m33 *= num; + if (dirty < MatrixType::Scale) dirty = MatrixType::Scale; + + return *this; +} + +VMatrix &VMatrix::operator/=(float div) +{ + if (div == 0) return *this; + + div = 1 / div; + return operator*=(div); +} + +VMatrix::MatrixType VMatrix::type() const +{ + if (dirty == MatrixType::None || dirty < mType) return mType; + + switch (dirty) { + case MatrixType::Project: + if (!vIsZero(m13) || !vIsZero(m23) || !vIsZero(m33 - 1)) { + mType = MatrixType::Project; + break; + } + VECTOR_FALLTHROUGH + case MatrixType::Shear: + case MatrixType::Rotate: + if (!vIsZero(m12) || !vIsZero(m21)) { + const float dot = m11 * m12 + m21 * m22; + if (vIsZero(dot)) + mType = MatrixType::Rotate; + else + mType = MatrixType::Shear; + break; + } + VECTOR_FALLTHROUGH + case MatrixType::Scale: + if (!vIsZero(m11 - 1) || !vIsZero(m22 - 1)) { + mType = MatrixType::Scale; + break; + } + VECTOR_FALLTHROUGH + case MatrixType::Translate: + if (!vIsZero(mtx) || !vIsZero(mty)) { + mType = MatrixType::Translate; + break; + } + VECTOR_FALLTHROUGH + case MatrixType::None: + mType = MatrixType::None; + break; + } + + dirty = MatrixType::None; + return mType; +} + +VMatrix &VMatrix::translate(float dx, float dy) +{ + if (dx == 0 && dy == 0) return *this; + + switch (type()) { + case MatrixType::None: + mtx = dx; + mty = dy; + break; + case MatrixType::Translate: + mtx += dx; + mty += dy; + break; + case MatrixType::Scale: + mtx += dx * m11; + mty += dy * m22; + break; + case MatrixType::Project: + m33 += dx * m13 + dy * m23; + VECTOR_FALLTHROUGH + case MatrixType::Shear: + case MatrixType::Rotate: + mtx += dx * m11 + dy * m21; + mty += dy * m22 + dx * m12; + break; + } + if (dirty < MatrixType::Translate) dirty = MatrixType::Translate; + return *this; +} + +VMatrix &VMatrix::scale(float sx, float sy) +{ + if (sx == 1 && sy == 1) return *this; + + switch (type()) { + case MatrixType::None: + case MatrixType::Translate: + m11 = sx; + m22 = sy; + break; + case MatrixType::Project: + m13 *= sx; + m23 *= sy; + VECTOR_FALLTHROUGH + case MatrixType::Rotate: + case MatrixType::Shear: + m12 *= sx; + m21 *= sy; + VECTOR_FALLTHROUGH + case MatrixType::Scale: + m11 *= sx; + m22 *= sy; + break; + } + if (dirty < MatrixType::Scale) dirty = MatrixType::Scale; + return *this; +} + +VMatrix &VMatrix::shear(float sh, float sv) +{ + if (sh == 0 && sv == 0) return *this; + + switch (type()) { + case MatrixType::None: + case MatrixType::Translate: + m12 = sv; + m21 = sh; + break; + case MatrixType::Scale: + m12 = sv * m22; + m21 = sh * m11; + break; + case MatrixType::Project: { + float tm13 = sv * m23; + float tm23 = sh * m13; + m13 += tm13; + m23 += tm23; + VECTOR_FALLTHROUGH + } + case MatrixType::Rotate: + case MatrixType::Shear: { + float tm11 = sv * m21; + float tm22 = sh * m12; + float tm12 = sv * m22; + float tm21 = sh * m11; + m11 += tm11; + m12 += tm12; + m21 += tm21; + m22 += tm22; + break; + } + } + if (dirty < MatrixType::Shear) dirty = MatrixType::Shear; + return *this; +} + +static const float deg2rad = float(0.017453292519943295769); // pi/180 +static const float inv_dist_to_plane = 1. / 1024.; + +VMatrix &VMatrix::rotate(float a, Axis axis) +{ + if (a == 0) return *this; + + float sina = 0; + float cosa = 0; + if (a == 90. || a == -270.) + sina = 1.; + else if (a == 270. || a == -90.) + sina = -1.; + else if (a == 180.) + cosa = -1.; + else { + float b = deg2rad * a; // convert to radians + sina = std::sin(b); // fast and convenient + cosa = std::cos(b); + } + + if (axis == Axis::Z) { + switch (type()) { + case MatrixType::None: + case MatrixType::Translate: + m11 = cosa; + m12 = sina; + m21 = -sina; + m22 = cosa; + break; + case MatrixType::Scale: { + float tm11 = cosa * m11; + float tm12 = sina * m22; + float tm21 = -sina * m11; + float tm22 = cosa * m22; + m11 = tm11; + m12 = tm12; + m21 = tm21; + m22 = tm22; + break; + } + case MatrixType::Project: { + float tm13 = cosa * m13 + sina * m23; + float tm23 = -sina * m13 + cosa * m23; + m13 = tm13; + m23 = tm23; + VECTOR_FALLTHROUGH + } + case MatrixType::Rotate: + case MatrixType::Shear: { + float tm11 = cosa * m11 + sina * m21; + float tm12 = cosa * m12 + sina * m22; + float tm21 = -sina * m11 + cosa * m21; + float tm22 = -sina * m12 + cosa * m22; + m11 = tm11; + m12 = tm12; + m21 = tm21; + m22 = tm22; + break; + } + } + if (dirty < MatrixType::Rotate) dirty = MatrixType::Rotate; + } else { + VMatrix result; + if (axis == Axis::Y) { + result.m11 = cosa; + result.m13 = -sina * inv_dist_to_plane; + } else { + result.m22 = cosa; + result.m23 = -sina * inv_dist_to_plane; + } + result.mType = MatrixType::Project; + *this = result * *this; + } + + return *this; +} + +VMatrix VMatrix::operator*(const VMatrix &m) const +{ + const MatrixType otherType = m.type(); + if (otherType == MatrixType::None) return *this; + + const MatrixType thisType = type(); + if (thisType == MatrixType::None) return m; + + VMatrix t; + MatrixType type = vMax(thisType, otherType); + switch (type) { + case MatrixType::None: + break; + case MatrixType::Translate: + t.mtx = mtx + m.mtx; + t.mty += mty + m.mty; + break; + case MatrixType::Scale: { + float m11v = m11 * m.m11; + float m22v = m22 * m.m22; + + float m31v = mtx * m.m11 + m.mtx; + float m32v = mty * m.m22 + m.mty; + + t.m11 = m11v; + t.m22 = m22v; + t.mtx = m31v; + t.mty = m32v; + break; + } + case MatrixType::Rotate: + case MatrixType::Shear: { + float m11v = m11 * m.m11 + m12 * m.m21; + float m12v = m11 * m.m12 + m12 * m.m22; + + float m21v = m21 * m.m11 + m22 * m.m21; + float m22v = m21 * m.m12 + m22 * m.m22; + + float m31v = mtx * m.m11 + mty * m.m21 + m.mtx; + float m32v = mtx * m.m12 + mty * m.m22 + m.mty; + + t.m11 = m11v; + t.m12 = m12v; + t.m21 = m21v; + t.m22 = m22v; + t.mtx = m31v; + t.mty = m32v; + break; + } + case MatrixType::Project: { + float m11v = m11 * m.m11 + m12 * m.m21 + m13 * m.mtx; + float m12v = m11 * m.m12 + m12 * m.m22 + m13 * m.mty; + float m13v = m11 * m.m13 + m12 * m.m23 + m13 * m.m33; + + float m21v = m21 * m.m11 + m22 * m.m21 + m23 * m.mtx; + float m22v = m21 * m.m12 + m22 * m.m22 + m23 * m.mty; + float m23v = m21 * m.m13 + m22 * m.m23 + m23 * m.m33; + + float m31v = mtx * m.m11 + mty * m.m21 + m33 * m.mtx; + float m32v = mtx * m.m12 + mty * m.m22 + m33 * m.mty; + float m33v = mtx * m.m13 + mty * m.m23 + m33 * m.m33; + + t.m11 = m11v; + t.m12 = m12v; + t.m13 = m13v; + t.m21 = m21v; + t.m22 = m22v; + t.m23 = m23v; + t.mtx = m31v; + t.mty = m32v; + t.m33 = m33v; + } + } + + t.dirty = type; + t.mType = type; + + return t; +} + +VMatrix &VMatrix::operator*=(const VMatrix &o) +{ + const MatrixType otherType = o.type(); + if (otherType == MatrixType::None) return *this; + + const MatrixType thisType = type(); + if (thisType == MatrixType::None) return operator=(o); + + MatrixType t = vMax(thisType, otherType); + switch (t) { + case MatrixType::None: + break; + case MatrixType::Translate: + mtx += o.mtx; + mty += o.mty; + break; + case MatrixType::Scale: { + float m11v = m11 * o.m11; + float m22v = m22 * o.m22; + + float m31v = mtx * o.m11 + o.mtx; + float m32v = mty * o.m22 + o.mty; + + m11 = m11v; + m22 = m22v; + mtx = m31v; + mty = m32v; + break; + } + case MatrixType::Rotate: + case MatrixType::Shear: { + float m11v = m11 * o.m11 + m12 * o.m21; + float m12v = m11 * o.m12 + m12 * o.m22; + + float m21v = m21 * o.m11 + m22 * o.m21; + float m22v = m21 * o.m12 + m22 * o.m22; + + float m31v = mtx * o.m11 + mty * o.m21 + o.mtx; + float m32v = mtx * o.m12 + mty * o.m22 + o.mty; + + m11 = m11v; + m12 = m12v; + m21 = m21v; + m22 = m22v; + mtx = m31v; + mty = m32v; + break; + } + case MatrixType::Project: { + float m11v = m11 * o.m11 + m12 * o.m21 + m13 * o.mtx; + float m12v = m11 * o.m12 + m12 * o.m22 + m13 * o.mty; + float m13v = m11 * o.m13 + m12 * o.m23 + m13 * o.m33; + + float m21v = m21 * o.m11 + m22 * o.m21 + m23 * o.mtx; + float m22v = m21 * o.m12 + m22 * o.m22 + m23 * o.mty; + float m23v = m21 * o.m13 + m22 * o.m23 + m23 * o.m33; + + float m31v = mtx * o.m11 + mty * o.m21 + m33 * o.mtx; + float m32v = mtx * o.m12 + mty * o.m22 + m33 * o.mty; + float m33v = mtx * o.m13 + mty * o.m23 + m33 * o.m33; + + m11 = m11v; + m12 = m12v; + m13 = m13v; + m21 = m21v; + m22 = m22v; + m23 = m23v; + mtx = m31v; + mty = m32v; + m33 = m33v; + } + } + + dirty = t; + mType = t; + + return *this; +} + +VMatrix VMatrix::adjoint() const +{ + float h11, h12, h13, h21, h22, h23, h31, h32, h33; + h11 = m22 * m33 - m23 * mty; + h21 = m23 * mtx - m21 * m33; + h31 = m21 * mty - m22 * mtx; + h12 = m13 * mty - m12 * m33; + h22 = m11 * m33 - m13 * mtx; + h32 = m12 * mtx - m11 * mty; + h13 = m12 * m23 - m13 * m22; + h23 = m13 * m21 - m11 * m23; + h33 = m11 * m22 - m12 * m21; + + VMatrix res; + res.m11 = h11; + res.m12 = h12; + res.m13 = h13; + res.m21 = h21; + res.m22 = h22; + res.m23 = h23; + res.mtx = h31; + res.mty = h32; + res.m33 = h33; + res.mType = MatrixType::None; + res.dirty = MatrixType::Project; + + return res; +} + +VMatrix VMatrix::inverted(bool *invertible) const +{ + VMatrix invert; + bool inv = true; + + switch (type()) { + case MatrixType::None: + break; + case MatrixType::Translate: + invert.mtx = -mtx; + invert.mty = -mty; + break; + case MatrixType::Scale: + inv = !vIsZero(m11); + inv &= !vIsZero(m22); + if (inv) { + invert.m11 = 1.0f / m11; + invert.m22 = 1.0f / m22; + invert.mtx = -mtx * invert.m11; + invert.mty = -mty * invert.m22; + } + break; + default: + // general case + float det = determinant(); + inv = !vIsZero(det); + if (inv) invert = (adjoint() /= det); + // TODO Test above line + break; + } + + if (invertible) *invertible = inv; + + if (inv) { + // inverting doesn't change the type + invert.mType = mType; + invert.dirty = dirty; + } + + return invert; +} + +bool VMatrix::operator==(const VMatrix &o) const +{ + return fuzzyCompare(o); +} + +bool VMatrix::operator!=(const VMatrix &o) const +{ + return !operator==(o); +} + +bool VMatrix::fuzzyCompare(const VMatrix &o) const +{ + return vCompare(m11, o.m11) && vCompare(m12, o.m12) && + vCompare(m21, o.m21) && vCompare(m22, o.m22) && + vCompare(mtx, o.mtx) && vCompare(mty, o.mty); +} + +#define V_NEAR_CLIP 0.000001f +#ifdef MAP +#undef MAP +#endif +#define MAP(x, y, nx, ny) \ + do { \ + float FX_ = x; \ + float FY_ = y; \ + switch (t) { \ + case MatrixType::None: \ + nx = FX_; \ + ny = FY_; \ + break; \ + case MatrixType::Translate: \ + nx = FX_ + mtx; \ + ny = FY_ + mty; \ + break; \ + case MatrixType::Scale: \ + nx = m11 * FX_ + mtx; \ + ny = m22 * FY_ + mty; \ + break; \ + case MatrixType::Rotate: \ + case MatrixType::Shear: \ + case MatrixType::Project: \ + nx = m11 * FX_ + m21 * FY_ + mtx; \ + ny = m12 * FX_ + m22 * FY_ + mty; \ + if (t == MatrixType::Project) { \ + float w = (m13 * FX_ + m23 * FY_ + m33); \ + if (w < V_NEAR_CLIP) w = V_NEAR_CLIP; \ + w = 1. / w; \ + nx *= w; \ + ny *= w; \ + } \ + } \ + } while (0) + +VRect VMatrix::map(const VRect &rect) const +{ + VMatrix::MatrixType t = type(); + if (t <= MatrixType::Translate) + return rect.translated(std::lround(mtx), std::lround(mty)); + + if (t <= MatrixType::Scale) { + int x = std::lround(m11 * rect.x() + mtx); + int y = std::lround(m22 * rect.y() + mty); + int w = std::lround(m11 * rect.width()); + int h = std::lround(m22 * rect.height()); + if (w < 0) { + w = -w; + x -= w; + } + if (h < 0) { + h = -h; + y -= h; + } + return {x, y, w, h}; + } else if (t < MatrixType::Project) { + // see mapToPolygon for explanations of the algorithm. + float x = 0, y = 0; + MAP(rect.left(), rect.top(), x, y); + float xmin = x; + float ymin = y; + float xmax = x; + float ymax = y; + MAP(rect.right() + 1, rect.top(), x, y); + xmin = vMin(xmin, x); + ymin = vMin(ymin, y); + xmax = vMax(xmax, x); + ymax = vMax(ymax, y); + MAP(rect.right() + 1, rect.bottom() + 1, x, y); + xmin = vMin(xmin, x); + ymin = vMin(ymin, y); + xmax = vMax(xmax, x); + ymax = vMax(ymax, y); + MAP(rect.left(), rect.bottom() + 1, x, y); + xmin = vMin(xmin, x); + ymin = vMin(ymin, y); + xmax = vMax(xmax, x); + ymax = vMax(ymax, y); + return VRect(std::lround(xmin), std::lround(ymin), + std::lround(xmax) - std::lround(xmin), + std::lround(ymax) - std::lround(ymin)); + } else { + // Not supported + assert(0); + return {}; + } +} + +VPointF VMatrix::map(const VPointF &p) const +{ + float fx = p.x(); + float fy = p.y(); + + float x = 0, y = 0; + + VMatrix::MatrixType t = type(); + switch (t) { + case MatrixType::None: + x = fx; + y = fy; + break; + case MatrixType::Translate: + x = fx + mtx; + y = fy + mty; + break; + case MatrixType::Scale: + x = m11 * fx + mtx; + y = m22 * fy + mty; + break; + case MatrixType::Rotate: + case MatrixType::Shear: + case MatrixType::Project: + x = m11 * fx + m21 * fy + mtx; + y = m12 * fx + m22 * fy + mty; + if (t == MatrixType::Project) { + float w = 1.0f / (m13 * fx + m23 * fy + m33); + x *= w; + y *= w; + } + } + return {x, y}; +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vmatrix.h b/external/rlottie/src/vector/vmatrix.h new file mode 100644 index 000000000..941e16e9f --- /dev/null +++ b/external/rlottie/src/vector/vmatrix.h @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VMATRIX_H +#define VMATRIX_H +#include "vglobal.h" +#include "vpoint.h" +#include "vrect.h" + +V_BEGIN_NAMESPACE + +struct VMatrixData; +class VMatrix { +public: + enum class Axis { X, Y, Z }; + enum class MatrixType: unsigned char { + None = 0x00, + Translate = 0x01, + Scale = 0x02, + Rotate = 0x04, + Shear = 0x08, + Project = 0x10 + }; + VMatrix() = default; + bool isAffine() const; + bool isIdentity() const; + bool isInvertible() const; + bool isScaling() const; + bool isRotating() const; + bool isTranslating() const; + MatrixType type() const; + inline float determinant() const; + + float m_11() const { return m11;} + float m_12() const { return m12;} + float m_13() const { return m13;} + + float m_21() const { return m21;} + float m_22() const { return m22;} + float m_23() const { return m23;} + + float m_tx() const { return mtx;} + float m_ty() const { return mty;} + float m_33() const { return m33;} + + VMatrix &translate(VPointF pos) { return translate(pos.x(), pos.y()); } + VMatrix &translate(float dx, float dy); + VMatrix &scale(VPointF s) { return scale(s.x(), s.y()); } + VMatrix &scale(float sx, float sy); + VMatrix &shear(float sh, float sv); + VMatrix &rotate(float a, Axis axis = VMatrix::Axis::Z); + VMatrix &rotateRadians(float a, Axis axis = VMatrix::Axis::Z); + + VPointF map(const VPointF &p) const; + inline VPointF map(float x, float y) const; + VRect map(const VRect &r) const; + + V_REQUIRED_RESULT VMatrix inverted(bool *invertible = nullptr) const; + V_REQUIRED_RESULT VMatrix adjoint() const; + + VMatrix operator*(const VMatrix &o) const; + VMatrix & operator*=(const VMatrix &); + VMatrix & operator*=(float mul); + VMatrix & operator/=(float div); + bool operator==(const VMatrix &) const; + bool operator!=(const VMatrix &) const; + bool fuzzyCompare(const VMatrix &) const; + float scale() const; +private: + friend struct VSpanData; + float m11{1}, m12{0}, m13{0}; + float m21{0}, m22{1}, m23{0}; + float mtx{0}, mty{0}, m33{1}; + mutable MatrixType mType{MatrixType::None}; + mutable MatrixType dirty{MatrixType::None}; +}; + +inline float VMatrix::scale() const +{ + constexpr float SQRT_2 = 1.41421f; + VPointF p1(0, 0); + VPointF p2(SQRT_2, SQRT_2); + p1 = map(p1); + p2 = map(p2); + VPointF final = p2 - p1; + + return std::sqrt(final.x() * final.x() + final.y() * final.y()) / 2.0f; +} + +inline VPointF VMatrix::map(float x, float y) const +{ + return map(VPointF(x, y)); +} + +V_END_NAMESPACE + +#endif // VMATRIX_H diff --git a/external/rlottie/src/vector/vpainter.cpp b/external/rlottie/src/vector/vpainter.cpp new file mode 100644 index 000000000..4ebbc5cb6 --- /dev/null +++ b/external/rlottie/src/vector/vpainter.cpp @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vpainter.h" +#include + + +V_BEGIN_NAMESPACE + + +void VPainter::drawRle(const VPoint &, const VRle &rle) +{ + if (rle.empty()) return; + // mSpanData.updateSpanFunc(); + + if (!mSpanData.mUnclippedBlendFunc) return; + + // do draw after applying clip. + rle.intersect(mSpanData.clipRect(), mSpanData.mUnclippedBlendFunc, + &mSpanData); +} + +void VPainter::drawRle(const VRle &rle, const VRle &clip) +{ + if (rle.empty() || clip.empty()) return; + + if (!mSpanData.mUnclippedBlendFunc) return; + + rle.intersect(clip, mSpanData.mUnclippedBlendFunc, &mSpanData); +} + +static void fillRect(const VRect &r, VSpanData *data) +{ + auto x1 = std::max(r.x(), 0); + auto x2 = std::min(r.x() + r.width(), data->mDrawableSize.width()); + auto y1 = std::max(r.y(), 0); + auto y2 = std::min(r.y() + r.height(), data->mDrawableSize.height()); + + if (x2 <= x1 || y2 <= y1) return; + + const int nspans = 256; + VRle::Span spans[nspans]; + + int y = y1; + while (y < y2) { + int n = std::min(nspans, y2 - y); + int i = 0; + while (i < n) { + spans[i].x = short(x1); + spans[i].len = ushort(x2 - x1); + spans[i].y = short(y + i); + spans[i].coverage = 255; + ++i; + } + + data->mUnclippedBlendFunc(n, spans, data); + y += n; + } +} + +void VPainter::drawBitmapUntransform(const VRect & target, + const VBitmap &bitmap, + const VRect & source, + uint8_t const_alpha) +{ + mSpanData.initTexture(&bitmap, const_alpha, source); + if (!mSpanData.mUnclippedBlendFunc) return; + mSpanData.dx = float(-target.x()); + mSpanData.dy = float(-target.y()); + + VRect rr = source.translated(target.x(), target.y()); + + fillRect(rr, &mSpanData); +} + +VPainter::VPainter(VBitmap *buffer) +{ + begin(buffer); +} +bool VPainter::begin(VBitmap *buffer) +{ + mBuffer.prepare(buffer); + mSpanData.init(&mBuffer); + // TODO find a better api to clear the surface + mBuffer.clear(); + return true; +} +void VPainter::end() {} + +void VPainter::setDrawRegion(const VRect ®ion) +{ + mSpanData.setDrawRegion(region); +} + +void VPainter::setBrush(const VBrush &brush) +{ + mSpanData.setup(brush); +} + +void VPainter::setBlendMode(BlendMode mode) +{ + mSpanData.mBlendMode = mode; +} + +VRect VPainter::clipBoundingRect() const +{ + return mSpanData.clipRect(); +} + +void VPainter::drawBitmap(const VPoint &point, const VBitmap &bitmap, + const VRect &source, uint8_t const_alpha) +{ + if (!bitmap.valid()) return; + + drawBitmap(VRect(point, bitmap.size()), + bitmap, source, const_alpha); +} + +void VPainter::drawBitmap(const VRect &target, const VBitmap &bitmap, + const VRect &source, uint8_t const_alpha) +{ + if (!bitmap.valid()) return; + + // clear any existing brush data. + setBrush(VBrush()); + + if (target.size() == source.size()) { + drawBitmapUntransform(target, bitmap, source, const_alpha); + } else { + // @TODO scaling + } +} + +void VPainter::drawBitmap(const VPoint &point, const VBitmap &bitmap, + uint8_t const_alpha) +{ + if (!bitmap.valid()) return; + + drawBitmap(VRect(point, bitmap.size()), + bitmap, bitmap.rect(), + const_alpha); +} + +void VPainter::drawBitmap(const VRect &rect, const VBitmap &bitmap, + uint8_t const_alpha) +{ + if (!bitmap.valid()) return; + + drawBitmap(rect, bitmap, bitmap.rect(), + const_alpha); +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vpainter.h b/external/rlottie/src/vector/vpainter.h new file mode 100644 index 000000000..68abd70f6 --- /dev/null +++ b/external/rlottie/src/vector/vpainter.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VPAINTER_H +#define VPAINTER_H + +#include "vbrush.h" +#include "vpoint.h" +#include "vrle.h" +#include "vdrawhelper.h" + +V_BEGIN_NAMESPACE + +class VBitmap; +class VPainter { +public: + VPainter() = default; + explicit VPainter(VBitmap *buffer); + bool begin(VBitmap *buffer); + void end(); + void setDrawRegion(const VRect ®ion); // sub surface rendering area. + void setBrush(const VBrush &brush); + void setBlendMode(BlendMode mode); + void drawRle(const VPoint &pos, const VRle &rle); + void drawRle(const VRle &rle, const VRle &clip); + VRect clipBoundingRect() const; + + void drawBitmap(const VPoint &point, const VBitmap &bitmap, const VRect &source, uint8_t const_alpha = 255); + void drawBitmap(const VRect &target, const VBitmap &bitmap, const VRect &source, uint8_t const_alpha = 255); + void drawBitmap(const VPoint &point, const VBitmap &bitmap, uint8_t const_alpha = 255); + void drawBitmap(const VRect &rect, const VBitmap &bitmap, uint8_t const_alpha = 255); +private: + void drawBitmapUntransform(const VRect &target, const VBitmap &bitmap, + const VRect &source, uint8_t const_alpha); + VRasterBuffer mBuffer; + VSpanData mSpanData; +}; + +V_END_NAMESPACE + +#endif // VPAINTER_H diff --git a/external/rlottie/src/vector/vpath.cpp b/external/rlottie/src/vector/vpath.cpp new file mode 100644 index 000000000..f0dbec8ea --- /dev/null +++ b/external/rlottie/src/vector/vpath.cpp @@ -0,0 +1,709 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "vpath.h" +#include +#include +#include +#include "vbezier.h" +#include "vdebug.h" +#include "vline.h" +#include "vrect.h" + +V_BEGIN_NAMESPACE + +void VPath::VPathData::transform(const VMatrix &m) +{ + for (auto &i : m_points) { + i = m.map(i); + } + mLengthDirty = true; +} + +float VPath::VPathData::length() const +{ + if (!mLengthDirty) return mLength; + + mLengthDirty = false; + mLength = 0.0; + + size_t i = 0; + for (auto e : m_elements) { + switch (e) { + case VPath::Element::MoveTo: + i++; + break; + case VPath::Element::LineTo: { + mLength += VLine(m_points[i - 1], m_points[i]).length(); + i++; + break; + } + case VPath::Element::CubicTo: { + mLength += VBezier::fromPoints(m_points[i - 1], m_points[i], + m_points[i + 1], m_points[i + 2]) + .length(); + i += 3; + break; + } + case VPath::Element::Close: + break; + } + } + + return mLength; +} + +void VPath::VPathData::checkNewSegment() +{ + if (mNewSegment) { + moveTo(0, 0); + mNewSegment = false; + } +} + +void VPath::VPathData::moveTo(float x, float y) +{ + mStartPoint = {x, y}; + mNewSegment = false; + m_elements.emplace_back(VPath::Element::MoveTo); + m_points.emplace_back(x, y); + m_segments++; + mLengthDirty = true; +} + +void VPath::VPathData::lineTo(float x, float y) +{ + checkNewSegment(); + m_elements.emplace_back(VPath::Element::LineTo); + m_points.emplace_back(x, y); + mLengthDirty = true; +} + +void VPath::VPathData::cubicTo(float cx1, float cy1, float cx2, float cy2, + float ex, float ey) +{ + checkNewSegment(); + m_elements.emplace_back(VPath::Element::CubicTo); + m_points.emplace_back(cx1, cy1); + m_points.emplace_back(cx2, cy2); + m_points.emplace_back(ex, ey); + mLengthDirty = true; +} + +void VPath::VPathData::close() +{ + if (empty()) return; + + const VPointF &lastPt = m_points.back(); + if (!fuzzyCompare(mStartPoint, lastPt)) { + lineTo(mStartPoint.x(), mStartPoint.y()); + } + m_elements.push_back(VPath::Element::Close); + mNewSegment = true; + mLengthDirty = true; +} + +void VPath::VPathData::reset() +{ + if (empty()) return; + + m_elements.clear(); + m_points.clear(); + m_segments = 0; + mLength = 0; + mLengthDirty = false; +} + +size_t VPath::VPathData::segments() const +{ + return m_segments; +} + +void VPath::VPathData::reserve(size_t pts, size_t elms) +{ + if (m_points.capacity() < m_points.size() + pts) + m_points.reserve(m_points.size() + pts); + if (m_elements.capacity() < m_elements.size() + elms) + m_elements.reserve(m_elements.size() + elms); +} + +static VPointF curvesForArc(const VRectF &, float, float, VPointF *, size_t *); +static constexpr float PATH_KAPPA = 0.5522847498f; +static constexpr float K_PI = 3.141592f; + +void VPath::VPathData::arcTo(const VRectF &rect, float startAngle, + float sweepLength, bool forceMoveTo) +{ + size_t point_count = 0; + VPointF pts[15]; + VPointF curve_start = + curvesForArc(rect, startAngle, sweepLength, pts, &point_count); + + reserve(point_count + 1, point_count / 3 + 1); + if (empty() || forceMoveTo) { + moveTo(curve_start.x(), curve_start.y()); + } else { + lineTo(curve_start.x(), curve_start.y()); + } + for (size_t i = 0; i < point_count; i += 3) { + cubicTo(pts[i].x(), pts[i].y(), pts[i + 1].x(), pts[i + 1].y(), + pts[i + 2].x(), pts[i + 2].y()); + } +} + +void VPath::VPathData::addCircle(float cx, float cy, float radius, + VPath::Direction dir) +{ + addOval(VRectF(cx - radius, cy - radius, 2 * radius, 2 * radius), dir); +} + +void VPath::VPathData::addOval(const VRectF &rect, VPath::Direction dir) +{ + if (rect.empty()) return; + + float x = rect.x(); + float y = rect.y(); + + float w = rect.width(); + float w2 = rect.width() / 2; + float w2k = w2 * PATH_KAPPA; + + float h = rect.height(); + float h2 = rect.height() / 2; + float h2k = h2 * PATH_KAPPA; + + reserve(13, 6); // 1Move + 4Cubic + 1Close + if (dir == VPath::Direction::CW) { + // moveto 12 o'clock. + moveTo(x + w2, y); + // 12 -> 3 o'clock + cubicTo(x + w2 + w2k, y, x + w, y + h2 - h2k, x + w, y + h2); + // 3 -> 6 o'clock + cubicTo(x + w, y + h2 + h2k, x + w2 + w2k, y + h, x + w2, y + h); + // 6 -> 9 o'clock + cubicTo(x + w2 - w2k, y + h, x, y + h2 + h2k, x, y + h2); + // 9 -> 12 o'clock + cubicTo(x, y + h2 - h2k, x + w2 - w2k, y, x + w2, y); + } else { + // moveto 12 o'clock. + moveTo(x + w2, y); + // 12 -> 9 o'clock + cubicTo(x + w2 - w2k, y, x, y + h2 - h2k, x, y + h2); + // 9 -> 6 o'clock + cubicTo(x, y + h2 + h2k, x + w2 - w2k, y + h, x + w2, y + h); + // 6 -> 3 o'clock + cubicTo(x + w2 + w2k, y + h, x + w, y + h2 + h2k, x + w, y + h2); + // 3 -> 12 o'clock + cubicTo(x + w, y + h2 - h2k, x + w2 + w2k, y, x + w2, y); + } + close(); +} + +void VPath::VPathData::addRect(const VRectF &rect, VPath::Direction dir) +{ + if (rect.empty()) return; + + float x = rect.x(); + float y = rect.y(); + float w = rect.width(); + float h = rect.height(); + + reserve(5, 6); // 1Move + 4Line + 1Close + if (dir == VPath::Direction::CW) { + moveTo(x + w, y); + lineTo(x + w, y + h); + lineTo(x, y + h); + lineTo(x, y); + close(); + } else { + moveTo(x + w, y); + lineTo(x, y); + lineTo(x, y + h); + lineTo(x + w, y + h); + close(); + } +} + +void VPath::VPathData::addRoundRect(const VRectF &rect, float roundness, + VPath::Direction dir) +{ + if (2 * roundness > rect.width()) roundness = rect.width() / 2.0f; + if (2 * roundness > rect.height()) roundness = rect.height() / 2.0f; + addRoundRect(rect, roundness, roundness, dir); +} + +void VPath::VPathData::addRoundRect(const VRectF &rect, float rx, float ry, + VPath::Direction dir) +{ + if (vCompare(rx, 0.f) || vCompare(ry, 0.f)) { + addRect(rect, dir); + return; + } + + float x = rect.x(); + float y = rect.y(); + float w = rect.width(); + float h = rect.height(); + // clamp the rx and ry radius value. + rx = 2 * rx; + ry = 2 * ry; + if (rx > w) rx = w; + if (ry > h) ry = h; + + reserve(17, 10); // 1Move + 4Cubic + 1Close + if (dir == VPath::Direction::CW) { + moveTo(x + w, y + ry / 2.f); + arcTo(VRectF(x + w - rx, y + h - ry, rx, ry), 0, -90, false); + arcTo(VRectF(x, y + h - ry, rx, ry), -90, -90, false); + arcTo(VRectF(x, y, rx, ry), -180, -90, false); + arcTo(VRectF(x + w - rx, y, rx, ry), -270, -90, false); + close(); + } else { + moveTo(x + w, y + ry / 2.f); + arcTo(VRectF(x + w - rx, y, rx, ry), 0, 90, false); + arcTo(VRectF(x, y, rx, ry), 90, 90, false); + arcTo(VRectF(x, y + h - ry, rx, ry), 180, 90, false); + arcTo(VRectF(x + w - rx, y + h - ry, rx, ry), 270, 90, false); + close(); + } +} + +static float tForArcAngle(float angle); +void findEllipseCoords(const VRectF &r, float angle, float length, + VPointF *startPoint, VPointF *endPoint) +{ + if (r.empty()) { + if (startPoint) *startPoint = VPointF(); + if (endPoint) *endPoint = VPointF(); + return; + } + + float w2 = r.width() / 2; + float h2 = r.height() / 2; + + float angles[2] = {angle, angle + length}; + VPointF *points[2] = {startPoint, endPoint}; + + for (int i = 0; i < 2; ++i) { + if (!points[i]) continue; + + float theta = angles[i] - 360 * floorf(angles[i] / 360); + float t = theta / 90; + // truncate + int quadrant = int(t); + t -= quadrant; + + t = tForArcAngle(90 * t); + + // swap x and y? + if (quadrant & 1) t = 1 - t; + + float a, b, c, d; + VBezier::coefficients(t, a, b, c, d); + VPointF p(a + b + c * PATH_KAPPA, d + c + b * PATH_KAPPA); + + // left quadrants + if (quadrant == 1 || quadrant == 2) p.rx() = -p.x(); + + // top quadrants + if (quadrant == 0 || quadrant == 1) p.ry() = -p.y(); + + *points[i] = r.center() + VPointF(w2 * p.x(), h2 * p.y()); + } +} + +static float tForArcAngle(float angle) +{ + float radians, cos_angle, sin_angle, tc, ts, t; + + if (vCompare(angle, 0.f)) return 0; + if (vCompare(angle, 90.0f)) return 1; + + radians = (angle / 180) * K_PI; + + cos_angle = cosf(radians); + sin_angle = sinf(radians); + + // initial guess + tc = angle / 90; + + // do some iterations of newton's method to approximate cos_angle + // finds the zero of the function b.pointAt(tc).x() - cos_angle + tc -= ((((2 - 3 * PATH_KAPPA) * tc + 3 * (PATH_KAPPA - 1)) * tc) * tc + 1 - + cos_angle) // value + / (((6 - 9 * PATH_KAPPA) * tc + 6 * (PATH_KAPPA - 1)) * + tc); // derivative + tc -= ((((2 - 3 * PATH_KAPPA) * tc + 3 * (PATH_KAPPA - 1)) * tc) * tc + 1 - + cos_angle) // value + / (((6 - 9 * PATH_KAPPA) * tc + 6 * (PATH_KAPPA - 1)) * + tc); // derivative + + // initial guess + ts = tc; + // do some iterations of newton's method to approximate sin_angle + // finds the zero of the function b.pointAt(tc).y() - sin_angle + ts -= ((((3 * PATH_KAPPA - 2) * ts - 6 * PATH_KAPPA + 3) * ts + + 3 * PATH_KAPPA) * + ts - + sin_angle) / + (((9 * PATH_KAPPA - 6) * ts + 12 * PATH_KAPPA - 6) * ts + + 3 * PATH_KAPPA); + ts -= ((((3 * PATH_KAPPA - 2) * ts - 6 * PATH_KAPPA + 3) * ts + + 3 * PATH_KAPPA) * + ts - + sin_angle) / + (((9 * PATH_KAPPA - 6) * ts + 12 * PATH_KAPPA - 6) * ts + + 3 * PATH_KAPPA); + + // use the average of the t that best approximates cos_angle + // and the t that best approximates sin_angle + t = 0.5f * (tc + ts); + return t; +} + +// The return value is the starting point of the arc +static VPointF curvesForArc(const VRectF &rect, float startAngle, + float sweepLength, VPointF *curves, + size_t *point_count) +{ + if (rect.empty()) { + return {}; + } + + float x = rect.x(); + float y = rect.y(); + + float w = rect.width(); + float w2 = rect.width() / 2; + float w2k = w2 * PATH_KAPPA; + + float h = rect.height(); + float h2 = rect.height() / 2; + float h2k = h2 * PATH_KAPPA; + + VPointF points[16] = { + // start point + VPointF(x + w, y + h2), + + // 0 -> 270 degrees + VPointF(x + w, y + h2 + h2k), VPointF(x + w2 + w2k, y + h), + VPointF(x + w2, y + h), + + // 270 -> 180 degrees + VPointF(x + w2 - w2k, y + h), VPointF(x, y + h2 + h2k), + VPointF(x, y + h2), + + // 180 -> 90 degrees + VPointF(x, y + h2 - h2k), VPointF(x + w2 - w2k, y), VPointF(x + w2, y), + + // 90 -> 0 degrees + VPointF(x + w2 + w2k, y), VPointF(x + w, y + h2 - h2k), + VPointF(x + w, y + h2)}; + + if (sweepLength > 360) + sweepLength = 360; + else if (sweepLength < -360) + sweepLength = -360; + + // Special case fast paths + if (startAngle == 0.0f) { + if (vCompare(sweepLength, 360)) { + for (int i = 11; i >= 0; --i) curves[(*point_count)++] = points[i]; + return points[12]; + } else if (vCompare(sweepLength, -360)) { + for (int i = 1; i <= 12; ++i) curves[(*point_count)++] = points[i]; + return points[0]; + } + } + + int startSegment = int(floorf(startAngle / 90.0f)); + int endSegment = int(floorf((startAngle + sweepLength) / 90.0f)); + + float startT = (startAngle - startSegment * 90) / 90; + float endT = (startAngle + sweepLength - endSegment * 90) / 90; + + int delta = sweepLength > 0 ? 1 : -1; + if (delta < 0) { + startT = 1 - startT; + endT = 1 - endT; + } + + // avoid empty start segment + if (vIsZero(startT - float(1))) { + startT = 0; + startSegment += delta; + } + + // avoid empty end segment + if (vIsZero(endT)) { + endT = 1; + endSegment -= delta; + } + + startT = tForArcAngle(startT * 90); + endT = tForArcAngle(endT * 90); + + const bool splitAtStart = !vIsZero(startT); + const bool splitAtEnd = !vIsZero(endT - float(1)); + + const int end = endSegment + delta; + + // empty arc? + if (startSegment == end) { + const int quadrant = 3 - ((startSegment % 4) + 4) % 4; + const int j = 3 * quadrant; + return delta > 0 ? points[j + 3] : points[j]; + } + + VPointF startPoint, endPoint; + findEllipseCoords(rect, startAngle, sweepLength, &startPoint, &endPoint); + + for (int i = startSegment; i != end; i += delta) { + const int quadrant = 3 - ((i % 4) + 4) % 4; + const int j = 3 * quadrant; + + VBezier b; + if (delta > 0) + b = VBezier::fromPoints(points[j + 3], points[j + 2], points[j + 1], + points[j]); + else + b = VBezier::fromPoints(points[j], points[j + 1], points[j + 2], + points[j + 3]); + + // empty arc? + if (startSegment == endSegment && vCompare(startT, endT)) + return startPoint; + + if (i == startSegment) { + if (i == endSegment && splitAtEnd) + b = b.onInterval(startT, endT); + else if (splitAtStart) + b = b.onInterval(startT, 1); + } else if (i == endSegment && splitAtEnd) { + b = b.onInterval(0, endT); + } + + // push control points + curves[(*point_count)++] = b.pt2(); + curves[(*point_count)++] = b.pt3(); + curves[(*point_count)++] = b.pt4(); + } + + curves[*(point_count)-1] = endPoint; + + return startPoint; +} + +void VPath::VPathData::addPolystar(float points, float innerRadius, + float outerRadius, float innerRoundness, + float outerRoundness, float startAngle, + float cx, float cy, VPath::Direction dir) +{ + const static float POLYSTAR_MAGIC_NUMBER = 0.47829f / 0.28f; + float currentAngle = (startAngle - 90.0f) * K_PI / 180.0f; + float x; + float y; + float partialPointRadius = 0; + float anglePerPoint = (2.0f * K_PI / points); + float halfAnglePerPoint = anglePerPoint / 2.0f; + float partialPointAmount = points - floorf(points); + bool longSegment = false; + size_t numPoints = size_t(ceilf(points) * 2); + float angleDir = ((dir == VPath::Direction::CW) ? 1.0f : -1.0f); + bool hasRoundness = false; + + innerRoundness /= 100.0f; + outerRoundness /= 100.0f; + + if (!vCompare(partialPointAmount, 0)) { + currentAngle += + halfAnglePerPoint * (1.0f - partialPointAmount) * angleDir; + } + + if (!vCompare(partialPointAmount, 0)) { + partialPointRadius = + innerRadius + partialPointAmount * (outerRadius - innerRadius); + x = partialPointRadius * cosf(currentAngle); + y = partialPointRadius * sinf(currentAngle); + currentAngle += anglePerPoint * partialPointAmount / 2.0f * angleDir; + } else { + x = outerRadius * cosf(currentAngle); + y = outerRadius * sinf(currentAngle); + currentAngle += halfAnglePerPoint * angleDir; + } + + if (vIsZero(innerRoundness) && vIsZero(outerRoundness)) { + reserve(numPoints + 2, numPoints + 3); + } else { + reserve(numPoints * 3 + 2, numPoints + 3); + hasRoundness = true; + } + + moveTo(x + cx, y + cy); + + for (size_t i = 0; i < numPoints; i++) { + float radius = longSegment ? outerRadius : innerRadius; + float dTheta = halfAnglePerPoint; + if (!vIsZero(partialPointRadius) && i == numPoints - 2) { + dTheta = anglePerPoint * partialPointAmount / 2.0f; + } + if (!vIsZero(partialPointRadius) && i == numPoints - 1) { + radius = partialPointRadius; + } + float previousX = x; + float previousY = y; + x = radius * cosf(currentAngle); + y = radius * sinf(currentAngle); + + if (hasRoundness) { + float cp1Theta = + (atan2f(previousY, previousX) - K_PI / 2.0f * angleDir); + float cp1Dx = cosf(cp1Theta); + float cp1Dy = sinf(cp1Theta); + float cp2Theta = (atan2f(y, x) - K_PI / 2.0f * angleDir); + float cp2Dx = cosf(cp2Theta); + float cp2Dy = sinf(cp2Theta); + + float cp1Roundness = longSegment ? innerRoundness : outerRoundness; + float cp2Roundness = longSegment ? outerRoundness : innerRoundness; + float cp1Radius = longSegment ? innerRadius : outerRadius; + float cp2Radius = longSegment ? outerRadius : innerRadius; + + float cp1x = cp1Radius * cp1Roundness * POLYSTAR_MAGIC_NUMBER * + cp1Dx / points; + float cp1y = cp1Radius * cp1Roundness * POLYSTAR_MAGIC_NUMBER * + cp1Dy / points; + float cp2x = cp2Radius * cp2Roundness * POLYSTAR_MAGIC_NUMBER * + cp2Dx / points; + float cp2y = cp2Radius * cp2Roundness * POLYSTAR_MAGIC_NUMBER * + cp2Dy / points; + + if (!vIsZero(partialPointAmount) && + ((i == 0) || (i == numPoints - 1))) { + cp1x *= partialPointAmount; + cp1y *= partialPointAmount; + cp2x *= partialPointAmount; + cp2y *= partialPointAmount; + } + + cubicTo(previousX - cp1x + cx, previousY - cp1y + cy, x + cp2x + cx, + y + cp2y + cy, x + cx, y + cy); + } else { + lineTo(x + cx, y + cy); + } + + currentAngle += dTheta * angleDir; + longSegment = !longSegment; + } + + close(); +} + +void VPath::VPathData::addPolygon(float points, float radius, float roundness, + float startAngle, float cx, float cy, + VPath::Direction dir) +{ + // TODO: Need to support floating point number for number of points + const static float POLYGON_MAGIC_NUMBER = 0.25; + float currentAngle = (startAngle - 90.0f) * K_PI / 180.0f; + float x; + float y; + float anglePerPoint = 2.0f * K_PI / floorf(points); + size_t numPoints = size_t(floorf(points)); + float angleDir = ((dir == VPath::Direction::CW) ? 1.0f : -1.0f); + bool hasRoundness = false; + + roundness /= 100.0f; + + currentAngle = (currentAngle - 90.0f) * K_PI / 180.0f; + x = radius * cosf(currentAngle); + y = radius * sinf(currentAngle); + currentAngle += anglePerPoint * angleDir; + + if (vIsZero(roundness)) { + reserve(numPoints + 2, numPoints + 3); + } else { + reserve(numPoints * 3 + 2, numPoints + 3); + hasRoundness = true; + } + + moveTo(x + cx, y + cy); + + for (size_t i = 0; i < numPoints; i++) { + float previousX = x; + float previousY = y; + x = (radius * cosf(currentAngle)); + y = (radius * sinf(currentAngle)); + + if (hasRoundness) { + float cp1Theta = + (atan2f(previousY, previousX) - K_PI / 2.0f * angleDir); + float cp1Dx = cosf(cp1Theta); + float cp1Dy = sinf(cp1Theta); + float cp2Theta = atan2f(y, x) - K_PI / 2.0f * angleDir; + float cp2Dx = cosf(cp2Theta); + float cp2Dy = sinf(cp2Theta); + + float cp1x = radius * roundness * POLYGON_MAGIC_NUMBER * cp1Dx; + float cp1y = radius * roundness * POLYGON_MAGIC_NUMBER * cp1Dy; + float cp2x = radius * roundness * POLYGON_MAGIC_NUMBER * cp2Dx; + float cp2y = radius * roundness * POLYGON_MAGIC_NUMBER * cp2Dy; + + cubicTo(previousX - cp1x + cx, previousY - cp1y + cy, x + cp2x + cx, + y + cp2y + cy, x, y); + } else { + lineTo(x + cx, y + cy); + } + + currentAngle += anglePerPoint * angleDir; + } + + close(); +} + +void VPath::VPathData::addPath(const VPathData &path, const VMatrix *m) +{ + size_t segment = path.segments(); + + // make sure enough memory available + if (m_points.capacity() < m_points.size() + path.m_points.size()) + m_points.reserve(m_points.size() + path.m_points.size()); + + if (m_elements.capacity() < m_elements.size() + path.m_elements.size()) + m_elements.reserve(m_elements.size() + path.m_elements.size()); + + if (m) { + for (const auto &i : path.m_points) { + m_points.push_back(m->map(i)); + } + } else { + std::copy(path.m_points.begin(), path.m_points.end(), + back_inserter(m_points)); + } + + std::copy(path.m_elements.begin(), path.m_elements.end(), + back_inserter(m_elements)); + + m_segments += segment; + mLengthDirty = true; +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vpath.h b/external/rlottie/src/vector/vpath.h new file mode 100644 index 000000000..90c2c3e53 --- /dev/null +++ b/external/rlottie/src/vector/vpath.h @@ -0,0 +1,285 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VPATH_H +#define VPATH_H +#include +#include "vcowptr.h" +#include "vmatrix.h" +#include "vpoint.h" +#include "vrect.h" + +V_BEGIN_NAMESPACE + +struct VPathData; +class VPath { +public: + enum class Direction { CCW, CW }; + + enum class Element : uchar { MoveTo, LineTo, CubicTo, Close }; + bool empty() const; + bool null() const; + void moveTo(const VPointF &p); + void moveTo(float x, float y); + void lineTo(const VPointF &p); + void lineTo(float x, float y); + void cubicTo(const VPointF &c1, const VPointF &c2, const VPointF &e); + void cubicTo(float c1x, float c1y, float c2x, float c2y, float ex, + float ey); + void arcTo(const VRectF &rect, float startAngle, float sweepLength, + bool forceMoveTo); + void close(); + void reset(); + void reserve(size_t pts, size_t elms); + size_t segments() const; + void addCircle(float cx, float cy, float radius, + VPath::Direction dir = Direction::CW); + void addOval(const VRectF &rect, VPath::Direction dir = Direction::CW); + void addRoundRect(const VRectF &rect, float rx, float ry, + VPath::Direction dir = Direction::CW); + void addRoundRect(const VRectF &rect, float roundness, + VPath::Direction dir = Direction::CW); + void addRect(const VRectF &rect, VPath::Direction dir = Direction::CW); + void addPolystar(float points, float innerRadius, float outerRadius, + float innerRoundness, float outerRoundness, + float startAngle, float cx, float cy, + VPath::Direction dir = Direction::CW); + void addPolygon(float points, float radius, float roundness, + float startAngle, float cx, float cy, + VPath::Direction dir = Direction::CW); + void addPath(const VPath &path); + void addPath(const VPath &path, const VMatrix &m); + void transform(const VMatrix &m); + float length() const; + const std::vector &elements() const; + const std::vector & points() const; + void clone(const VPath &srcPath); + bool unique() const { return d.unique();} + size_t refCount() const { return d.refCount();} + +private: + struct VPathData { + bool empty() const { return m_elements.empty(); } + bool null() const { return empty() && !m_elements.capacity();} + void moveTo(float x, float y); + void lineTo(float x, float y); + void cubicTo(float cx1, float cy1, float cx2, float cy2, float ex, float ey); + void close(); + void reset(); + void reserve(size_t, size_t); + void checkNewSegment(); + size_t segments() const; + void transform(const VMatrix &m); + float length() const; + void addRoundRect(const VRectF &, float, float, VPath::Direction); + void addRoundRect(const VRectF &, float, VPath::Direction); + void addRect(const VRectF &, VPath::Direction); + void arcTo(const VRectF &, float, float, bool); + void addCircle(float, float, float, VPath::Direction); + void addOval(const VRectF &, VPath::Direction); + void addPolystar(float points, float innerRadius, float outerRadius, + float innerRoundness, float outerRoundness, + float startAngle, float cx, float cy, + VPath::Direction dir = Direction::CW); + void addPolygon(float points, float radius, float roundness, + float startAngle, float cx, float cy, + VPath::Direction dir = Direction::CW); + void addPath(const VPathData &path, const VMatrix *m = nullptr); + void clone(const VPath::VPathData &o) { *this = o;} + const std::vector &elements() const + { + return m_elements; + } + const std::vector &points() const { return m_points; } + std::vector m_points; + std::vector m_elements; + size_t m_segments; + VPointF mStartPoint; + mutable float mLength{0}; + mutable bool mLengthDirty{true}; + bool mNewSegment; + }; + + vcow_ptr d; +}; + +inline bool VPath::empty() const +{ + return d->empty(); +} + +/* + * path is empty as well as null(no memory for data allocated yet). + */ +inline bool VPath::null() const +{ + return d->null(); +} + +inline void VPath::moveTo(const VPointF &p) +{ + d.write().moveTo(p.x(), p.y()); +} + +inline void VPath::lineTo(const VPointF &p) +{ + d.write().lineTo(p.x(), p.y()); +} + +inline void VPath::close() +{ + d.write().close(); +} + +inline void VPath::reset() +{ + d.write().reset(); +} + +inline void VPath::reserve(size_t pts, size_t elms) +{ + d.write().reserve(pts, elms); +} + +inline size_t VPath::segments() const +{ + return d->segments(); +} + +inline float VPath::length() const +{ + return d->length(); +} + +inline void VPath::cubicTo(const VPointF &c1, const VPointF &c2, + const VPointF &e) +{ + d.write().cubicTo(c1.x(), c1.y(), c2.x(), c2.y(), e.x(), e.y()); +} + +inline void VPath::lineTo(float x, float y) +{ + d.write().lineTo(x, y); +} + +inline void VPath::moveTo(float x, float y) +{ + d.write().moveTo(x, y); +} + +inline void VPath::cubicTo(float c1x, float c1y, float c2x, float c2y, float ex, + float ey) +{ + d.write().cubicTo(c1x, c1y, c2x, c2y, ex, ey); +} + +inline void VPath::transform(const VMatrix &m) +{ + d.write().transform(m); +} + +inline void VPath::arcTo(const VRectF &rect, float startAngle, + float sweepLength, bool forceMoveTo) +{ + d.write().arcTo(rect, startAngle, sweepLength, forceMoveTo); +} + +inline void VPath::addRect(const VRectF &rect, VPath::Direction dir) +{ + d.write().addRect(rect, dir); +} + +inline void VPath::addRoundRect(const VRectF &rect, float rx, float ry, + VPath::Direction dir) +{ + d.write().addRoundRect(rect, rx, ry, dir); +} + +inline void VPath::addRoundRect(const VRectF &rect, float roundness, + VPath::Direction dir) +{ + d.write().addRoundRect(rect, roundness, dir); +} + +inline void VPath::addCircle(float cx, float cy, float radius, + VPath::Direction dir) +{ + d.write().addCircle(cx, cy, radius, dir); +} + +inline void VPath::addOval(const VRectF &rect, VPath::Direction dir) +{ + d.write().addOval(rect, dir); +} + +inline void VPath::addPolystar(float points, float innerRadius, + float outerRadius, float innerRoundness, + float outerRoundness, float startAngle, float cx, + float cy, VPath::Direction dir) +{ + d.write().addPolystar(points, innerRadius, outerRadius, innerRoundness, + outerRoundness, startAngle, cx, cy, dir); +} + +inline void VPath::addPolygon(float points, float radius, float roundness, + float startAngle, float cx, float cy, + VPath::Direction dir) +{ + d.write().addPolygon(points, radius, roundness, startAngle, cx, cy, dir); +} + +inline void VPath::addPath(const VPath &path) +{ + if (path.empty()) return; + + if (null()) { + *this = path; + } else { + d.write().addPath(path.d.read()); + } +} + +inline void VPath::addPath(const VPath &path, const VMatrix &m) +{ + if (path.empty()) return; + + d.write().addPath(path.d.read(), &m); +} + +inline const std::vector &VPath::elements() const +{ + return d->elements(); +} + +inline const std::vector &VPath::points() const +{ + return d->points(); +} + +inline void VPath::clone(const VPath &o) +{ + d.write().clone(o.d.read()); +} + +V_END_NAMESPACE + +#endif // VPATH_H diff --git a/external/rlottie/src/vector/vpathmesure.cpp b/external/rlottie/src/vector/vpathmesure.cpp new file mode 100644 index 000000000..5d44987ca --- /dev/null +++ b/external/rlottie/src/vector/vpathmesure.cpp @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vpathmesure.h" +#include +#include "vbezier.h" +#include "vdasher.h" + +V_BEGIN_NAMESPACE + +/* + * start and end value must be normalized to [0 - 1] + * Path mesure trims the path from [start --> end] + * if start > end it treates as a loop and trims as two segment + * [0-->end] and [start --> 1] + */ +VPath VPathMesure::trim(const VPath &path) +{ + if (vCompare(mStart, mEnd)) return VPath(); + + if ((vCompare(mStart, 0.0f) && (vCompare(mEnd, 1.0f))) || + (vCompare(mStart, 1.0f) && (vCompare(mEnd, 0.0f)))) + return path; + + float length = path.length(); + + if (mStart < mEnd) { + float array[4] = { + 0.0f, length * mStart, // 1st segment + (mEnd - mStart) * length, + std::numeric_limits::max(), // 2nd segment + }; + VDasher dasher(array, 4); + dasher.dashed(path, mScratchObject); + return mScratchObject; + } else { + float array[4] = { + length * mEnd, (mStart - mEnd) * length, // 1st segment + (1 - mStart) * length, + std::numeric_limits::max(), // 2nd segment + }; + VDasher dasher(array, 4); + dasher.dashed(path, mScratchObject); + return mScratchObject; + } +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vpathmesure.h b/external/rlottie/src/vector/vpathmesure.h new file mode 100644 index 000000000..2a4adb976 --- /dev/null +++ b/external/rlottie/src/vector/vpathmesure.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VPATHMESURE_H +#define VPATHMESURE_H + +#include "vpath.h" + +V_BEGIN_NAMESPACE + +class VPathMesure { +public: + void setRange(float start, float end) {mStart = start; mEnd = end;} + void setStart(float start){mStart = start;} + void setEnd(float end){mEnd = end;} + VPath trim(const VPath &path); +private: + float mStart{0.0f}; + float mEnd{1.0f}; + VPath mScratchObject; +}; + +V_END_NAMESPACE + +#endif // VPATHMESURE_H diff --git a/external/rlottie/src/vector/vpoint.h b/external/rlottie/src/vector/vpoint.h new file mode 100644 index 000000000..da1bb2f55 --- /dev/null +++ b/external/rlottie/src/vector/vpoint.h @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef VPOINT_H +#define VPOINT_H + +#include "vglobal.h" + +V_BEGIN_NAMESPACE + +class VPointF { +public: + VPointF() = default; + constexpr inline VPointF(float x, float y) noexcept : mx(x), my(y) {} + constexpr inline float x() const noexcept { return mx; } + constexpr inline float y() const noexcept { return my; } + inline float & rx() noexcept { return mx; } + inline float & ry() noexcept { return my; } + inline void setX(float x) { mx = x; } + inline void setY(float y) { my = y; } + inline VPointF operator-() noexcept { return {-mx, -my}; } + inline VPointF & operator+=(const VPointF &p) noexcept; + inline VPointF & operator-=(const VPointF &p) noexcept; + friend const VPointF operator+(const VPointF &p1, const VPointF &p2) + { + return VPointF(p1.mx + p2.mx, p1.my + p2.my); + } + inline friend bool fuzzyCompare(const VPointF &p1, const VPointF &p2); + inline friend VDebug & operator<<(VDebug &os, const VPointF &o); + + friend inline VPointF operator-(const VPointF &p1, const VPointF &p2); + friend inline const VPointF operator*(const VPointF &, float); + friend inline const VPointF operator*(float, const VPointF &); + friend inline const VPointF operator/(const VPointF &, float); + friend inline const VPointF operator/(float, const VPointF &); + +private: + float mx{0}; + float my{0}; +}; + +inline bool fuzzyCompare(const VPointF &p1, const VPointF &p2) +{ + return (vCompare(p1.mx, p2.mx) && vCompare(p1.my, p2.my)); +} + +inline VPointF operator-(const VPointF &p1, const VPointF &p2) +{ + return {p1.mx - p2.mx, p1.my - p2.my}; +} + +inline const VPointF operator*(const VPointF &p, float c) +{ + return VPointF(p.mx * c, p.my * c); +} + +inline const VPointF operator*(float c, const VPointF &p) +{ + return VPointF(p.mx * c, p.my * c); +} + +inline const VPointF operator/(const VPointF &p, float c) +{ + return VPointF(p.mx / c, p.my / c); +} + +inline const VPointF operator/(float c, const VPointF &p) +{ + return VPointF(p.mx / c, p.my / c); +} + +inline VDebug &operator<<(VDebug &os, const VPointF &o) +{ + os << "{P " << o.x() << "," << o.y() << "}"; + return os; +} + +inline VPointF &VPointF::operator+=(const VPointF &p) noexcept +{ + mx += p.mx; + my += p.my; + return *this; +} + +inline VPointF &VPointF::operator-=(const VPointF &p) noexcept +{ + mx -= p.mx; + my -= p.my; + return *this; +} + +class VPoint { +public: + VPoint() = default; + constexpr inline VPoint(int x, int y) noexcept : mx(x), my(y) {} + constexpr inline int x() const noexcept { return mx; } + constexpr inline int y() const noexcept { return my; } + inline void setX(int x) { mx = x; } + inline void setY(int y) { my = y; } + inline VPoint & operator+=(const VPoint &p) noexcept; + inline VPoint & operator-=(const VPoint &p) noexcept; + constexpr inline bool operator==(const VPoint &o) const; + constexpr inline bool operator!=(const VPoint &o) const + { + return !(operator==(o)); + } + friend inline VPoint operator-(const VPoint &p1, const VPoint &p2); + inline friend VDebug &operator<<(VDebug &os, const VPoint &o); + +private: + int mx{0}; + int my{0}; +}; +inline VDebug &operator<<(VDebug &os, const VPoint &o) +{ + os << "{P " << o.x() << "," << o.y() << "}"; + return os; +} + +inline VPoint operator-(const VPoint &p1, const VPoint &p2) +{ + return {p1.mx - p2.mx, p1.my - p2.my}; +} + +constexpr inline bool VPoint::operator==(const VPoint &o) const +{ + return (mx == o.x() && my == o.y()); +} + +inline VPoint &VPoint::operator+=(const VPoint &p) noexcept +{ + mx += p.mx; + my += p.my; + return *this; +} + +inline VPoint &VPoint::operator-=(const VPoint &p) noexcept +{ + mx -= p.mx; + my -= p.my; + return *this; +} + +class VSize { +public: + VSize() = default; + constexpr inline VSize(int w, int h) noexcept : mw(w), mh(h) {} + bool empty() const {return (mw <= 0 || mh <= 0);} + constexpr inline int width() const noexcept { return mw; } + constexpr inline int height() const noexcept { return mh; } + inline void setWidth(int w) { mw = w; } + inline void setHeight(int h) { mh = h; } + inline VSize & operator+=(const VSize &p) noexcept; + inline VSize & operator-=(const VSize &p) noexcept; + constexpr inline bool operator==(const VSize &o) const; + constexpr inline bool operator!=(const VSize &o) const + { + return !(operator==(o)); + } + inline friend VDebug &operator<<(VDebug &os, const VSize &o); + +private: + int mw{0}; + int mh{0}; +}; +inline VDebug &operator<<(VDebug &os, const VSize &o) +{ + os << "{P " << o.width() << "," << o.height() << "}"; + return os; +} +constexpr inline bool VSize::operator==(const VSize &o) const +{ + return (mw == o.width() && mh == o.height()); +} + +inline VSize &VSize::operator+=(const VSize &p) noexcept +{ + mw += p.mw; + mh += p.mh; + return *this; +} + +inline VSize &VSize::operator-=(const VSize &p) noexcept +{ + mw -= p.mw; + mh -= p.mh; + return *this; +} + +V_END_NAMESPACE + +#endif // VPOINT_H diff --git a/external/rlottie/src/vector/vraster.cpp b/external/rlottie/src/vector/vraster.cpp new file mode 100644 index 000000000..062431532 --- /dev/null +++ b/external/rlottie/src/vector/vraster.cpp @@ -0,0 +1,563 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "vraster.h" +#include +#include +#include +#include "config.h" +#include "v_ft_raster.h" +#include "v_ft_stroker.h" +#include "vdebug.h" +#include "vmatrix.h" +#include "vpath.h" +#include "vrle.h" + +V_BEGIN_NAMESPACE + +template +class dyn_array { +public: + explicit dyn_array(size_t size) + : mCapacity(size), mData(std::make_unique(mCapacity)) + { + } + void reserve(size_t size) + { + if (mCapacity > size) return; + mCapacity = size; + mData = std::make_unique(mCapacity); + } + T * data() const { return mData.get(); } + dyn_array &operator=(dyn_array &&) noexcept = delete; + +private: + size_t mCapacity{0}; + std::unique_ptr mData{nullptr}; +}; + +struct FTOutline { +public: + void reset(); + void grow(size_t, size_t); + void convert(const VPath &path); + void convert(CapStyle, JoinStyle, float, float); + void moveTo(const VPointF &pt); + void lineTo(const VPointF &pt); + void cubicTo(const VPointF &ctr1, const VPointF &ctr2, const VPointF end); + void close(); + void end(); + void transform(const VMatrix &m); + SW_FT_Pos TO_FT_COORD(float x) + { + return SW_FT_Pos(x * 64); + } // to freetype 26.6 coordinate. + SW_FT_Outline ft; + bool closed{false}; + SW_FT_Stroker_LineCap ftCap; + SW_FT_Stroker_LineJoin ftJoin; + SW_FT_Fixed ftWidth; + SW_FT_Fixed ftMiterLimit; + dyn_array mPointMemory{100}; + dyn_array mTagMemory{100}; + dyn_array mContourMemory{10}; + dyn_array mContourFlagMemory{10}; +}; + +void FTOutline::reset() +{ + ft.n_points = ft.n_contours = 0; + ft.flags = 0x0; +} + +void FTOutline::grow(size_t points, size_t segments) +{ + reset(); + mPointMemory.reserve(points + segments); + mTagMemory.reserve(points + segments); + mContourMemory.reserve(segments); + mContourFlagMemory.reserve(segments); + + ft.points = mPointMemory.data(); + ft.tags = mTagMemory.data(); + ft.contours = mContourMemory.data(); + ft.contours_flag = mContourFlagMemory.data(); +} + +void FTOutline::convert(const VPath &path) +{ + const std::vector &elements = path.elements(); + const std::vector & points = path.points(); + + grow(points.size(), path.segments()); + + size_t index = 0; + for (auto element : elements) { + switch (element) { + case VPath::Element::MoveTo: + moveTo(points[index]); + index++; + break; + case VPath::Element::LineTo: + lineTo(points[index]); + index++; + break; + case VPath::Element::CubicTo: + cubicTo(points[index], points[index + 1], points[index + 2]); + index = index + 3; + break; + case VPath::Element::Close: + close(); + break; + } + } + end(); +} + +void FTOutline::convert(CapStyle cap, JoinStyle join, float width, + float miterLimit) +{ + // map strokeWidth to freetype. It uses as the radius of the pen not the + // diameter + width = width / 2.0f; + // convert to freetype co-ordinate + // IMP: stroker takes radius in 26.6 co-ordinate + ftWidth = SW_FT_Fixed(width * (1 << 6)); + // IMP: stroker takes meterlimit in 16.16 co-ordinate + ftMiterLimit = SW_FT_Fixed(miterLimit * (1 << 16)); + + // map to freetype capstyle + switch (cap) { + case CapStyle::Square: + ftCap = SW_FT_STROKER_LINECAP_SQUARE; + break; + case CapStyle::Round: + ftCap = SW_FT_STROKER_LINECAP_ROUND; + break; + default: + ftCap = SW_FT_STROKER_LINECAP_BUTT; + break; + } + switch (join) { + case JoinStyle::Bevel: + ftJoin = SW_FT_STROKER_LINEJOIN_BEVEL; + break; + case JoinStyle::Round: + ftJoin = SW_FT_STROKER_LINEJOIN_ROUND; + break; + default: + ftJoin = SW_FT_STROKER_LINEJOIN_MITER_FIXED; + break; + } +} + +void FTOutline::moveTo(const VPointF &pt) +{ + assert(ft.n_points <= SHRT_MAX - 1); + + ft.points[ft.n_points].x = TO_FT_COORD(pt.x()); + ft.points[ft.n_points].y = TO_FT_COORD(pt.y()); + ft.tags[ft.n_points] = SW_FT_CURVE_TAG_ON; + if (ft.n_points) { + ft.contours[ft.n_contours] = ft.n_points - 1; + ft.n_contours++; + } + // mark the current contour as open + // will be updated if ther is a close tag at the end. + ft.contours_flag[ft.n_contours] = 1; + + ft.n_points++; +} + +void FTOutline::lineTo(const VPointF &pt) +{ + assert(ft.n_points <= SHRT_MAX - 1); + + ft.points[ft.n_points].x = TO_FT_COORD(pt.x()); + ft.points[ft.n_points].y = TO_FT_COORD(pt.y()); + ft.tags[ft.n_points] = SW_FT_CURVE_TAG_ON; + ft.n_points++; +} + +void FTOutline::cubicTo(const VPointF &cp1, const VPointF &cp2, + const VPointF ep) +{ + assert(ft.n_points <= SHRT_MAX - 3); + + ft.points[ft.n_points].x = TO_FT_COORD(cp1.x()); + ft.points[ft.n_points].y = TO_FT_COORD(cp1.y()); + ft.tags[ft.n_points] = SW_FT_CURVE_TAG_CUBIC; + ft.n_points++; + + ft.points[ft.n_points].x = TO_FT_COORD(cp2.x()); + ft.points[ft.n_points].y = TO_FT_COORD(cp2.y()); + ft.tags[ft.n_points] = SW_FT_CURVE_TAG_CUBIC; + ft.n_points++; + + ft.points[ft.n_points].x = TO_FT_COORD(ep.x()); + ft.points[ft.n_points].y = TO_FT_COORD(ep.y()); + ft.tags[ft.n_points] = SW_FT_CURVE_TAG_ON; + ft.n_points++; +} +void FTOutline::close() +{ + assert(ft.n_points <= SHRT_MAX - 1); + + // mark the contour as a close path. + ft.contours_flag[ft.n_contours] = 0; + + int index; + if (ft.n_contours) { + index = ft.contours[ft.n_contours - 1] + 1; + } else { + index = 0; + } + + // make sure atleast 1 point exists in the segment. + if (ft.n_points == index) { + closed = false; + return; + } + + ft.points[ft.n_points].x = ft.points[index].x; + ft.points[ft.n_points].y = ft.points[index].y; + ft.tags[ft.n_points] = SW_FT_CURVE_TAG_ON; + ft.n_points++; +} + +void FTOutline::end() +{ + assert(ft.n_contours <= SHRT_MAX - 1); + + if (ft.n_points) { + ft.contours[ft.n_contours] = ft.n_points - 1; + ft.n_contours++; + } +} + +static void rleGenerationCb(int count, const SW_FT_Span *spans, void *user) +{ + VRle *rle = static_cast(user); + auto *rleSpan = reinterpret_cast(spans); + rle->addSpan(rleSpan, count); +} + +static void bboxCb(int x, int y, int w, int h, void *user) +{ + VRle *rle = static_cast(user); + rle->setBoundingRect({x, y, w, h}); +} + +class SharedRle { +public: + SharedRle() = default; + VRle &unsafe() { return _rle; } + void notify() + { + { + std::lock_guard lock(_mutex); + _ready = true; + } + _cv.notify_one(); + } + void wait() + { + if (!_pending) return; + + { + std::unique_lock lock(_mutex); + while (!_ready) _cv.wait(lock); + } + + _pending = false; + } + + VRle &get() + { + wait(); + return _rle; + } + + void reset() + { + wait(); + _ready = false; + _pending = true; + } + +private: + VRle _rle; + std::mutex _mutex; + std::condition_variable _cv; + bool _ready{true}; + bool _pending{false}; +}; + +struct VRleTask { + SharedRle mRle; + VPath mPath; + float mStrokeWidth; + float mMiterLimit; + VRect mClip; + FillRule mFillRule; + CapStyle mCap; + JoinStyle mJoin; + bool mGenerateStroke; + + VRle &rle() { return mRle.get(); } + + void update(VPath path, FillRule fillRule, const VRect &clip) + { + mRle.reset(); + mPath = std::move(path); + mFillRule = fillRule; + mClip = clip; + mGenerateStroke = false; + } + + void update(VPath path, CapStyle cap, JoinStyle join, float width, + float miterLimit, const VRect &clip) + { + mRle.reset(); + mPath = std::move(path); + mCap = cap; + mJoin = join; + mStrokeWidth = width; + mMiterLimit = miterLimit; + mClip = clip; + mGenerateStroke = true; + } + void render(FTOutline &outRef) + { + SW_FT_Raster_Params params; + + mRle.unsafe().reset(); + + params.flags = SW_FT_RASTER_FLAG_DIRECT | SW_FT_RASTER_FLAG_AA; + params.gray_spans = &rleGenerationCb; + params.bbox_cb = &bboxCb; + params.user = &mRle.unsafe(); + params.source = &outRef.ft; + + if (!mClip.empty()) { + params.flags |= SW_FT_RASTER_FLAG_CLIP; + + params.clip_box.xMin = mClip.left(); + params.clip_box.yMin = mClip.top(); + params.clip_box.xMax = mClip.right(); + params.clip_box.yMax = mClip.bottom(); + } + // compute rle + sw_ft_grays_raster.raster_render(nullptr, ¶ms); + } + + void operator()(FTOutline &outRef, SW_FT_Stroker &stroker) + { + if (mPath.points().size() > SHRT_MAX || + mPath.points().size() + mPath.segments() > SHRT_MAX) { + return; + } + + if (mGenerateStroke) { // Stroke Task + outRef.convert(mPath); + outRef.convert(mCap, mJoin, mStrokeWidth, mMiterLimit); + + uint points, contors; + + SW_FT_Stroker_Set(stroker, outRef.ftWidth, outRef.ftCap, + outRef.ftJoin, outRef.ftMiterLimit); + SW_FT_Stroker_ParseOutline(stroker, &outRef.ft); + SW_FT_Stroker_GetCounts(stroker, &points, &contors); + + outRef.grow(points, contors); + + SW_FT_Stroker_Export(stroker, &outRef.ft); + + } else { // Fill Task + outRef.convert(mPath); + int fillRuleFlag = SW_FT_OUTLINE_NONE; + switch (mFillRule) { + case FillRule::EvenOdd: + fillRuleFlag = SW_FT_OUTLINE_EVEN_ODD_FILL; + break; + default: + fillRuleFlag = SW_FT_OUTLINE_NONE; + break; + } + outRef.ft.flags = fillRuleFlag; + } + + render(outRef); + + mPath = VPath(); + + mRle.notify(); + } +}; + +using VTask = std::shared_ptr; + +#ifdef LOTTIE_THREAD_SUPPORT + +#include +#include "vtaskqueue.h" + +class RleTaskScheduler { + const unsigned _count{std::thread::hardware_concurrency()}; + std::vector _threads; + std::vector> _q{_count}; + std::atomic _index{0}; + + void run(unsigned i) + { + /* + * initalize per thread objects. + */ + FTOutline outlineRef; + SW_FT_Stroker stroker; + SW_FT_Stroker_New(&stroker); + + // Task Loop + VTask task; + while (true) { + bool success = false; + + for (unsigned n = 0; n != _count * 2; ++n) { + if (_q[(i + n) % _count].try_pop(task)) { + success = true; + break; + } + } + + if (!success && !_q[i].pop(task)) break; + + (*task)(outlineRef, stroker); + } + + // cleanup + SW_FT_Stroker_Done(stroker); + } + + RleTaskScheduler() + { + for (unsigned n = 0; n != _count; ++n) { + _threads.emplace_back([&, n] { run(n); }); + } + } + +public: + static RleTaskScheduler &instance() + { + static RleTaskScheduler singleton; + return singleton; + } + + ~RleTaskScheduler() + { + for (auto &e : _q) e.done(); + + for (auto &e : _threads) e.join(); + } + + void process(VTask task) + { + auto i = _index++; + + for (unsigned n = 0; n != _count; ++n) { + if (_q[(i + n) % _count].try_push(std::move(task))) return; + } + + if (_count > 0) { + _q[i % _count].push(std::move(task)); + } + } +}; + +#else + +class RleTaskScheduler { +public: + FTOutline outlineRef{}; + SW_FT_Stroker stroker; + +public: + static RleTaskScheduler &instance() + { + static RleTaskScheduler singleton; + return singleton; + } + + RleTaskScheduler() { SW_FT_Stroker_New(&stroker); } + + ~RleTaskScheduler() { SW_FT_Stroker_Done(stroker); } + + void process(VTask task) { (*task)(outlineRef, stroker); } +}; +#endif + +struct VRasterizer::VRasterizerImpl { + VRleTask mTask; + + VRle & rle() { return mTask.rle(); } + VRleTask &task() { return mTask; } +}; + +VRle VRasterizer::rle() +{ + if (!d) return VRle(); + return d->rle(); +} + +void VRasterizer::init() +{ + if (!d) d = std::make_shared(); +} + +void VRasterizer::updateRequest() +{ + VTask taskObj = VTask(d, &d->task()); + RleTaskScheduler::instance().process(std::move(taskObj)); +} + +void VRasterizer::rasterize(VPath path, FillRule fillRule, const VRect &clip) +{ + init(); + if (path.empty()) { + d->rle().reset(); + return; + } + d->task().update(std::move(path), fillRule, clip); + updateRequest(); +} + +void VRasterizer::rasterize(VPath path, CapStyle cap, JoinStyle join, + float width, float miterLimit, const VRect &clip) +{ + init(); + if (path.empty() || vIsZero(width)) { + d->rle().reset(); + return; + } + d->task().update(std::move(path), cap, join, width, miterLimit, clip); + updateRequest(); +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vraster.h b/external/rlottie/src/vector/vraster.h new file mode 100644 index 000000000..fec84135b --- /dev/null +++ b/external/rlottie/src/vector/vraster.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VRASTER_H +#define VRASTER_H +#include +#include "vglobal.h" +#include "vrect.h" + +V_BEGIN_NAMESPACE + +class VPath; +class VRle; + +class VRasterizer +{ +public: + void rasterize(VPath path, FillRule fillRule = FillRule::Winding, const VRect &clip = VRect()); + void rasterize(VPath path, CapStyle cap, JoinStyle join, float width, + float miterLimit, const VRect &clip = VRect()); + VRle rle(); +private: + struct VRasterizerImpl; + void init(); + void updateRequest(); + std::shared_ptr d{nullptr}; +}; + +V_END_NAMESPACE + +#endif // VRASTER_H diff --git a/external/rlottie/src/vector/vrect.cpp b/external/rlottie/src/vector/vrect.cpp new file mode 100644 index 000000000..ff219c67d --- /dev/null +++ b/external/rlottie/src/vector/vrect.cpp @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vrect.h" +#include + +VRect VRect::operator&(const VRect &r) const +{ + if (empty()) return VRect(); + + int l1 = x1; + int r1 = x1; + if (x2 - x1 + 1 < 0) + l1 = x2; + else + r1 = x2; + + int l2 = r.x1; + int r2 = r.x1; + if (r.x2 - r.x1 + 1 < 0) + l2 = r.x2; + else + r2 = r.x2; + + if (l1 > r2 || l2 > r1) return VRect(); + + int t1 = y1; + int b1 = y1; + if (y2 - y1 + 1 < 0) + t1 = y2; + else + b1 = y2; + + int t2 = r.y1; + int b2 = r.y1; + if (r.y2 - r.y1 + 1 < 0) + t2 = r.y2; + else + b2 = r.y2; + + if (t1 > b2 || t2 > b1) return VRect(); + + VRect tmp; + tmp.x1 = std::max(l1, l2); + tmp.x2 = std::min(r1, r2); + tmp.y1 = std::max(t1, t2); + tmp.y2 = std::min(b1, b2); + return tmp; +} diff --git a/external/rlottie/src/vector/vrect.h b/external/rlottie/src/vector/vrect.h new file mode 100644 index 000000000..f1c673e1a --- /dev/null +++ b/external/rlottie/src/vector/vrect.h @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VRECT_H +#define VRECT_H +#include "vglobal.h" +#include "vpoint.h" + +V_BEGIN_NAMESPACE +class VRectF; + +class VRect { +public: + VRect() = default; + VRect(int x, int y, int w, int h):x1(x),y1(y),x2(x+w),y2(y+h){} + explicit VRect(VPoint pt, VSize sz):VRect(pt.x(), pt.y(), sz.width(), sz.height()){} + operator VRectF() const; + V_CONSTEXPR bool empty() const {return x1 >= x2 || y1 >= y2;} + V_CONSTEXPR int left() const {return x1;} + V_CONSTEXPR int top() const {return y1;} + V_CONSTEXPR int right() const {return x2;} + V_CONSTEXPR int bottom() const {return y2;} + V_CONSTEXPR int width() const {return x2-x1;} + V_CONSTEXPR int height() const {return y2-y1;} + V_CONSTEXPR int x() const {return x1;} + V_CONSTEXPR int y() const {return y1;} + VSize size() const {return {width(), height()};} + void setLeft(int l) { x1 = l; } + void setTop(int t) { y1 = t; } + void setRight(int r) { x2 = r; } + void setBottom(int b) { y2 = b; } + void setWidth(int w) { x2 = x1 + w; } + void setHeight(int h) { y2 = y1 + h; } + VRect translated(int dx, int dy) const; + void translate(int dx, int dy); + bool contains(const VRect &r, bool proper = false) const; + bool intersects(const VRect &r); + friend V_CONSTEXPR inline bool operator==(const VRect &, + const VRect &) noexcept; + friend V_CONSTEXPR inline bool operator!=(const VRect &, + const VRect &) noexcept; + friend VDebug & operator<<(VDebug &os, const VRect &o); + + VRect intersected(const VRect &r) const; + VRect operator&(const VRect &r) const; + +private: + int x1{0}; + int y1{0}; + int x2{0}; + int y2{0}; +}; + +inline VRect VRect::intersected(const VRect &r) const +{ + return *this & r; +} + +inline bool VRect::intersects(const VRect &r) +{ + return (right() > r.left() && left() < r.right() && bottom() > r.top() && + top() < r.bottom()); +} + +inline VDebug &operator<<(VDebug &os, const VRect &o) +{ + os << "{R " << o.x() << "," << o.y() << "," << o.width() << "," + << o.height() << "}"; + return os; +} +V_CONSTEXPR inline bool operator==(const VRect &r1, const VRect &r2) noexcept +{ + return r1.x1 == r2.x1 && r1.x2 == r2.x2 && r1.y1 == r2.y1 && r1.y2 == r2.y2; +} + +V_CONSTEXPR inline bool operator!=(const VRect &r1, const VRect &r2) noexcept +{ + return r1.x1 != r2.x1 || r1.x2 != r2.x2 || r1.y1 != r2.y1 || r1.y2 != r2.y2; +} + +inline VRect VRect::translated(int dx, int dy) const +{ + return {x1 + dx, y1 + dy, x2 - x1, y2 - y1}; +} + +inline void VRect::translate(int dx, int dy) +{ + x1 += dx; + y1 += dy; + x2 += dx; + y2 += dy; +} + +inline bool VRect::contains(const VRect &r, bool proper) const +{ + return proper ? + ((x1 < r.x1) && (x2 > r.x2) && (y1 < r.y1) && (y2 > r.y2)) : + ((x1 <= r.x1) && (x2 >= r.x2) && (y1 <= r.y1) && (y2 >= r.y2)); +} + +class VRectF { +public: + VRectF() = default; + + VRectF(double x, double y, double w, double h): + x1(float(x)),y1(float(y)), + x2(float(x+w)),y2(float(y+h)){} + operator VRect() const { + return {int(left()), int(right()), int(width()), int(height())}; + } + + V_CONSTEXPR bool empty() const {return x1 >= x2 || y1 >= y2;} + V_CONSTEXPR float left() const {return x1;} + V_CONSTEXPR float top() const {return y1;} + V_CONSTEXPR float right() const {return x2;} + V_CONSTEXPR float bottom() const {return y2;} + V_CONSTEXPR float width() const {return x2-x1;} + V_CONSTEXPR float height() const {return y2-y1;} + V_CONSTEXPR float x() const {return x1;} + V_CONSTEXPR float y() const {return y1;} + V_CONSTEXPR inline VPointF center() const + { + return {x1 + (x2 - x1) / 2.f, y1 + (y2 - y1) / 2.f}; + } + void setLeft(float l) { x1 = l; } + void setTop(float t) { y1 = t; } + void setRight(float r) { x2 = r; } + void setBottom(float b) { y2 = b; } + void setWidth(float w) { x2 = x1 + w; } + void setHeight(float h) { y2 = y1 + h; } + void translate(float dx, float dy) + { + x1 += dx; + y1 += dy; + x2 += dx; + y2 += dy; + } + +private: + float x1{0}; + float y1{0}; + float x2{0}; + float y2{0}; +}; + +inline VRect::operator VRectF() const +{ + return {double(left()), double(right()), double(width()), double(height())}; +} + +V_END_NAMESPACE + +#endif // VRECT_H diff --git a/external/rlottie/src/vector/vrle.cpp b/external/rlottie/src/vector/vrle.cpp new file mode 100644 index 000000000..c7a520f59 --- /dev/null +++ b/external/rlottie/src/vector/vrle.cpp @@ -0,0 +1,747 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in + all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "vrle.h" +#include +#include +#include +#include +#include +#include +#include "vdebug.h" +#include "vglobal.h" + +V_BEGIN_NAMESPACE + +using Result = std::array; +using rle_view = VRle::View; +static size_t _opGeneric(rle_view &a, rle_view &b, Result &result, + VRle::Data::Op op); +static size_t _opIntersect(const VRect &, rle_view &, Result &); +static size_t _opIntersect(rle_view &, rle_view &, Result &); + +static inline uchar divBy255(int x) +{ + return (x + (x >> 8) + 0x80) >> 8; +} + +inline static void copy(const VRle::Span *span, size_t count, + std::vector &v) +{ + // make sure enough memory available + if (v.capacity() < v.size() + count) v.reserve(v.size() + count); + std::copy(span, span + count, back_inserter(v)); +} + +void VRle::Data::addSpan(const VRle::Span *span, size_t count) +{ + copy(span, count, mSpans); + mBboxDirty = true; +} + +VRect VRle::Data::bbox() const +{ + updateBbox(); + return mBbox; +} + +void VRle::Data::setBbox(const VRect &bbox) const +{ + mBboxDirty = false; + mBbox = bbox; +} + +void VRle::Data::reset() +{ + mSpans.clear(); + mBbox = VRect(); + mOffset = VPoint(); + mBboxDirty = false; +} + +void VRle::Data::clone(const VRle::Data &o) +{ + *this = o; +} + +void VRle::Data::translate(const VPoint &p) +{ + // take care of last offset if applied + mOffset = p - mOffset; + int x = mOffset.x(); + int y = mOffset.y(); + for (auto &i : mSpans) { + i.x = i.x + x; + i.y = i.y + y; + } + updateBbox(); + mBbox.translate(mOffset.x(), mOffset.y()); +} + +void VRle::Data::addRect(const VRect &rect) +{ + int x = rect.left(); + int y = rect.top(); + int width = rect.width(); + int height = rect.height(); + + mSpans.reserve(size_t(height)); + + VRle::Span span; + for (int i = 0; i < height; i++) { + span.x = x; + span.y = y + i; + span.len = width; + span.coverage = 255; + mSpans.push_back(span); + } + mBbox = rect; +} + +void VRle::Data::updateBbox() const +{ + if (!mBboxDirty) return; + + mBboxDirty = false; + + int l = std::numeric_limits::max(); + const VRle::Span *span = mSpans.data(); + + mBbox = VRect(); + size_t sz = mSpans.size(); + if (sz) { + int t = span[0].y; + int b = span[sz - 1].y; + int r = 0; + for (size_t i = 0; i < sz; i++) { + if (span[i].x < l) l = span[i].x; + if (span[i].x + span[i].len > r) r = span[i].x + span[i].len; + } + mBbox = VRect(l, t, r - l, b - t + 1); + } +} + +void VRle::Data::operator*=(uchar alpha) +{ + for (auto &i : mSpans) { + i.coverage = divBy255(i.coverage * alpha); + } +} + +void VRle::Data::opIntersect(const VRect &r, VRle::VRleSpanCb cb, + void *userData) const +{ + if (empty()) return; + + if (r.contains(bbox())) { + cb(mSpans.size(), mSpans.data(), userData); + return; + } + + auto obj = view(); + Result result; + // run till all the spans are processed + while (obj.size()) { + auto count = _opIntersect(r, obj, result); + if (count) cb(count, result.data(), userData); + } +} + +// res = a - b; +void VRle::Data::opSubstract(const VRle::Data &aObj, const VRle::Data &bObj) +{ + // if two rle are disjoint + if (!aObj.bbox().intersects(bObj.bbox())) { + mSpans = aObj.mSpans; + } else { + auto a = aObj.view(); + auto b = bObj.view(); + + auto aPtr = a.data(); + auto aEnd = a.data() + a.size(); + auto bPtr = b.data(); + auto bEnd = b.data() + b.size(); + + // 1. forward a till it intersects with b + while ((aPtr != aEnd) && (aPtr->y < bPtr->y)) aPtr++; + auto count = aPtr - a.data(); + if (count) copy(a.data(), count, mSpans); + + // 2. forward b till it intersects with a + if (aPtr != aEnd) + while ((bPtr != bEnd) && (bPtr->y < aPtr->y)) bPtr++; + + // update a and b object + a = {aPtr, size_t(aEnd - aPtr)}; + b = {bPtr, size_t(bEnd - bPtr)}; + + // 3. calculate the intersect region + Result result; + + // run till all the spans are processed + while (a.size() && b.size()) { + auto count = _opGeneric(a, b, result, Op::Substract); + if (count) copy(result.data(), count, mSpans); + } + + // 4. copy the rest of a + if (a.size()) copy(a.data(), a.size(), mSpans); + } + + mBboxDirty = true; +} + +void VRle::Data::opGeneric(const VRle::Data &aObj, const VRle::Data &bObj, + Op op) +{ + // This routine assumes, obj1(span_y) < obj2(span_y). + + auto a = aObj.view(); + auto b = bObj.view(); + + // reserve some space for the result vector. + mSpans.reserve(a.size() + b.size()); + + // if two rle are disjoint + if (!aObj.bbox().intersects(aObj.bbox())) { + if (a.data()[0].y < b.data()[0].y) { + copy(a.data(), a.size(), mSpans); + copy(b.data(), b.size(), mSpans); + } else { + copy(b.data(), b.size(), mSpans); + copy(a.data(), a.size(), mSpans); + } + } else { + auto aPtr = a.data(); + auto aEnd = a.data() + a.size(); + auto bPtr = b.data(); + auto bEnd = b.data() + b.size(); + + // 1. forward a till it intersects with b + while ((aPtr != aEnd) && (aPtr->y < bPtr->y)) aPtr++; + + auto count = aPtr - a.data(); + if (count) copy(a.data(), count, mSpans); + + // 2. forward b till it intersects with a + if (aPtr != aEnd) + while ((bPtr != bEnd) && (bPtr->y < aPtr->y)) bPtr++; + + count = bPtr - b.data(); + if (count) copy(b.data(), count, mSpans); + + // update a and b object + a = {aPtr, size_t(aEnd - aPtr)}; + b = {bPtr, size_t(bEnd - bPtr)}; + + // 3. calculate the intersect region + Result result; + + // run till all the spans are processed + while (a.size() && b.size()) { + auto count = _opGeneric(a, b, result, op); + if (count) copy(result.data(), count, mSpans); + } + // 3. copy the rest + if (b.size()) copy(b.data(), b.size(), mSpans); + if (a.size()) copy(a.data(), a.size(), mSpans); + } + + mBboxDirty = true; +} + +static inline V_ALWAYS_INLINE void _opIntersectPrepare(VRle::View &a, + VRle::View &b) +{ + auto aPtr = a.data(); + auto aEnd = a.data() + a.size(); + auto bPtr = b.data(); + auto bEnd = b.data() + b.size(); + + // 1. advance a till it intersects with b + while ((aPtr != aEnd) && (aPtr->y < bPtr->y)) aPtr++; + + // 2. advance b till it intersects with a + if (aPtr != aEnd) + while ((bPtr != bEnd) && (bPtr->y < aPtr->y)) bPtr++; + + // update a and b object + a = {aPtr, size_t(aEnd - aPtr)}; + b = {bPtr, size_t(bEnd - bPtr)}; +} + +void VRle::Data::opIntersect(VRle::View a, VRle::View b) +{ + _opIntersectPrepare(a, b); + Result result; + while (a.size()) { + auto count = _opIntersect(a, b, result); + if (count) copy(result.data(), count, mSpans); + } + + updateBbox(); +} + +static void _opIntersect(rle_view a, rle_view b, VRle::VRleSpanCb cb, + void *userData) +{ + if (!cb) return; + + _opIntersectPrepare(a, b); + Result result; + while (a.size()) { + auto count = _opIntersect(a, b, result); + if (count) cb(count, result.data(), userData); + } +} + +/* + * This function will clip a rle list with another rle object + * tmp_clip : The rle list that will be use to clip the rle + * tmp_obj : holds the list of spans that has to be clipped + * result : will hold the result after the processing + * NOTE: if the algorithm runs out of the result buffer list + * it will stop and update the tmp_obj with the span list + * that are yet to be processed as well as the tpm_clip object + * with the unprocessed clip spans. + */ + +static size_t _opIntersect(rle_view &obj, rle_view &clip, Result &result) +{ + auto out = result.data(); + auto available = result.max_size(); + auto spans = obj.data(); + auto end = obj.data() + obj.size(); + auto clipSpans = clip.data(); + auto clipEnd = clip.data() + clip.size(); + int sx1, sx2, cx1, cx2, x, len; + + while (available && spans < end) { + if (clipSpans >= clipEnd) { + spans = end; + break; + } + if (clipSpans->y > spans->y) { + ++spans; + continue; + } + if (spans->y != clipSpans->y) { + ++clipSpans; + continue; + } + // assert(spans->y == (clipSpans->y + clip_offset_y)); + sx1 = spans->x; + sx2 = sx1 + spans->len; + cx1 = clipSpans->x; + cx2 = cx1 + clipSpans->len; + + if (cx1 < sx1 && cx2 < sx1) { + ++clipSpans; + continue; + } else if (sx1 < cx1 && sx2 < cx1) { + ++spans; + continue; + } + x = std::max(sx1, cx1); + len = std::min(sx2, cx2) - x; + if (len) { + out->x = std::max(sx1, cx1); + out->len = (std::min(sx2, cx2) - out->x); + out->y = spans->y; + out->coverage = divBy255(spans->coverage * clipSpans->coverage); + ++out; + --available; + } + if (sx2 < cx2) { + ++spans; + } else { + ++clipSpans; + } + } + + // update the obj view yet to be processed + obj = {spans, size_t(end - spans)}; + + // update the clip view yet to be processed + clip = {clipSpans, size_t(clipEnd - clipSpans)}; + + return result.max_size() - available; +} + +/* + * This function will clip a rle list with a given rect + * clip : The clip rect that will be use to clip the rle + * tmp_obj : holds the list of spans that has to be clipped + * result : will hold the result after the processing + * NOTE: if the algorithm runs out of the result buffer list + * it will stop and update the tmp_obj with the span list + * that are yet to be processed + */ +static size_t _opIntersect(const VRect &clip, rle_view &obj, Result &result) +{ + auto out = result.data(); + auto available = result.max_size(); + auto ptr = obj.data(); + auto end = obj.data() + obj.size(); + + const auto minx = clip.left(); + const auto miny = clip.top(); + const auto maxx = clip.right() - 1; + const auto maxy = clip.bottom() - 1; + + while (available && ptr < end) { + const auto &span = *ptr; + if (span.y > maxy) { + ptr = end; // update spans so that we can breakout + break; + } + if (span.y < miny || span.x > maxx || span.x + span.len <= minx) { + ++ptr; + continue; + } + if (span.x < minx) { + out->len = std::min(span.len - (minx - span.x), maxx - minx + 1); + out->x = minx; + } else { + out->x = span.x; + out->len = std::min(span.len, ushort(maxx - span.x + 1)); + } + if (out->len != 0) { + out->y = span.y; + out->coverage = span.coverage; + ++out; + --available; + } + ++ptr; + } + + // update the span list that yet to be processed + obj = {ptr, size_t(end - ptr)}; + + return result.max_size() - available; +} + +static void blitXor(VRle::Span *spans, int count, uchar *buffer, int offsetX) +{ + while (count--) { + int x = spans->x + offsetX; + int l = spans->len; + uchar *ptr = buffer + x; + while (l--) { + int da = *ptr; + *ptr = divBy255((255 - spans->coverage) * (da) + + spans->coverage * (255 - da)); + ptr++; + } + spans++; + } +} + +static void blitDestinationOut(VRle::Span *spans, int count, uchar *buffer, + int offsetX) +{ + while (count--) { + int x = spans->x + offsetX; + int l = spans->len; + uchar *ptr = buffer + x; + while (l--) { + *ptr = divBy255((255 - spans->coverage) * (*ptr)); + ptr++; + } + spans++; + } +} + +static void blitSrcOver(VRle::Span *spans, int count, uchar *buffer, + int offsetX) +{ + while (count--) { + int x = spans->x + offsetX; + int l = spans->len; + uchar *ptr = buffer + x; + while (l--) { + *ptr = spans->coverage + divBy255((255 - spans->coverage) * (*ptr)); + ptr++; + } + spans++; + } +} + +void blitSrc(VRle::Span *spans, int count, uchar *buffer, int offsetX) +{ + while (count--) { + int x = spans->x + offsetX; + int l = spans->len; + uchar *ptr = buffer + x; + while (l--) { + *ptr = std::max(spans->coverage, *ptr); + ptr++; + } + spans++; + } +} + +size_t bufferToRle(uchar *buffer, int size, int offsetX, int y, VRle::Span *out) +{ + size_t count = 0; + uchar value = buffer[0]; + int curIndex = 0; + + // size = offsetX < 0 ? size + offsetX : size; + for (int i = 0; i < size; i++) { + uchar curValue = buffer[0]; + if (value != curValue) { + if (value) { + out->y = y; + out->x = offsetX + curIndex; + out->len = i - curIndex; + out->coverage = value; + out++; + count++; + } + curIndex = i; + value = curValue; + } + buffer++; + } + if (value) { + out->y = y; + out->x = offsetX + curIndex; + out->len = size - curIndex; + out->coverage = value; + count++; + } + return count; +} + +struct SpanMerger { + explicit SpanMerger(VRle::Data::Op op) + { + switch (op) { + case VRle::Data::Op::Add: + _blitter = &blitSrcOver; + break; + case VRle::Data::Op::Xor: + _blitter = &blitXor; + break; + case VRle::Data::Op::Substract: + _blitter = &blitDestinationOut; + break; + } + } + using blitter = void (*)(VRle::Span *, int, uchar *, int); + blitter _blitter; + std::array _result; + std::array _buffer; + VRle::Span * _aStart{nullptr}; + VRle::Span * _bStart{nullptr}; + + void revert(VRle::Span *&aPtr, VRle::Span *&bPtr) + { + aPtr = _aStart; + bPtr = _bStart; + } + VRle::Span *data() { return _result.data(); } + size_t merge(VRle::Span *&aPtr, const VRle::Span *aEnd, VRle::Span *&bPtr, + const VRle::Span *bEnd); +}; + +size_t SpanMerger::merge(VRle::Span *&aPtr, const VRle::Span *aEnd, + VRle::Span *&bPtr, const VRle::Span *bEnd) +{ + assert(aPtr->y == bPtr->y); + + _aStart = aPtr; + _bStart = bPtr; + int lb = std::min(aPtr->x, bPtr->x); + int y = aPtr->y; + + while (aPtr < aEnd && aPtr->y == y) aPtr++; + while (bPtr < bEnd && bPtr->y == y) bPtr++; + + int ub = std::max((aPtr - 1)->x + (aPtr - 1)->len, + (bPtr - 1)->x + (bPtr - 1)->len); + int length = (lb < 0) ? ub + lb : ub - lb; + + if (length <= 0 || size_t(length) >= _buffer.max_size()) { + // can't handle merge . skip + return 0; + } + + // clear buffer + memset(_buffer.data(), 0, length); + + // blit a to buffer + blitSrc(_aStart, aPtr - _aStart, _buffer.data(), -lb); + + // blit b to buffer + _blitter(_bStart, bPtr - _bStart, _buffer.data(), -lb); + + // convert buffer to span + return bufferToRle(_buffer.data(), length, lb, y, _result.data()); +} + +static size_t _opGeneric(rle_view &a, rle_view &b, Result &result, + VRle::Data::Op op) +{ + SpanMerger merger{op}; + + auto out = result.data(); + size_t available = result.max_size(); + auto aPtr = a.data(); + auto aEnd = a.data() + a.size(); + auto bPtr = b.data(); + auto bEnd = b.data() + b.size(); + + // only logic change for substract operation. + const bool keep = op != (VRle::Data::Op::Substract); + + while (available && aPtr < aEnd && bPtr < bEnd) { + if (aPtr->y < bPtr->y) { + *out++ = *aPtr++; + available--; + } else if (bPtr->y < aPtr->y) { + if (keep) { + *out++ = *bPtr; + available--; + } + bPtr++; + } else { // same y + auto count = merger.merge(aPtr, aEnd, bPtr, bEnd); + if (available >= count) { + if (count) { + memcpy(out, merger.data(), count * sizeof(VRle::Span)); + out += count; + available -= count; + } + } else { + // not enough space try next time. + merger.revert(aPtr, bPtr); + break; + } + } + } + // update the span list that yet to be processed + a = {aPtr, size_t(aEnd - aPtr)}; + b = {bPtr, size_t(bEnd - bPtr)}; + + return result.max_size() - available; +} + +/* + * this api makes use of thread_local temporary + * buffer to avoid creating intermediate temporary rle buffer + * the scratch buffer object will grow its size on demand + * so that future call won't need any more memory allocation. + * this function is thread safe as it uses thread_local variable + * which is unique per thread. + */ +static vthread_local VRle::Data Scratch_Object; + +VRle VRle::opGeneric(const VRle &o, Data::Op op) const +{ + if (empty()) return o; + if (o.empty()) return *this; + + Scratch_Object.reset(); + Scratch_Object.opGeneric(d.read(), o.d.read(), op); + + VRle result; + result.d.write() = Scratch_Object; + + return result; +} + +VRle VRle::operator-(const VRle &o) const +{ + if (empty()) return {}; + if (o.empty()) return *this; + + Scratch_Object.reset(); + Scratch_Object.opSubstract(d.read(), o.d.read()); + + VRle result; + result.d.write() = Scratch_Object; + + return result; +} + +VRle VRle::operator&(const VRle &o) const +{ + if (empty() || o.empty()) return {}; + + Scratch_Object.reset(); + Scratch_Object.opIntersect(d.read().view(), o.d.read().view()); + + VRle result; + result.d.write() = Scratch_Object; + + return result; +} + +void VRle::operator&=(const VRle &o) +{ + if (empty()) return; + if (o.empty()) { + reset(); + return; + } + Scratch_Object.reset(); + Scratch_Object.opIntersect(d.read().view(), o.d.read().view()); + d.write() = Scratch_Object; +} + +VRle operator-(const VRect &rect, const VRle &o) +{ + if (rect.empty()) return {}; + + Scratch_Object.reset(); + Scratch_Object.addRect(rect); + + VRle result; + result.d.write().opSubstract(Scratch_Object, o.d.read()); + + return result; +} + +VRle operator&(const VRect &rect, const VRle &o) +{ + if (rect.empty() || o.empty()) return {}; + + Scratch_Object.reset(); + Scratch_Object.addRect(rect); + + VRle result; + result.d.write().opIntersect(Scratch_Object.view(), o.d.read().view()); + + return result; +} + +void VRle::intersect(const VRle &clip, VRleSpanCb cb, void *userData) const +{ + if (empty() || clip.empty()) return; + + _opIntersect(d.read().view(), clip.d.read().view(), cb, userData); +} + +V_END_NAMESPACE diff --git a/external/rlottie/src/vector/vrle.h b/external/rlottie/src/vector/vrle.h new file mode 100644 index 000000000..761e5d1bf --- /dev/null +++ b/external/rlottie/src/vector/vrle.h @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VRLE_H +#define VRLE_H + +#include +#include "vcowptr.h" +#include "vglobal.h" +#include "vpoint.h" +#include "vrect.h" + +V_BEGIN_NAMESPACE + +class VRle { +public: + struct Span { + short x{0}; + short y{0}; + ushort len{0}; + uchar coverage{0}; + }; + using VRleSpanCb = void (*)(size_t count, const VRle::Span *spans, + void *userData); + bool empty() const { return d->empty(); } + VRect boundingRect() const { return d->bbox(); } + void setBoundingRect(const VRect &bbox) { d->setBbox(bbox); } + void addSpan(const VRle::Span *span, size_t count) + { + d.write().addSpan(span, count); + } + + void reset() { d.write().reset(); } + void translate(const VPoint &p) { d.write().translate(p); } + + void operator*=(uchar alpha) { d.write() *= alpha; } + + void intersect(const VRect &r, VRleSpanCb cb, void *userData) const; + void intersect(const VRle &rle, VRleSpanCb cb, void *userData) const; + + void operator&=(const VRle &o); + VRle operator&(const VRle &o) const; + VRle operator-(const VRle &o) const; + VRle operator+(const VRle &o) const { return opGeneric(o, Data::Op::Add); } + VRle operator^(const VRle &o) const { return opGeneric(o, Data::Op::Xor); } + + friend VRle operator-(const VRect &rect, const VRle &o); + friend VRle operator&(const VRect &rect, const VRle &o); + + bool unique() const { return d.unique(); } + size_t refCount() const { return d.refCount(); } + void clone(const VRle &o) { d.write().clone(o.d.read()); } + +public: + struct View { + Span * _data; + size_t _size; + View(const Span *data, size_t sz) : _data((Span *)data), _size(sz) {} + Span * data() { return _data; } + size_t size() { return _size; } + }; + struct Data { + enum class Op { Add, Xor, Substract }; + VRle::View view() const + { + return VRle::View(mSpans.data(), mSpans.size()); + } + bool empty() const { return mSpans.empty(); } + void addSpan(const VRle::Span *span, size_t count); + void updateBbox() const; + VRect bbox() const; + void setBbox(const VRect &bbox) const; + void reset(); + void translate(const VPoint &p); + void operator*=(uchar alpha); + void opGeneric(const VRle::Data &, const VRle::Data &, Op code); + void opSubstract(const VRle::Data &, const VRle::Data &); + void opIntersect(VRle::View a, VRle::View b); + void opIntersect(const VRect &, VRle::VRleSpanCb, void *) const; + void addRect(const VRect &rect); + void clone(const VRle::Data &); + + std::vector mSpans; + VPoint mOffset; + mutable VRect mBbox; + mutable bool mBboxDirty = true; + }; + +private: + VRle opGeneric(const VRle &o, Data::Op opcode) const; + + vcow_ptr d; +}; + +inline void VRle::intersect(const VRect &r, VRleSpanCb cb, void *userData) const +{ + d->opIntersect(r, cb, userData); +} + +V_END_NAMESPACE + +#endif // VRLE_H diff --git a/external/rlottie/src/vector/vsharedptr.h b/external/rlottie/src/vector/vsharedptr.h new file mode 100644 index 000000000..fc0c419c9 --- /dev/null +++ b/external/rlottie/src/vector/vsharedptr.h @@ -0,0 +1,123 @@ +#ifndef VSHAREDPTR_H +#define VSHAREDPTR_H + +#include +#include +#include + +template +class vshared_ptr { + struct model { + Rc mRef{1}; + + model() = default; + + template + explicit model(Args&&... args) : mValue(std::forward(args)...){} + explicit model(const T& other) : mValue(other){} + + T mValue; + }; + model* mModel{nullptr}; + +public: + using element_type = T; + + vshared_ptr() = default; + + ~vshared_ptr() + { + unref(); + } + + template + explicit vshared_ptr(Args&&... args) : mModel(new model(std::forward(args)...)) + { + } + + vshared_ptr(const vshared_ptr& x) noexcept : vshared_ptr() + { + if (x.mModel) { + mModel = x.mModel; + ++mModel->mRef; + } + } + + vshared_ptr(vshared_ptr&& x) noexcept : vshared_ptr() + { + if (x.mModel) { + mModel = x.mModel; + x.mModel = nullptr; + } + } + + auto operator=(const vshared_ptr& x) noexcept -> vshared_ptr& + { + unref(); + mModel = x.mModel; + ref(); + return *this; + } + + auto operator=(vshared_ptr&& x) noexcept -> vshared_ptr& + { + unref(); + mModel = x.mModel; + x.mModel = nullptr; + return *this; + } + + operator bool() const noexcept { + return mModel != nullptr; + } + + auto operator*() const noexcept -> element_type& { return read(); } + + auto operator-> () const noexcept -> element_type* { return &read(); } + + std::size_t refCount() const noexcept + { + assert(mModel); + + return mModel->mRef; + } + + bool unique() const noexcept + { + assert(mModel); + + return mModel->mRef == 1; + } + +private: + + auto read() const noexcept -> element_type& + { + assert(mModel); + + return mModel->mValue; + } + + void ref() + { + if (mModel) ++mModel->mRef; + } + + void unref() + { + if (mModel && (--mModel->mRef == 0)) { + delete mModel; + mModel = nullptr; + } + } +}; + +// atomic ref counted pointer implementation. +template < typename T> +using arc_ptr = vshared_ptr>; + +// ref counter pointer implementation. +template < typename T> +using rc_ptr = vshared_ptr; + +#endif // VSHAREDPTR_H diff --git a/external/rlottie/src/vector/vstackallocator.h b/external/rlottie/src/vector/vstackallocator.h new file mode 100644 index 000000000..a305b7393 --- /dev/null +++ b/external/rlottie/src/vector/vstackallocator.h @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VSTACK_ALLOCATOR_H +#define VSTACK_ALLOCATOR_H + +#include +#include + +template +class arena +{ + alignas(alignment) char buf_[N]; + char* ptr_; + +public: + ~arena() {ptr_ = nullptr;} + arena() noexcept : ptr_(buf_) {} + arena(const arena&) = delete; + arena& operator=(const arena&) = delete; + + template char* allocate(std::size_t n); + void deallocate(char* p, std::size_t n) noexcept; + + static constexpr std::size_t size() noexcept {return N;} + std::size_t used() const noexcept {return static_cast(ptr_ - buf_);} + void reset() noexcept {ptr_ = buf_;} + +private: + static + std::size_t + align_up(std::size_t n) noexcept + {return (n + (alignment-1)) & ~(alignment-1);} + + bool + pointer_in_buffer(char* p) noexcept + {return buf_ <= p && p <= buf_ + N;} +}; + +template +template +char* +arena::allocate(std::size_t n) +{ + static_assert(ReqAlign <= alignment, "alignment is too small for this arena"); + assert(pointer_in_buffer(ptr_) && "stack_alloc has outlived arena"); + auto const aligned_n = align_up(n); + if (static_cast(buf_ + N - ptr_) >= aligned_n) + { + char* r = ptr_; + ptr_ += aligned_n; + return r; + } + + static_assert(alignment <= alignof(std::max_align_t), "you've chosen an " + "alignment that is larger than alignof(std::max_align_t), and " + "cannot be guaranteed by normal operator new"); + return static_cast(::operator new(n)); +} + +template +void +arena::deallocate(char* p, std::size_t n) noexcept +{ + assert(pointer_in_buffer(ptr_) && "stack_alloc has outlived arena"); + if (pointer_in_buffer(p)) + { + n = align_up(n); + if (p + n == ptr_) + ptr_ = p; + } + else + ::operator delete(p); +} + +template +class stack_alloc +{ +public: + using value_type = T; + static auto constexpr alignment = Align; + static auto constexpr size = N; + using arena_type = arena; + +private: + arena_type& a_; + +public: + stack_alloc(const stack_alloc&) = default; + stack_alloc& operator=(const stack_alloc&) = delete; + + stack_alloc(arena_type& a) noexcept : a_(a) + { + static_assert(size % alignment == 0, + "size N needs to be a multiple of alignment Align"); + } + template + stack_alloc(const stack_alloc& a) noexcept + : a_(a.a_) {} + + template struct rebind {using other = stack_alloc<_Up, N, alignment>;}; + + T* allocate(std::size_t n) + { + return reinterpret_cast(a_.template allocate(n*sizeof(T))); + } + void deallocate(T* p, std::size_t n) noexcept + { + a_.deallocate(reinterpret_cast(p), n*sizeof(T)); + } + + template + friend + bool + operator==(const stack_alloc& x, const stack_alloc& y) noexcept; + + template friend class stack_alloc; +}; + +template +inline +bool +operator==(const stack_alloc& x, const stack_alloc& y) noexcept +{ + return N == M && A1 == A2 && &x.a_ == &y.a_; +} + +template +inline +bool +operator!=(const stack_alloc& x, const stack_alloc& y) noexcept +{ + return !(x == y); +} + +#endif // VSTACK_ALLOCATOR_H diff --git a/external/rlottie/src/vector/vtaskqueue.h b/external/rlottie/src/vector/vtaskqueue.h new file mode 100644 index 000000000..e505c2f4c --- /dev/null +++ b/external/rlottie/src/vector/vtaskqueue.h @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef VTASKQUEUE_H +#define VTASKQUEUE_H + +#include + +template +class TaskQueue { + using lock_t = std::unique_lock; + std::deque _q; + bool _done{false}; + std::mutex _mutex; + std::condition_variable _ready; + +public: + bool try_pop(Task &task) + { + lock_t lock{_mutex, std::try_to_lock}; + if (!lock || _q.empty()) return false; + task = std::move(_q.front()); + _q.pop_front(); + return true; + } + + bool try_push(Task &&task) + { + { + lock_t lock{_mutex, std::try_to_lock}; + if (!lock) return false; + _q.push_back(std::move(task)); + } + _ready.notify_one(); + return true; + } + + void done() + { + { + lock_t lock{_mutex}; + _done = true; + } + _ready.notify_all(); + } + + bool pop(Task &task) + { + lock_t lock{_mutex}; + while (_q.empty() && !_done) _ready.wait(lock); + if (_q.empty()) return false; + task = std::move(_q.front()); + _q.pop_front(); + return true; + } + + void push(Task &&task) + { + { + lock_t lock{_mutex}; + _q.push_back(std::move(task)); + } + _ready.notify_one(); + } + +}; + +#endif // VTASKQUEUE_H diff --git a/external/rlottie/src/wasm/meson.build b/external/rlottie/src/wasm/meson.build new file mode 100644 index 000000000..9100bf0b9 --- /dev/null +++ b/external/rlottie/src/wasm/meson.build @@ -0,0 +1,5 @@ +source_file = files('rlottiewasm.cpp') + + rlottie_wasm_dep = declare_dependency(include_directories + : include_directories('.'), sources + : source_file) \ No newline at end of file diff --git a/external/rlottie/src/wasm/rlottiewasm.cpp b/external/rlottie/src/wasm/rlottiewasm.cpp new file mode 100644 index 000000000..4c759cc76 --- /dev/null +++ b/external/rlottie/src/wasm/rlottiewasm.cpp @@ -0,0 +1,109 @@ +#include +#include + +#include "rlottie.h" + +#include + +using namespace emscripten; + +const char *resource = "{\"v\":\"5.1.8\",\"fr\":60,\"ip\":3,\"op\":140,\"w\":500,\"h\":500,\"nm\":\"ANUB\",\"ddd\":0,\"assets\":[],\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":4,\"nm\":\"a\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-3.113,\"ix\":10},\"p\":{\"a\":0,\"k\":[327.214,315.758,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[-17,77,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[-100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":1,\"k\":[{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-20.2,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-13.001,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-3.399,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":2.999,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":13.4,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":20.599,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":32.599,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":42.2,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":49.999,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":58.999,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":66.2,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":78.2,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":87.8,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":94.999,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":104.599,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":111.8,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":123.8,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":133.999,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"t\":138.99921875}],\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"st\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.133333333333,0.109803921569,1],\"ix\":3},\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":15,\"ix\":5},\"lc\":2,\"lj\":1,\"ml\":4,\"nm\":\"Stroke 1\",\"mn\":\"ADBE Vector Graphic - Stroke\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-22,82],\"ix\":2},\"a\":{\"a\":0,\"k\":[-22,82],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":-3,\"op\":289,\"st\":-20.2,\"bm\":0},{\"ddd\":0,\"ind\":2,\"ty\":4,\"nm\":\"b\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-6,\"ix\":10},\"p\":{\"a\":0,\"k\":[221.537,318.968,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[-17,77,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":1,\"k\":[{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-2.4,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":3,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":14.401,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":21.6,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":31.2,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":43.2,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":50.401,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":60,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":67.2,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":76.799,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":88.799,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":96,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":105.6,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":112.799,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":122.401,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":132,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"t\":139.000390625}],\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"st\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.133333333333,0.109803921569,1],\"ix\":3},\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":15,\"ix\":5},\"lc\":2,\"lj\":1,\"ml\":4,\"nm\":\"Stroke 1\",\"mn\":\"ADBE Vector Graphic - Stroke\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-22,82],\"ix\":2},\"a\":{\"a\":0,\"k\":[-22,82],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":288,\"st\":-2.4,\"bm\":0},{\"ddd\":0,\"ind\":3,\"ty\":4,\"nm\":\"c\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-3.113,\"ix\":10},\"p\":{\"a\":0,\"k\":[361.652,319.398,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[-17,77,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[-100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":1,\"k\":[{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-14.4,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-7.201,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-0.002,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-3.791,-1.166],[-4.083,-10.915]],\"o\":[[3.791,1.166],[3.33,8.322]],\"v\":[[-17,75],[5.704,158.168]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":3,\"s\":[{\"i\":[[-3.791,-1.166],[-4.083,-10.915]],\"o\":[[3.791,1.166],[3.33,8.322]],\"v\":[[-17,75],[5.704,158.168]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":11.998,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":21.6,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":28.799,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":38.399,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":45.6,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":57.6,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":67.2,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":74.399,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":83.998,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":91.2,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":103.2,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":112.799,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":119.998,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":130,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[-3.791,-1.166],[-4.083,-10.915]],\"o\":[[3.791,1.166],[3.33,8.322]],\"v\":[[-17,75],[5.704,158.168]],\"c\":false}]},{\"t\":139.000390625}],\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"st\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.133333333333,0.109803921569,1],\"ix\":3},\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":15,\"ix\":5},\"lc\":2,\"lj\":1,\"ml\":4,\"nm\":\"Stroke 1\",\"mn\":\"ADBE Vector Graphic - Stroke\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-22,82],\"ix\":2},\"a\":{\"a\":0,\"k\":[-22,82],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":-20,\"op\":279,\"st\":-14.4,\"bm\":0},{\"ddd\":0,\"ind\":4,\"ty\":4,\"nm\":\"d\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-6,\"ix\":10},\"p\":{\"a\":0,\"k\":[254.302,326.574,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[-17,77,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":1,\"k\":[{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-28.8,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-21.601,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-11.999,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":-4.8,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":2.8,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":16.8,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":24.001,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":33.6,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":40.8,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":50.399,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":62.399,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":69.6,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":79.2,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":86.399,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":96.001,\"s\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}],\"e\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":106.001,\"s\":[{\"i\":[[-6.5,-2],[-4.5,-15.5]],\"o\":[[6.5,2],[3.209,11.054]],\"v\":[[-17,75],[18,154]],\"c\":false}],\"e\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":113.2,\"s\":[{\"i\":[[-4.161,-1.28],[50.642,-32.142]],\"o\":[[4.161,1.28],[-33.86,21.491]],\"v\":[[-17,75],[1.858,129.142]],\"c\":false}],\"e\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":121.001,\"s\":[{\"i\":[[0,0],[29.75,-14.5]],\"o\":[[0,0],[-29.75,14.5]],\"v\":[[-17,75],[-56.25,145.5]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":130.001,\"s\":[{\"i\":[[0,0],[-7.5,-34]],\"o\":[[0,0],[7.5,34]],\"v\":[[-17,75],[-61,161]],\"c\":false}],\"e\":[{\"i\":[[0,0],[-3.5,-4.5]],\"o\":[[0,0],[3.5,4.5]],\"v\":[[-17,75],[-11.5,164]],\"c\":false}]},{\"t\":139.00078125}],\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"st\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.133333333333,0.109803921569,1],\"ix\":3},\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":15,\"ix\":5},\"lc\":2,\"lj\":1,\"ml\":4,\"nm\":\"Stroke 1\",\"mn\":\"ADBE Vector Graphic - Stroke\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-22,82],\"ix\":2},\"a\":{\"a\":0,\"k\":[-22,82],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":266,\"st\":-28.8,\"bm\":0},{\"ddd\":0,\"ind\":5,\"ty\":4,\"nm\":\"b2\",\"parent\":7,\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.25],\"y\":[1]},\"o\":{\"x\":[0.75],\"y\":[0]},\"n\":[\"0p25_1_0p75_0\"],\"t\":0,\"s\":[-81],\"e\":[-97]},{\"i\":{\"x\":[0.25],\"y\":[1]},\"o\":{\"x\":[0.75],\"y\":[0]},\"n\":[\"0p25_1_0p75_0\"],\"t\":67.199,\"s\":[-97],\"e\":[-81]},{\"t\":136.80078125}],\"ix\":10},\"p\":{\"a\":0,\"k\":[-13.573,-61.514,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[-6,48,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[73.171,73.171,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"d\":1,\"ty\":\"el\",\"s\":{\"a\":0,\"k\":[82,82],\"ix\":2},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":3},\"nm\":\"Ellipse Path 1\",\"mn\":\"ADBE Vector Shape - Ellipse\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-6,48],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Ellipse 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":141.6,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":6,\"ty\":4,\"nm\":\"b1\",\"parent\":7,\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-87,\"ix\":10},\"p\":{\"a\":0,\"k\":[-27.177,43.546,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[-6,48,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":2,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"d\":1,\"ty\":\"el\",\"s\":{\"a\":0,\"k\":[82,82],\"ix\":2},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":3},\"nm\":\"Ellipse Path 1\",\"mn\":\"ADBE Vector Shape - Ellipse\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-6,48],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Ellipse 1\",\"np\":3,\"cix\":2,\"ix\":2,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":141.6,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":7,\"ty\":4,\"nm\":\"b\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":83,\"ix\":10},\"p\":{\"a\":1,\"k\":[{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":5,\"s\":[355.857,302.207,0],\"e\":[355.857,308.207,0],\"to\":[0,1,0],\"ti\":[0,0,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":16.801,\"s\":[355.857,308.207,0],\"e\":[355.857,302.207,0],\"to\":[0,0,0],\"ti\":[0,0,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":33.6,\"s\":[355.857,302.207,0],\"e\":[355.857,308.207,0],\"to\":[0,0,0],\"ti\":[0,0,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":50.4,\"s\":[355.857,308.207,0],\"e\":[355.857,302.207,0],\"to\":[0,0,0],\"ti\":[0,0,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":67.199,\"s\":[355.857,302.207,0],\"e\":[355.857,308.207,0],\"to\":[0,0,0],\"ti\":[0,0,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":84,\"s\":[355.857,308.207,0],\"e\":[355.857,302.207,0],\"to\":[0,0,0],\"ti\":[0,0,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":100.801,\"s\":[355.857,302.207,0],\"e\":[355.857,308.207,0],\"to\":[0,0,0],\"ti\":[0,0,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":120,\"s\":[355.857,308.207,0],\"e\":[355.857,302.207,0],\"to\":[0,0,0],\"ti\":[0,1,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":139,\"s\":[355.857,302.207,0],\"e\":[355.857,302.207,0],\"to\":[0,0,0],\"ti\":[0,0,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":180,\"s\":[355.857,302.207,0],\"e\":[355.857,308.207,0],\"to\":[0,1,0],\"ti\":[0,0,0]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":196.801,\"s\":[355.857,308.207,0],\"e\":[355.857,302.207,0],\"to\":[0,0,0],\"ti\":[0,1,0]},{\"t\":216}],\"ix\":2},\"a\":{\"a\":0,\"k\":[-5.706,-66.449,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[5.021,11.991],[1.75,-16.75],[3.593,-23.13],[3.492,-8.369],[0,23.5]],\"o\":[[-6.242,-14.906],[-1.081,10.349],[-2.222,14.305],[-14.312,34.299],[0,-55.082]],\"v\":[[14.5,-63],[-40.44,-62.693],[-44.148,-3.184],[-56.34,28.612],[12.218,41.438]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":141.6,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":8,\"ty\":4,\"nm\":\"ne\",\"parent\":6,\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":0,\"s\":[0],\"e\":[20]},{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":67.199,\"s\":[20],\"e\":[0]},{\"t\":134.400390625}],\"ix\":10},\"p\":{\"a\":0,\"k\":[-12,50,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[-12,50,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[0.59,12.987],[1.75,-16.75],[-1.434,-15.164],[4.955,22.972]],\"o\":[[-1,-22],[-1.75,16.75],[3.5,37],[-11,-51]],\"v\":[[3.5,-51.5],[-31.25,-48.25],[-45,45],[12,36.5]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":141.6,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":9,\"ty\":4,\"nm\":\"ta\",\"parent\":5,\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":0,\"s\":[7],\"e\":[75]},{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":22.801,\"s\":[75],\"e\":[7]},{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":45.6,\"s\":[7],\"e\":[75]},{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":68.4,\"s\":[75],\"e\":[7]},{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":91.199,\"s\":[7],\"e\":[75]},{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":114,\"s\":[75],\"e\":[7]},{\"t\":136.80078125}],\"ix\":10},\"p\":{\"a\":0,\"k\":[15.301,27.13,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[21.895,-104.814,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[136.667,136.667,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[-4.827,-5.636],[1.374,-48.171],[-2.647,2.438]],\"o\":[[33.061,38.596],[-0.068,2.375],[34.628,-76.569]],\"v\":[[-18.205,-190.23],[15.659,-106.249],[25.25,-102.254]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":141.6,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":10,\"ty\":4,\"nm\":\"el\",\"parent\":11,\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":0,\"s\":[-17],\"e\":[41]},{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":62.4,\"s\":[41],\"e\":[-17]},{\"t\":129.599609375}],\"ix\":10},\"p\":{\"a\":0,\"k\":[-90.831,16.442,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[16.5,-109.52,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[140.26,140.26,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[-0.618,-7.395],[-2.323,-2.379],[-2.647,2.438]],\"o\":[[6.75,80.75],[1.66,1.7],[38.998,-68.667]],\"v\":[[-1.601,-210.907],[11.871,-104.272],[20.531,-99.66]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":141.6,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":11,\"ty\":4,\"nm\":\"hea\",\"parent\":8,\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":0,\"s\":[-15],\"e\":[8]},{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":67.199,\"s\":[8],\"e\":[-15]},{\"t\":134.400390625}],\"ix\":10},\"p\":{\"a\":0,\"k\":[-7.5,-46.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[-110.468,94.987,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[71.296,71.296,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 2\",\"np\":2,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"d\":1,\"ty\":\"el\",\"s\":{\"a\":0,\"k\":[14.727,19.286],\"ix\":2},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":3},\"nm\":\"Ellipse Path 1\",\"mn\":\"ADBE Vector Shape - Ellipse\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-175.409,43.844],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[59.914,100],\"ix\":3},\"r\":{\"a\":0,\"k\":-168.452,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Ellipse 5\",\"np\":3,\"cix\":2,\"ix\":2,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"d\":1,\"ty\":\"el\",\"s\":{\"a\":0,\"k\":[14.727,19.286],\"ix\":2},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":3},\"nm\":\"Ellipse Path 1\",\"mn\":\"ADBE Vector Shape - Ellipse\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-122.039,45.221],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Ellipse 3\",\"np\":3,\"cix\":2,\"ix\":3,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[-10.966,2.431],[-1.181,-4.133],[1.601,-0.057],[-0.599,3.554]],\"o\":[[1.746,-0.387],[1.277,4.469],[-14.816,0.529],[0.406,-2.406]],\"v\":[[-8.421,-5.275],[2.908,3.703],[-0.161,10.282],[-18.683,3.926]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.933333333333,0.874509803922,0.650980392157,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"eye1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-181.299,40.461],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.667,0.667],\"y\":[1,1]},\"o\":{\"x\":[0.333,0.333],\"y\":[0,0]},\"n\":[\"0p667_1_0p333_0\",\"0p667_1_0p333_0\"],\"t\":38.4,\"s\":[100,92.381],\"e\":[100,-0.256]},{\"i\":{\"x\":[0.667,0.667],\"y\":[1,1]},\"o\":{\"x\":[0.333,0.333],\"y\":[0,0]},\"n\":[\"0p667_1_0p333_0\",\"0p667_1_0p333_0\"],\"t\":55.199,\"s\":[100,-0.256],\"e\":[100,-0.256]},{\"i\":{\"x\":[0.667,0.667],\"y\":[1,1]},\"o\":{\"x\":[0.333,0.333],\"y\":[0,0]},\"n\":[\"0p667_1_0p333_0\",\"0p667_1_0p333_0\"],\"t\":62.4,\"s\":[100,-0.256],\"e\":[100,92.381]},{\"t\":79.19921875}],\"ix\":3},\"r\":{\"a\":0,\"k\":-128.667,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Ellipse 6\",\"np\":3,\"cix\":2,\"ix\":4,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"d\":1,\"ty\":\"el\",\"s\":{\"a\":0,\"k\":[40.675,16.831],\"ix\":2},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":3},\"nm\":\"Ellipse Path 1\",\"mn\":\"ADBE Vector Shape - Ellipse\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.933333333333,0.874509803922,0.650980392157,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"eye2\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-123.091,45.195],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.667,0.667],\"y\":[1,1]},\"o\":{\"x\":[0.333,0.333],\"y\":[0,0]},\"n\":[\"0p667_1_0p333_0\",\"0p667_1_0p333_0\"],\"t\":38.4,\"s\":[100,92.381],\"e\":[100,-0.256]},{\"i\":{\"x\":[0.667,0.667],\"y\":[1,1]},\"o\":{\"x\":[0.333,0.333],\"y\":[0,0]},\"n\":[\"0p667_1_0p333_0\",\"0p667_1_0p333_0\"],\"t\":55.199,\"s\":[100,-0.256],\"e\":[100,-0.256]},{\"i\":{\"x\":[0.667,0.667],\"y\":[1,1]},\"o\":{\"x\":[0.333,0.333],\"y\":[0,0]},\"n\":[\"0p667_1_0p333_0\",\"0p667_1_0p333_0\"],\"t\":62.4,\"s\":[100,-0.256],\"e\":[100,92.381]},{\"t\":79.19921875}],\"ix\":3},\"r\":{\"a\":0,\"k\":-19.654,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Ellipse 2\",\"np\":3,\"cix\":2,\"ix\":5,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[0,0],[10.344,0.175],[-115.817,6.255]],\"o\":[[0,0],[-7.047,-0.119],[34.894,-1.884]],\"v\":[[-167.279,58.669],[-254.234,57.818],[-149.783,98.993]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-162,72.234],\"ix\":2},\"a\":{\"a\":0,\"k\":[-164.104,75.74],\"ix\":1},\"s\":{\"a\":0,\"k\":[100.434,93.355],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":6,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"d\":1,\"ty\":\"el\",\"s\":{\"a\":0,\"k\":[108,108],\"ix\":2},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":3},\"nm\":\"Ellipse Path 1\",\"mn\":\"ADBE Vector Shape - Ellipse\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-128,48],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Ellipse 1\",\"np\":3,\"cix\":2,\"ix\":7,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":141.6,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":12,\"ty\":4,\"nm\":\"er\",\"parent\":11,\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":7.199,\"s\":[-17],\"e\":[41]},{\"i\":{\"x\":[0.667],\"y\":[1]},\"o\":{\"x\":[0.333],\"y\":[0]},\"n\":[\"0p667_1_0p333_0\"],\"t\":67.199,\"s\":[41],\"e\":[-17]},{\"t\":134.400390625}],\"ix\":10},\"p\":{\"a\":0,\"k\":[-151.699,7.848,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[16.5,-109.52,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[131.332,131.332,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[-0.618,-7.395],[-2.323,-2.379],[-2.647,2.438]],\"o\":[[6.75,80.75],[1.66,1.7],[26.148,-64.813]],\"v\":[[-1.601,-210.907],[9.521,-107.006],[20.155,-104.319]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.149019607843,0.132484795065,0.111034221275,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":141.6,\"st\":0,\"bm\":0}],\"markers\":[]}"; + +typedef unsigned char uint8_t; + +class __attribute__((visibility("default"))) RlottieWasm { +public: + static std::unique_ptr create() + { + return std::unique_ptr(new RlottieWasm(resource)); + } + int frames() const { return mFrameCount; } + + bool load(std::string jsonData) + { + mPlayer = rlottie::Animation::loadFromData(std::move(jsonData), "", "", + false); + mFrameCount = mPlayer ? mPlayer->totalFrame() : 0; + return mPlayer ? true : false; + } + + // canvas pixel pix[0] pix[1] pix[2] pix[3] {B G R A} + // lottie pixel pix[0] pix[1] pix[2] pix[3] {R G B A} + val render(int frame, int width, int height) + { + if (!mPlayer) return val(typed_memory_view(0, nullptr)); + + resize(width, height); + mPlayer->renderSync( + frame, rlottie::Surface((uint32_t *)mBuffer.get(), mWidth, mHeight, + mWidth * 4)); + convertToCanvasFormat(); + + return val(typed_memory_view(mWidth * mHeight * 4, mBuffer.get())); + } + ~RlottieWasm() {} + +private: + void resize(int width, int height) + { + if (width == mWidth && height == mHeight) return; + + mWidth = width; + mHeight = height; + + mBuffer = std::make_unique(mWidth * mHeight * 4); + } + + explicit RlottieWasm(const char *data) + { + mPlayer = rlottie::Animation::loadFromData(data, "", "", false); + mFrameCount = mPlayer ? mPlayer->totalFrame() : 0; + } + + void convertToCanvasFormat() + { + int totalBytes = mWidth * mHeight * 4; + uint8_t *buffer = mBuffer.get(); + for (int i = 0; i < totalBytes; i += 4) { + unsigned char a = buffer[i + 3]; + // compute only if alpha is non zero + if (a) { + unsigned char r = buffer[i + 2]; + unsigned char g = buffer[i + 1]; + unsigned char b = buffer[i]; + + if (a != 255) { // un premultiply + r = (r * 255) / a; + g = (g * 255) / a; + b = (b * 255) / a; + + buffer[i] = r; + buffer[i + 1] = g; + buffer[i + 2] = b; + + } else { + // only swizzle r and b + buffer[i] = r; + buffer[i + 2] = b; + } + } + } + } + +private: + int mWidth{0}; + int mHeight{0}; + int mFrameCount{0}; + std::unique_ptr mBuffer; + std::unique_ptr mPlayer; +}; + +// Binding code +EMSCRIPTEN_BINDINGS(rlottie_bindings) +{ + class_("RlottieWasm") + .constructor(&RlottieWasm::create) + .function("load", &RlottieWasm::load, allow_raw_pointers()) + .function("frames", &RlottieWasm::frames) + .function("render", &RlottieWasm::render); +} diff --git a/external/rlottie/test/CMakeLists.txt b/external/rlottie/test/CMakeLists.txt new file mode 100644 index 000000000..de7841132 --- /dev/null +++ b/external/rlottie/test/CMakeLists.txt @@ -0,0 +1,20 @@ +project(rlottie_tests CXX) +find_package(GTest REQUIRED) + +add_definitions(-DDEMO_DIR="${CMAKE_SOURCE_DIR}/example/resource/") +link_libraries(GTest::GTest GTest::Main) + +add_executable(vectorTestSuite testsuite.cpp test_vrect.cpp test_vpath.cpp + ${CMAKE_SOURCE_DIR}/src/vector/vbezier.cpp + ${CMAKE_SOURCE_DIR}/src/vector/vdebug.cpp + ${CMAKE_SOURCE_DIR}/src/vector/vmatrix.cpp + ${CMAKE_SOURCE_DIR}/src/vector/vpath.cpp) +target_include_directories(vectorTestSuite PRIVATE ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/src/vector ${CMAKE_SOURCE_DIR}/src/vector/pixman) +gtest_add_tests(vectorTestSuite "" AUTO) + +add_executable(animationTestSuite testsuite.cpp + test_lottieanimation.cpp test_lottieanimation_capi.cpp) +target_include_directories(animationTestSuite PRIVATE ${CMAKE_SOURCE_DIR}/inc) +target_link_libraries(animationTestSuite PRIVATE rlottie) +gtest_add_tests(animationTestSuite "" AUTO) diff --git a/external/rlottie/test/meson.build b/external/rlottie/test/meson.build new file mode 100644 index 000000000..1dbd66ba5 --- /dev/null +++ b/external/rlottie/test/meson.build @@ -0,0 +1,36 @@ + +override_default = ['warning_level=2', 'werror=false'] + +gtest_dep = dependency('gtest') + +vector_test_sources = [ + 'testsuite.cpp', + 'test_vrect.cpp', + 'test_vpath.cpp', + ] + +vector_testsuite = executable('vectorTestSuite', + vector_test_sources, + include_directories : inc, + override_options : override_default, + dependencies : [gtest_dep, rlottie_lib_dep], + ) + +test('Vector Testsuite', vector_testsuite) + + +animation_test_sources = [ + 'testsuite.cpp', + 'test_lottieanimation.cpp', + 'test_lottieanimation_capi.cpp' + ] + +animation_testsuite = executable('animationTestSuite', + animation_test_sources, + include_directories : inc, + override_options : override_default, + link_with : rlottie_lib, + dependencies : gtest_dep, + ) + +test('Animation Testsuite', animation_testsuite) diff --git a/external/rlottie/test/test_lottieanimation.cpp b/external/rlottie/test/test_lottieanimation.cpp new file mode 100644 index 000000000..6647946a6 --- /dev/null +++ b/external/rlottie/test/test_lottieanimation.cpp @@ -0,0 +1,34 @@ +#include +#include "rlottie.h" + +class AnimationTest : public ::testing::Test { +public: + void SetUp() + { + animationInvalid = rlottie::Animation::loadFromFile("wrong_file.json"); + std::string filePath = DEMO_DIR; + filePath +="mask.json"; + animation = rlottie::Animation::loadFromFile(filePath); + + } + void TearDown() + { + + } +public: + std::unique_ptr animationInvalid; + std::unique_ptr animation; +}; + +TEST_F(AnimationTest, loadFromFile_N) { + ASSERT_FALSE(animationInvalid); +} + +TEST_F(AnimationTest, loadFromFile) { + ASSERT_TRUE(animation != nullptr); + ASSERT_EQ(animation->totalFrame(), 30); + size_t width, height; + animation->size(width, height); + ASSERT_EQ(width, 500); + ASSERT_EQ(height, 500); +} diff --git a/external/rlottie/test/test_lottieanimation_capi.cpp b/external/rlottie/test/test_lottieanimation_capi.cpp new file mode 100644 index 000000000..a0d24ef1c --- /dev/null +++ b/external/rlottie/test/test_lottieanimation_capi.cpp @@ -0,0 +1,34 @@ +#include +#include "rlottie_capi.h" + +class AnimationCApiTest : public ::testing::Test { +public: + void SetUp() + { + animationInvalid = lottie_animation_from_file("wrong_file.json"); + std::string filePath = DEMO_DIR; + filePath +="mask.json"; + animation = lottie_animation_from_file(filePath.c_str()); + + } + void TearDown() + { + if (animation) lottie_animation_destroy(animation); + } +public: + Lottie_Animation *animationInvalid; + Lottie_Animation *animation; +}; + +TEST_F(AnimationCApiTest, loadFromFile_N) { + ASSERT_FALSE(animationInvalid); +} + +TEST_F(AnimationCApiTest, loadFromFile) { + ASSERT_TRUE(animation); + ASSERT_EQ(lottie_animation_get_totalframe(animation), 30); + size_t width, height; + lottie_animation_get_size(animation, &width, &height); + ASSERT_EQ(width, 500); + ASSERT_EQ(height, 500); +} diff --git a/external/rlottie/test/test_vpath.cpp b/external/rlottie/test/test_vpath.cpp new file mode 100644 index 000000000..01e2d3c10 --- /dev/null +++ b/external/rlottie/test/test_vpath.cpp @@ -0,0 +1,190 @@ +#include +#include "vpath.h" + +class VPathTest : public ::testing::Test { +public: + void SetUp() + { + pathRect.addRect({-10, -20, 100, 100}); + pathRoundRect.addRoundRect({0, 0, 100, 100}, 5, 5); + pathRoundRectZeroCorner.addRoundRect({0, 0, 100, 100}, 0, 0); + pathRoundRectHalfCircle.addRoundRect({0, 0, 100, 100}, 60, 60); + pathOval.addOval({0,0,100,50}); + pathOvalCircle.addOval({0,0,100,100}); + pathCircle.addCircle(0, 0, 100); + pathCircleZeroRadius.addCircle(10, 10, 0); + pathPolygon.addPolygon(10, 50, 5, 0, 0, 0); + pathPolystar.addPolystar(10, 50, 100, 7, 14, 0, 0, 0); + pathPolygonZero.addPolygon(10, 50, 0, 0, 0, 0); + pathPolystarZero.addPolystar(10, 50, 100, 0, 0, 0, 0, 0); + } + void TearDown() + { + + } +public: + VPath pathEmpty; + VPath pathRect; + VPath pathRoundRect; + VPath pathRoundRectZeroCorner; + VPath pathRoundRectHalfCircle; + VPath pathOval; + VPath pathOvalCircle; + VPath pathCircle; + VPath pathCircleZeroRadius; + VPath pathPolygon; + VPath pathPolystar; + VPath pathPolygonZero; + VPath pathPolystarZero; +}; + +TEST_F(VPathTest, emptyPath) { + ASSERT_EQ(sizeof(pathEmpty), sizeof(void *)); + ASSERT_TRUE(pathEmpty.empty()); + ASSERT_FALSE(pathEmpty.segments()); + ASSERT_EQ(pathEmpty.segments() , 0); + ASSERT_EQ(pathEmpty.elements().size() , 0); + ASSERT_EQ(pathEmpty.elements().capacity() , pathEmpty.elements().size()); + ASSERT_EQ(pathEmpty.points().size() , 0); + ASSERT_EQ(pathEmpty.points().capacity() , pathEmpty.points().size()); +} + +TEST_F(VPathTest, reset) { + pathRect.reset(); + ASSERT_TRUE(pathRect.empty()); + ASSERT_EQ(pathRect.segments() , 0); + ASSERT_GE(pathRect.points().capacity(), 1); + ASSERT_GE(pathRect.elements().capacity(), 1); +} + +TEST_F(VPathTest, reserve) { + pathEmpty.reserve(10, 10); + ASSERT_EQ(pathEmpty.points().capacity(), 10); + ASSERT_GE(pathEmpty.elements().capacity(), 10); + ASSERT_EQ(pathEmpty.segments() , 0); + ASSERT_EQ(pathEmpty.points().size(), 0); + ASSERT_GE(pathEmpty.elements().size(), 0); +} + +TEST_F(VPathTest, clone) { + VPath pathClone; + pathClone.clone(pathOval); + ASSERT_TRUE(pathClone.unique()); + ASSERT_EQ(pathClone.segments(), pathOval.segments()); + ASSERT_EQ(pathClone.points().size(), pathOval.points().size()); + ASSERT_NE(pathClone.points().data(), pathOval.points().data()); + ASSERT_EQ(pathClone.elements().size(), pathOval.elements().size()); + ASSERT_NE(pathClone.elements().data(), pathOval.elements().data()); +} + +TEST_F(VPathTest, copyOnWrite) { + VPath pathCopy; + pathCopy = pathOval; + ASSERT_EQ(pathCopy.segments(), pathOval.segments()); + ASSERT_EQ(pathCopy.points().size(), pathOval.points().size()); + ASSERT_EQ(pathCopy.points().data(), pathOval.points().data()); + ASSERT_EQ(pathCopy.elements().size(), pathOval.elements().size()); + ASSERT_EQ(pathCopy.elements().data(), pathOval.elements().data()); +} + +TEST_F(VPathTest, addRect) { + ASSERT_FALSE(pathRect.empty()); + ASSERT_EQ(pathRect.segments() , 1); + ASSERT_EQ(pathRect.elements().capacity() , pathRect.elements().size()); + ASSERT_EQ(pathRect.points().capacity() , pathRect.points().size()); +} + +TEST_F(VPathTest, addRect_N) { + pathEmpty.addRect({}); + ASSERT_TRUE(pathEmpty.empty()); + ASSERT_EQ(pathEmpty.segments() , 0); +} + +TEST_F(VPathTest, addRoundRect) { + ASSERT_FALSE(pathRoundRect.empty()); + ASSERT_EQ(pathRoundRect.segments() , 1); + ASSERT_EQ(pathRoundRect.elements().capacity() , pathRoundRect.elements().size()); + ASSERT_EQ(pathRoundRect.points().capacity() , pathRoundRect.points().size()); +} + +TEST_F(VPathTest, addRoundRectZeoCorner) { + ASSERT_FALSE(pathRoundRectZeroCorner.empty()); + ASSERT_EQ(pathRoundRectZeroCorner.segments() , 1); + ASSERT_EQ(pathRoundRectZeroCorner.elements().size() , pathRect.elements().size()); + ASSERT_EQ(pathRoundRectZeroCorner.elements().capacity() , pathRoundRectZeroCorner.elements().size()); + ASSERT_EQ(pathRoundRectZeroCorner.points().size() , pathRect.points().size()); + ASSERT_EQ(pathRoundRectZeroCorner.points().capacity() , pathRoundRectZeroCorner.points().size()); +} + +TEST_F(VPathTest, addRoundRectHalfCircle) { + ASSERT_FALSE(pathRoundRectHalfCircle.empty()); + ASSERT_EQ(pathRoundRectHalfCircle.segments() , 1); + ASSERT_EQ(pathRoundRectHalfCircle.elements().capacity() , pathRoundRectHalfCircle.elements().size()); + ASSERT_EQ(pathRoundRectHalfCircle.points().capacity() , pathRoundRectHalfCircle.points().size()); +} + +TEST_F(VPathTest, addOval) { + ASSERT_FALSE(pathOval.empty()); + ASSERT_EQ(pathOval.segments() , 1); + ASSERT_EQ(pathOval.elements().capacity() , pathOval.elements().size()); + ASSERT_EQ(pathOval.points().capacity() , pathOval.points().size()); +} + +TEST_F(VPathTest, addOvalCircle) { + ASSERT_FALSE(pathOvalCircle.empty()); + ASSERT_EQ(pathOvalCircle.segments() , 1); + ASSERT_EQ(pathOvalCircle.elements().size() , pathOval.elements().size()); + ASSERT_EQ(pathOvalCircle.elements().capacity() , pathOvalCircle.elements().size()); + ASSERT_EQ(pathOvalCircle.points().size() , pathOval.points().size()); + ASSERT_EQ(pathOvalCircle.points().capacity() , pathOvalCircle.points().size()); +} + +TEST_F(VPathTest, addCircle) { + ASSERT_FALSE(pathCircle.empty()); + ASSERT_EQ(pathCircle.segments() , 1); + ASSERT_EQ(pathCircle.elements().size() , pathOval.elements().size()); + ASSERT_EQ(pathCircle.elements().capacity() , pathCircle.elements().size()); + ASSERT_EQ(pathCircle.points().size() , pathOval.points().size()); + ASSERT_EQ(pathCircle.points().capacity() , pathCircle.points().size()); +} + +TEST_F(VPathTest, addCircleZeroRadius) { + ASSERT_TRUE(pathCircleZeroRadius.empty()); + ASSERT_EQ(pathCircleZeroRadius.segments() , 0); +} + +TEST_F(VPathTest, length) { + ASSERT_EQ(pathRect.length(), 400); +} + +TEST_F(VPathTest, lengthEmptyPath) { + ASSERT_EQ(pathEmpty.length(), 0); +} + +TEST_F(VPathTest, addPolygon) { + ASSERT_FALSE(pathPolygon.empty()); + ASSERT_EQ(pathPolygon.segments() , 1); + ASSERT_EQ(pathPolygon.elements().size() , pathPolygon.elements().capacity()); + ASSERT_EQ(pathPolygon.points().size() , pathPolygon.points().capacity()); +} + +TEST_F(VPathTest, addPolygonZeroRoundness) { + ASSERT_FALSE(pathPolygonZero.empty()); + ASSERT_EQ(pathPolygonZero.segments() , 1); + ASSERT_EQ(pathPolygonZero.elements().size() , pathPolygonZero.elements().capacity()); + ASSERT_EQ(pathPolygonZero.points().size() , pathPolygonZero.points().capacity()); +} + +TEST_F(VPathTest, addPolystar) { + ASSERT_FALSE(pathPolystar.empty()); + ASSERT_EQ(pathPolystar.segments() , 1); + ASSERT_EQ(pathPolystar.elements().size() , pathPolystar.elements().capacity()); + ASSERT_EQ(pathPolystar.points().size() , pathPolystar.points().capacity()); +} + +TEST_F(VPathTest, addPolystarZeroRoundness) { + ASSERT_FALSE(pathPolystarZero.empty()); + ASSERT_EQ(pathPolystarZero.segments() , 1); + ASSERT_EQ(pathPolystarZero.elements().size() , pathPolystarZero.elements().capacity()); + ASSERT_EQ(pathPolystarZero.points().size() , pathPolystarZero.points().capacity()); +} diff --git a/external/rlottie/test/test_vrect.cpp b/external/rlottie/test/test_vrect.cpp new file mode 100644 index 000000000..12fa09d0d --- /dev/null +++ b/external/rlottie/test/test_vrect.cpp @@ -0,0 +1,58 @@ +#include +#include "vrect.h" + +class VRectFTest : public ::testing::Test { +public: + void SetUp() + { + conersionRect = rect; + } + void TearDown() + { + + } +public: + VRectF Empty; + VRectF illigal{0, 0, -100, 200}; + VRectF conersionRect; + VRect rect{0, 0, 100, 100}; +}; + +class VRectTest : public ::testing::Test { +public: + void SetUp() + { + conersionRect = rect; + } + void TearDown() + { + + } +public: + VRect Empty; + VRect illigal{0, 0, -100, 200}; + VRect conersionRect; + VRectF rect{0, 0, 100.5, 100}; +}; + +TEST_F(VRectFTest, construct) { + VRectF r1{0, 0, 100, 100}; + VRectF r2{0, 0, 100.0, 100}; + VRectF r3 = {0, 0, 100, 100}; + VRectF r4 = {0, 0, 100.0, 100}; + VRectF r6(0, 0, 100, 100); + VRectF r7(0, 0, 100.0, 100); + ASSERT_TRUE(Empty.empty()); + ASSERT_TRUE(illigal.empty()); +} + +TEST_F(VRectTest, construct) { + VRect r1{0, 0, 100, 100}; + VRect r2{0, 0, 10, 100}; + VRect r3 = {0, 0, 100, 100}; + VRect r4 = {0, 0, 10, 100}; + VRect r6(0, 0, 100, 100); + VRect r7(0, 0, 10, 100); + ASSERT_TRUE(Empty.empty()); + ASSERT_TRUE(illigal.empty()); +} diff --git a/external/rlottie/test/testsuite.cpp b/external/rlottie/test/testsuite.cpp new file mode 100644 index 000000000..64becff4b --- /dev/null +++ b/external/rlottie/test/testsuite.cpp @@ -0,0 +1,6 @@ +#include + +int main(int argc, char **argv) { + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/external/rlottie/test/wasm_test.html b/external/rlottie/test/wasm_test.html new file mode 100644 index 000000000..e53f6b52c --- /dev/null +++ b/external/rlottie/test/wasm_test.html @@ -0,0 +1,32 @@ + + + + + + \ No newline at end of file diff --git a/external/rlottie/vs2019/config.h b/external/rlottie/vs2019/config.h new file mode 100644 index 000000000..3261852a3 --- /dev/null +++ b/external/rlottie/vs2019/config.h @@ -0,0 +1,10 @@ +/* + * Autogenerated by the Meson build system. + * Do not edit, your changes will be lost. + */ + +#pragma once + +#define LOTTIE_CACHE_SUPPORT 1 + +#define LOTTIE_THREAD_SUPPORT 1 diff --git a/external/rlottie/vs2019/rlottie.sln b/external/rlottie/vs2019/rlottie.sln new file mode 100644 index 000000000..ddeb4a0c4 --- /dev/null +++ b/external/rlottie/vs2019/rlottie.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29020.237 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rlottie", "rlottie.vcxproj", "{9C97B40D-AB46-4EC7-9A17-7F5256FBC059}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9C97B40D-AB46-4EC7-9A17-7F5256FBC059}.Debug|x64.ActiveCfg = Debug|x64 + {9C97B40D-AB46-4EC7-9A17-7F5256FBC059}.Debug|x64.Build.0 = Debug|x64 + {9C97B40D-AB46-4EC7-9A17-7F5256FBC059}.Debug|x86.ActiveCfg = Debug|Win32 + {9C97B40D-AB46-4EC7-9A17-7F5256FBC059}.Debug|x86.Build.0 = Debug|Win32 + {9C97B40D-AB46-4EC7-9A17-7F5256FBC059}.Release|x64.ActiveCfg = Release|x64 + {9C97B40D-AB46-4EC7-9A17-7F5256FBC059}.Release|x64.Build.0 = Release|x64 + {9C97B40D-AB46-4EC7-9A17-7F5256FBC059}.Release|x86.ActiveCfg = Release|Win32 + {9C97B40D-AB46-4EC7-9A17-7F5256FBC059}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A8E849A6-AE99-4AEA-92AD-23F0F12B1C68} + EndGlobalSection +EndGlobal diff --git a/external/rlottie/vs2019/rlottie.vcxproj b/external/rlottie/vs2019/rlottie.vcxproj new file mode 100644 index 000000000..d1326af72 --- /dev/null +++ b/external/rlottie/vs2019/rlottie.vcxproj @@ -0,0 +1,249 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {9C97B40D-AB46-4EC7-9A17-7F5256FBC059} + rlottie + 10.0 + + + + Application + true + v142 + MultiByte + + + Application + false + v142 + true + MultiByte + + + DynamicLibrary + true + v142 + MultiByte + + + Application + false + v142 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + + + Level3 + Disabled + true + true + + + Console + + + + + Level3 + Disabled + true + true + ../inc;./;../src/lottie;../src/vector;../src/vector/pixman;../src/vector/freetype;%(AdditionalIncludeDirectories) + -DRLOTTIE_BUILD %(AdditionalOptions) + 4251;4244;4996 + + + Console + + + + + Level3 + MaxSpeed + true + true + true + true + + + Console + true + true + + + + + Level3 + MaxSpeed + true + true + true + true + + + Console + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/external/rlottie/vs2019/rlottie.vcxproj.filters b/external/rlottie/vs2019/rlottie.vcxproj.filters new file mode 100644 index 000000000..d204f54a4 --- /dev/null +++ b/external/rlottie/vs2019/rlottie.vcxproj.filters @@ -0,0 +1,385 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {fe19fe8c-ea12-4233-a5b3-e1d3b5eef911} + + + {d270b25a-5e50-4fd3-9552-e97a4855bbce} + + + {14ba4b30-7907-4e82-9e05-46bb1083eb30} + + + {fb769465-148c-4a24-b6f7-d4f296c045f7} + + + {6c95ecc5-8b13-4cdf-b729-ef98cf1e23e0} + + + {089f6054-13bb-4ffe-8129-4b38224412db} + + + {02c6210d-fe4b-4971-a04d-ca33f9b7f033} + + + {d981dfd0-86e1-47ea-9fdb-2c06401fddec} + + + {75db7b83-6147-402f-bc29-25e5edab2531} + + + {386829e3-2415-4992-a85e-b3e9a352278d} + + + {79196b11-c3ac-449b-83d6-52f81e748794} + + + + + inc + + + inc + + + inc + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson + + + src\lottie\rapidjson\error + + + src\lottie\rapidjson\error + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\internal + + + src\lottie\rapidjson\msinttypes + + + src\lottie\rapidjson\msinttypes + + + src\lottie + + + src\lottie + + + src\lottie + + + src\lottie + + + src\lottie + + + src\lottie + + + src\vector\freetype + + + src\vector\freetype + + + src\vector\freetype + + + src\vector\freetype + + + src\vector\pixman + + + src\vector\stb + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + inc + + + + + src\binding\c + + + src\lottie + + + src\lottie + + + src\lottie + + + src\lottie + + + src\lottie + + + src\lottie + + + src\lottie + + + src\lottie + + + src\vector\freetype + + + src\vector\freetype + + + src\vector\freetype + + + src\vector\stb + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + src\vector + + + + + src\vector\pixman + + + diff --git a/external/rlottie/vs2019/rlottie.vcxproj.user b/external/rlottie/vs2019/rlottie.vcxproj.user new file mode 100644 index 000000000..0f14913f3 --- /dev/null +++ b/external/rlottie/vs2019/rlottie.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/external/rlottie/wasm_build.sh b/external/rlottie/wasm_build.sh new file mode 100755 index 000000000..61ffa6a13 --- /dev/null +++ b/external/rlottie/wasm_build.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "Emscripten SDK PATH is not provided" + echo "Usage: wasm_build EMSDK_PATH" + exit 1; +fi + +if [ ! -d "./builddir_wasm" ]; then + sed "s|EMSDK:|$1|g" wasm_cross.txt > /tmp/.wasm_cross.txt + meson -Dthread=false -Dmodule=false -Dcache=false -Dexample=false -Db_lto=true -Ddefault_library=static builddir_wasm --cross-file /tmp/.wasm_cross.txt + cp ./test/wasm_test.html builddir_wasm/src/index.html +fi + +sudo ninja -C builddir_wasm/ +echo "RESULT:" +echo " rlottie-wasm.wasm and rlottie-wasm.js can be found in builddir_wasm/src folder" +ls -lrt builddir_wasm/src/rlottie-wasm.* diff --git a/external/rlottie/wasm_cross.txt b/external/rlottie/wasm_cross.txt new file mode 100644 index 000000000..eaf7e162e --- /dev/null +++ b/external/rlottie/wasm_cross.txt @@ -0,0 +1,19 @@ +[binaries] +c = 'EMSDK:upstream/emscripten/emcc.py' +cpp = 'EMSDK:upstream/emscripten/em++.py' +ar = 'EMSDK:upstream/emscripten/emar.py' + +[properties] +root = 'EMSDK:upstream/emscripten/system' +cpp_args = ['--bind' , '-s' , 'WASM=1' , '-s' , 'ALLOW_MEMORY_GROWTH=1' , '-s' , 'FILESYSTEM=0' , '-O2'] +cpp_link_args = ['--bind' , '-s' , 'WASM=1' , '-s' , 'ALLOW_MEMORY_GROWTH=1' , '-s' , 'FILESYSTEM=0' , '-O2'] +shared_lib_suffix = 'js' +static_lib_suffix = 'js' +shared_module_suffix = 'js' +exe_suffix = 'js' + +[host_machine] +system = 'emscripten' +cpu_family = 'x86' +cpu = 'i686' +endian = 'little' \ No newline at end of file